RPKI Engine 1.0
|
00001 # Automatically generated, do not edit. 00002 00003 import lxml.etree 00004 00005 ## @var left_right 00006 ## Parsed RelaxNG left_right schema 00007 left_right = lxml.etree.RelaxNG(lxml.etree.fromstring('''<?xml version="1.0" encoding="UTF-8"?> 00008 <!-- 00009 $Id: left-right-schema.rnc 3730 2011-03-21 12:42:43Z sra $ 00010 00011 RelaxNG Schema for RPKI left-right protocol. 00012 00013 libxml2 (including xmllint) only groks the XML syntax of RelaxNG, so 00014 run the compact syntax through trang to get XML syntax. 00015 00016 Copyright (C) 2009-2011 Internet Systems Consortium ("ISC") 00017 00018 Permission to use, copy, modify, and distribute this software for any 00019 purpose with or without fee is hereby granted, provided that the above 00020 copyright notice and this permission notice appear in all copies. 00021 00022 THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH 00023 REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY 00024 AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, 00025 INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM 00026 LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE 00027 OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR 00028 PERFORMANCE OF THIS SOFTWARE. 00029 00030 Portions copyright (C) 2007-2008 American Registry for Internet Numbers ("ARIN") 00031 00032 Permission to use, copy, modify, and distribute this software for any 00033 purpose with or without fee is hereby granted, provided that the above 00034 copyright notice and this permission notice appear in all copies. 00035 00036 THE SOFTWARE IS PROVIDED "AS IS" AND ARIN DISCLAIMS ALL WARRANTIES WITH 00037 REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY 00038 AND FITNESS. IN NO EVENT SHALL ARIN BE LIABLE FOR ANY SPECIAL, DIRECT, 00039 INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM 00040 LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE 00041 OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR 00042 PERFORMANCE OF THIS SOFTWARE. 00043 --> 00044 <grammar ns="http://www.hactrn.net/uris/rpki/left-right-spec/" xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"> 00045 <!-- Top level PDU --> 00046 <start> 00047 <element name="msg"> 00048 <attribute name="version"> 00049 <data type="positiveInteger"> 00050 <param name="maxInclusive">1</param> 00051 </data> 00052 </attribute> 00053 <choice> 00054 <group> 00055 <attribute name="type"> 00056 <value>query</value> 00057 </attribute> 00058 <zeroOrMore> 00059 <ref name="query_elt"/> 00060 </zeroOrMore> 00061 </group> 00062 <group> 00063 <attribute name="type"> 00064 <value>reply</value> 00065 </attribute> 00066 <zeroOrMore> 00067 <ref name="reply_elt"/> 00068 </zeroOrMore> 00069 </group> 00070 </choice> 00071 </element> 00072 </start> 00073 <!-- PDUs allowed in a query --> 00074 <define name="query_elt" combine="choice"> 00075 <ref name="self_query"/> 00076 </define> 00077 <define name="query_elt" combine="choice"> 00078 <ref name="bsc_query"/> 00079 </define> 00080 <define name="query_elt" combine="choice"> 00081 <ref name="parent_query"/> 00082 </define> 00083 <define name="query_elt" combine="choice"> 00084 <ref name="child_query"/> 00085 </define> 00086 <define name="query_elt" combine="choice"> 00087 <ref name="repository_query"/> 00088 </define> 00089 <define name="query_elt" combine="choice"> 00090 <ref name="list_roa_requests_query"/> 00091 </define> 00092 <define name="query_elt" combine="choice"> 00093 <ref name="list_ghostbuster_requests_query"/> 00094 </define> 00095 <define name="query_elt" combine="choice"> 00096 <ref name="list_resources_query"/> 00097 </define> 00098 <define name="query_elt" combine="choice"> 00099 <ref name="list_published_objects_query"/> 00100 </define> 00101 <define name="query_elt" combine="choice"> 00102 <ref name="list_received_resources_query"/> 00103 </define> 00104 <!-- PDUs allowed in a reply --> 00105 <define name="reply_elt" combine="choice"> 00106 <ref name="self_reply"/> 00107 </define> 00108 <define name="reply_elt" combine="choice"> 00109 <ref name="bsc_reply"/> 00110 </define> 00111 <define name="reply_elt" combine="choice"> 00112 <ref name="parent_reply"/> 00113 </define> 00114 <define name="reply_elt" combine="choice"> 00115 <ref name="child_reply"/> 00116 </define> 00117 <define name="reply_elt" combine="choice"> 00118 <ref name="repository_reply"/> 00119 </define> 00120 <define name="reply_elt" combine="choice"> 00121 <ref name="list_resources_reply"/> 00122 </define> 00123 <define name="reply_elt" combine="choice"> 00124 <ref name="list_roa_requests_reply"/> 00125 </define> 00126 <define name="reply_elt" combine="choice"> 00127 <ref name="list_ghostbuster_requests_reply"/> 00128 </define> 00129 <define name="reply_elt" combine="choice"> 00130 <ref name="list_published_objects_reply"/> 00131 </define> 00132 <define name="reply_elt" combine="choice"> 00133 <ref name="list_received_resources_reply"/> 00134 </define> 00135 <define name="reply_elt" combine="choice"> 00136 <ref name="report_error_reply"/> 00137 </define> 00138 <!-- Tag attributes for bulk operations --> 00139 <define name="tag"> 00140 <optional> 00141 <attribute name="tag"> 00142 <data type="token"> 00143 <param name="maxLength">1024</param> 00144 </data> 00145 </attribute> 00146 </optional> 00147 </define> 00148 <!-- 00149 Combinations of action and type attributes used in later definitions. 00150 The same patterns repeat in most of the elements in this protocol. 00151 --> 00152 <define name="ctl_create"> 00153 <attribute name="action"> 00154 <value>create</value> 00155 </attribute> 00156 <ref name="tag"/> 00157 </define> 00158 <define name="ctl_set"> 00159 <attribute name="action"> 00160 <value>set</value> 00161 </attribute> 00162 <ref name="tag"/> 00163 </define> 00164 <define name="ctl_get"> 00165 <attribute name="action"> 00166 <value>get</value> 00167 </attribute> 00168 <ref name="tag"/> 00169 </define> 00170 <define name="ctl_list"> 00171 <attribute name="action"> 00172 <value>list</value> 00173 </attribute> 00174 <ref name="tag"/> 00175 </define> 00176 <define name="ctl_destroy"> 00177 <attribute name="action"> 00178 <value>destroy</value> 00179 </attribute> 00180 <ref name="tag"/> 00181 </define> 00182 <!-- Base64 encoded DER stuff --> 00183 <define name="base64"> 00184 <data type="base64Binary"> 00185 <param name="maxLength">512000</param> 00186 </data> 00187 </define> 00188 <!-- 00189 Base definition for all fields that are really just SQL primary indices 00190 sql_id = xsd:nonNegativeInteger 00191 --> 00192 <!-- 00193 ...except that fields containing SQL primary indicies don't belong 00194 in this protocol, so they're turninging into handles. 00195 Length restriction is a MySQL implementation issue. 00196 Handles are case-insensitive (because SQL is, among other reasons). 00197 --> 00198 <define name="object_handle"> 00199 <data type="string"> 00200 <param name="maxLength">255</param> 00201 <param name="pattern">[\-_A-Za-z0-9]*</param> 00202 </data> 00203 </define> 00204 <!-- URIs --> 00205 <define name="uri"> 00206 <data type="anyURI"> 00207 <param name="maxLength">4096</param> 00208 </data> 00209 </define> 00210 <!-- Name fields imported from up-down protocol --> 00211 <define name="up_down_name"> 00212 <data type="token"> 00213 <param name="maxLength">1024</param> 00214 </data> 00215 </define> 00216 <!-- Resource lists --> 00217 <define name="asn_list"> 00218 <data type="string"> 00219 <param name="maxLength">512000</param> 00220 <param name="pattern">[\-,0-9]*</param> 00221 </data> 00222 </define> 00223 <define name="ipv4_list"> 00224 <data type="string"> 00225 <param name="maxLength">512000</param> 00226 <param name="pattern">[\-,0-9/.]*</param> 00227 </data> 00228 </define> 00229 <define name="ipv6_list"> 00230 <data type="string"> 00231 <param name="maxLength">512000</param> 00232 <param name="pattern">[\-,0-9/:a-fA-F]*</param> 00233 </data> 00234 </define> 00235 <!-- <self/> element --> 00236 <define name="self_bool"> 00237 <optional> 00238 <attribute name="rekey"> 00239 <value>yes</value> 00240 </attribute> 00241 </optional> 00242 <optional> 00243 <attribute name="reissue"> 00244 <value>yes</value> 00245 </attribute> 00246 </optional> 00247 <optional> 00248 <attribute name="revoke"> 00249 <value>yes</value> 00250 </attribute> 00251 </optional> 00252 <optional> 00253 <attribute name="run_now"> 00254 <value>yes</value> 00255 </attribute> 00256 </optional> 00257 <optional> 00258 <attribute name="publish_world_now"> 00259 <value>yes</value> 00260 </attribute> 00261 </optional> 00262 <optional> 00263 <attribute name="revoke_forgotten"> 00264 <value>yes</value> 00265 </attribute> 00266 </optional> 00267 </define> 00268 <define name="self_payload"> 00269 <optional> 00270 <attribute name="use_hsm"> 00271 <choice> 00272 <value>yes</value> 00273 <value>no</value> 00274 </choice> 00275 </attribute> 00276 </optional> 00277 <optional> 00278 <attribute name="crl_interval"> 00279 <data type="positiveInteger"/> 00280 </attribute> 00281 </optional> 00282 <optional> 00283 <attribute name="regen_margin"> 00284 <data type="positiveInteger"/> 00285 </attribute> 00286 </optional> 00287 <optional> 00288 <element name="bpki_cert"> 00289 <ref name="base64"/> 00290 </element> 00291 </optional> 00292 <optional> 00293 <element name="bpki_glue"> 00294 <ref name="base64"/> 00295 </element> 00296 </optional> 00297 </define> 00298 <define name="self_handle"> 00299 <attribute name="self_handle"> 00300 <ref name="object_handle"/> 00301 </attribute> 00302 </define> 00303 <define name="self_query" combine="choice"> 00304 <element name="self"> 00305 <ref name="ctl_create"/> 00306 <ref name="self_handle"/> 00307 <ref name="self_bool"/> 00308 <ref name="self_payload"/> 00309 </element> 00310 </define> 00311 <define name="self_reply" combine="choice"> 00312 <element name="self"> 00313 <ref name="ctl_create"/> 00314 <ref name="self_handle"/> 00315 </element> 00316 </define> 00317 <define name="self_query" combine="choice"> 00318 <element name="self"> 00319 <ref name="ctl_set"/> 00320 <ref name="self_handle"/> 00321 <ref name="self_bool"/> 00322 <ref name="self_payload"/> 00323 </element> 00324 </define> 00325 <define name="self_reply" combine="choice"> 00326 <element name="self"> 00327 <ref name="ctl_set"/> 00328 <ref name="self_handle"/> 00329 </element> 00330 </define> 00331 <define name="self_query" combine="choice"> 00332 <element name="self"> 00333 <ref name="ctl_get"/> 00334 <ref name="self_handle"/> 00335 </element> 00336 </define> 00337 <define name="self_reply" combine="choice"> 00338 <element name="self"> 00339 <ref name="ctl_get"/> 00340 <ref name="self_handle"/> 00341 <ref name="self_payload"/> 00342 </element> 00343 </define> 00344 <define name="self_query" combine="choice"> 00345 <element name="self"> 00346 <ref name="ctl_list"/> 00347 </element> 00348 </define> 00349 <define name="self_reply" combine="choice"> 00350 <element name="self"> 00351 <ref name="ctl_list"/> 00352 <ref name="self_handle"/> 00353 <ref name="self_payload"/> 00354 </element> 00355 </define> 00356 <define name="self_query" combine="choice"> 00357 <element name="self"> 00358 <ref name="ctl_destroy"/> 00359 <ref name="self_handle"/> 00360 </element> 00361 </define> 00362 <define name="self_reply" combine="choice"> 00363 <element name="self"> 00364 <ref name="ctl_destroy"/> 00365 <ref name="self_handle"/> 00366 </element> 00367 </define> 00368 <!-- <bsc/> element. Key parameters hardwired for now. --> 00369 <define name="bsc_bool"> 00370 <optional> 00371 <attribute name="generate_keypair"> 00372 <value>yes</value> 00373 </attribute> 00374 <optional> 00375 <attribute name="key_type"> 00376 <value>rsa</value> 00377 </attribute> 00378 </optional> 00379 <optional> 00380 <attribute name="hash_alg"> 00381 <value>sha256</value> 00382 </attribute> 00383 </optional> 00384 <optional> 00385 <attribute name="key_length"> 00386 <value>2048</value> 00387 </attribute> 00388 </optional> 00389 </optional> 00390 </define> 00391 <define name="bsc_handle"> 00392 <attribute name="bsc_handle"> 00393 <ref name="object_handle"/> 00394 </attribute> 00395 </define> 00396 <define name="bsc_payload"> 00397 <optional> 00398 <element name="signing_cert"> 00399 <ref name="base64"/> 00400 </element> 00401 </optional> 00402 <optional> 00403 <element name="signing_cert_crl"> 00404 <ref name="base64"/> 00405 </element> 00406 </optional> 00407 </define> 00408 <define name="bsc_pkcs10"> 00409 <optional> 00410 <element name="pkcs10_request"> 00411 <ref name="base64"/> 00412 </element> 00413 </optional> 00414 </define> 00415 <define name="bsc_query" combine="choice"> 00416 <element name="bsc"> 00417 <ref name="ctl_create"/> 00418 <ref name="self_handle"/> 00419 <ref name="bsc_handle"/> 00420 <ref name="bsc_bool"/> 00421 <ref name="bsc_payload"/> 00422 </element> 00423 </define> 00424 <define name="bsc_reply" combine="choice"> 00425 <element name="bsc"> 00426 <ref name="ctl_create"/> 00427 <ref name="self_handle"/> 00428 <ref name="bsc_handle"/> 00429 <ref name="bsc_pkcs10"/> 00430 </element> 00431 </define> 00432 <define name="bsc_query" combine="choice"> 00433 <element name="bsc"> 00434 <ref name="ctl_set"/> 00435 <ref name="self_handle"/> 00436 <ref name="bsc_handle"/> 00437 <ref name="bsc_bool"/> 00438 <ref name="bsc_payload"/> 00439 </element> 00440 </define> 00441 <define name="bsc_reply" combine="choice"> 00442 <element name="bsc"> 00443 <ref name="ctl_set"/> 00444 <ref name="self_handle"/> 00445 <ref name="bsc_handle"/> 00446 <ref name="bsc_pkcs10"/> 00447 </element> 00448 </define> 00449 <define name="bsc_query" combine="choice"> 00450 <element name="bsc"> 00451 <ref name="ctl_get"/> 00452 <ref name="self_handle"/> 00453 <ref name="bsc_handle"/> 00454 </element> 00455 </define> 00456 <define name="bsc_reply" combine="choice"> 00457 <element name="bsc"> 00458 <ref name="ctl_get"/> 00459 <ref name="self_handle"/> 00460 <ref name="bsc_handle"/> 00461 <ref name="bsc_payload"/> 00462 <ref name="bsc_pkcs10"/> 00463 </element> 00464 </define> 00465 <define name="bsc_query" combine="choice"> 00466 <element name="bsc"> 00467 <ref name="ctl_list"/> 00468 <ref name="self_handle"/> 00469 </element> 00470 </define> 00471 <define name="bsc_reply" combine="choice"> 00472 <element name="bsc"> 00473 <ref name="ctl_list"/> 00474 <ref name="self_handle"/> 00475 <ref name="bsc_handle"/> 00476 <ref name="bsc_payload"/> 00477 <ref name="bsc_pkcs10"/> 00478 </element> 00479 </define> 00480 <define name="bsc_query" combine="choice"> 00481 <element name="bsc"> 00482 <ref name="ctl_destroy"/> 00483 <ref name="self_handle"/> 00484 <ref name="bsc_handle"/> 00485 </element> 00486 </define> 00487 <define name="bsc_reply" combine="choice"> 00488 <element name="bsc"> 00489 <ref name="ctl_destroy"/> 00490 <ref name="self_handle"/> 00491 <ref name="bsc_handle"/> 00492 </element> 00493 </define> 00494 <!-- <parent/> element --> 00495 <define name="parent_handle"> 00496 <attribute name="parent_handle"> 00497 <ref name="object_handle"/> 00498 </attribute> 00499 </define> 00500 <define name="parent_bool"> 00501 <optional> 00502 <attribute name="rekey"> 00503 <value>yes</value> 00504 </attribute> 00505 </optional> 00506 <optional> 00507 <attribute name="reissue"> 00508 <value>yes</value> 00509 </attribute> 00510 </optional> 00511 <optional> 00512 <attribute name="revoke"> 00513 <value>yes</value> 00514 </attribute> 00515 </optional> 00516 <optional> 00517 <attribute name="revoke_forgotten"> 00518 <value>yes</value> 00519 </attribute> 00520 </optional> 00521 </define> 00522 <define name="parent_payload"> 00523 <optional> 00524 <attribute name="peer_contact_uri"> 00525 <ref name="uri"/> 00526 </attribute> 00527 </optional> 00528 <optional> 00529 <attribute name="sia_base"> 00530 <ref name="uri"/> 00531 </attribute> 00532 </optional> 00533 <optional> 00534 <ref name="bsc_handle"/> 00535 </optional> 00536 <optional> 00537 <ref name="repository_handle"/> 00538 </optional> 00539 <optional> 00540 <attribute name="sender_name"> 00541 <ref name="up_down_name"/> 00542 </attribute> 00543 </optional> 00544 <optional> 00545 <attribute name="recipient_name"> 00546 <ref name="up_down_name"/> 00547 </attribute> 00548 </optional> 00549 <optional> 00550 <element name="bpki_cms_cert"> 00551 <ref name="base64"/> 00552 </element> 00553 </optional> 00554 <optional> 00555 <element name="bpki_cms_glue"> 00556 <ref name="base64"/> 00557 </element> 00558 </optional> 00559 </define> 00560 <define name="parent_query" combine="choice"> 00561 <element name="parent"> 00562 <ref name="ctl_create"/> 00563 <ref name="self_handle"/> 00564 <ref name="parent_handle"/> 00565 <ref name="parent_bool"/> 00566 <ref name="parent_payload"/> 00567 </element> 00568 </define> 00569 <define name="parent_reply" combine="choice"> 00570 <element name="parent"> 00571 <ref name="ctl_create"/> 00572 <ref name="self_handle"/> 00573 <ref name="parent_handle"/> 00574 </element> 00575 </define> 00576 <define name="parent_query" combine="choice"> 00577 <element name="parent"> 00578 <ref name="ctl_set"/> 00579 <ref name="self_handle"/> 00580 <ref name="parent_handle"/> 00581 <ref name="parent_bool"/> 00582 <ref name="parent_payload"/> 00583 </element> 00584 </define> 00585 <define name="parent_reply" combine="choice"> 00586 <element name="parent"> 00587 <ref name="ctl_set"/> 00588 <ref name="self_handle"/> 00589 <ref name="parent_handle"/> 00590 </element> 00591 </define> 00592 <define name="parent_query" combine="choice"> 00593 <element name="parent"> 00594 <ref name="ctl_get"/> 00595 <ref name="self_handle"/> 00596 <ref name="parent_handle"/> 00597 </element> 00598 </define> 00599 <define name="parent_reply" combine="choice"> 00600 <element name="parent"> 00601 <ref name="ctl_get"/> 00602 <ref name="self_handle"/> 00603 <ref name="parent_handle"/> 00604 <ref name="parent_payload"/> 00605 </element> 00606 </define> 00607 <define name="parent_query" combine="choice"> 00608 <element name="parent"> 00609 <ref name="ctl_list"/> 00610 <ref name="self_handle"/> 00611 </element> 00612 </define> 00613 <define name="parent_reply" combine="choice"> 00614 <element name="parent"> 00615 <ref name="ctl_list"/> 00616 <ref name="self_handle"/> 00617 <ref name="parent_handle"/> 00618 <ref name="parent_payload"/> 00619 </element> 00620 </define> 00621 <define name="parent_query" combine="choice"> 00622 <element name="parent"> 00623 <ref name="ctl_destroy"/> 00624 <ref name="self_handle"/> 00625 <ref name="parent_handle"/> 00626 </element> 00627 </define> 00628 <define name="parent_reply" combine="choice"> 00629 <element name="parent"> 00630 <ref name="ctl_destroy"/> 00631 <ref name="self_handle"/> 00632 <ref name="parent_handle"/> 00633 </element> 00634 </define> 00635 <!-- <child/> element --> 00636 <define name="child_handle"> 00637 <attribute name="child_handle"> 00638 <ref name="object_handle"/> 00639 </attribute> 00640 </define> 00641 <define name="child_bool"> 00642 <optional> 00643 <attribute name="reissue"> 00644 <value>yes</value> 00645 </attribute> 00646 </optional> 00647 </define> 00648 <define name="child_payload"> 00649 <optional> 00650 <ref name="bsc_handle"/> 00651 </optional> 00652 <optional> 00653 <element name="bpki_cert"> 00654 <ref name="base64"/> 00655 </element> 00656 </optional> 00657 <optional> 00658 <element name="bpki_glue"> 00659 <ref name="base64"/> 00660 </element> 00661 </optional> 00662 </define> 00663 <define name="child_query" combine="choice"> 00664 <element name="child"> 00665 <ref name="ctl_create"/> 00666 <ref name="self_handle"/> 00667 <ref name="child_handle"/> 00668 <ref name="child_bool"/> 00669 <ref name="child_payload"/> 00670 </element> 00671 </define> 00672 <define name="child_reply" combine="choice"> 00673 <element name="child"> 00674 <ref name="ctl_create"/> 00675 <ref name="self_handle"/> 00676 <ref name="child_handle"/> 00677 </element> 00678 </define> 00679 <define name="child_query" combine="choice"> 00680 <element name="child"> 00681 <ref name="ctl_set"/> 00682 <ref name="self_handle"/> 00683 <ref name="child_handle"/> 00684 <ref name="child_bool"/> 00685 <ref name="child_payload"/> 00686 </element> 00687 </define> 00688 <define name="child_reply" combine="choice"> 00689 <element name="child"> 00690 <ref name="ctl_set"/> 00691 <ref name="self_handle"/> 00692 <ref name="child_handle"/> 00693 </element> 00694 </define> 00695 <define name="child_query" combine="choice"> 00696 <element name="child"> 00697 <ref name="ctl_get"/> 00698 <ref name="self_handle"/> 00699 <ref name="child_handle"/> 00700 </element> 00701 </define> 00702 <define name="child_reply" combine="choice"> 00703 <element name="child"> 00704 <ref name="ctl_get"/> 00705 <ref name="self_handle"/> 00706 <ref name="child_handle"/> 00707 <ref name="child_payload"/> 00708 </element> 00709 </define> 00710 <define name="child_query" combine="choice"> 00711 <element name="child"> 00712 <ref name="ctl_list"/> 00713 <ref name="self_handle"/> 00714 </element> 00715 </define> 00716 <define name="child_reply" combine="choice"> 00717 <element name="child"> 00718 <ref name="ctl_list"/> 00719 <ref name="self_handle"/> 00720 <ref name="child_handle"/> 00721 <ref name="child_payload"/> 00722 </element> 00723 </define> 00724 <define name="child_query" combine="choice"> 00725 <element name="child"> 00726 <ref name="ctl_destroy"/> 00727 <ref name="self_handle"/> 00728 <ref name="child_handle"/> 00729 </element> 00730 </define> 00731 <define name="child_reply" combine="choice"> 00732 <element name="child"> 00733 <ref name="ctl_destroy"/> 00734 <ref name="self_handle"/> 00735 <ref name="child_handle"/> 00736 </element> 00737 </define> 00738 <!-- <repository/> element --> 00739 <define name="repository_handle"> 00740 <attribute name="repository_handle"> 00741 <ref name="object_handle"/> 00742 </attribute> 00743 </define> 00744 <define name="repository_payload"> 00745 <optional> 00746 <attribute name="peer_contact_uri"> 00747 <ref name="uri"/> 00748 </attribute> 00749 </optional> 00750 <optional> 00751 <ref name="bsc_handle"/> 00752 </optional> 00753 <optional> 00754 <element name="bpki_cert"> 00755 <ref name="base64"/> 00756 </element> 00757 </optional> 00758 <optional> 00759 <element name="bpki_glue"> 00760 <ref name="base64"/> 00761 </element> 00762 </optional> 00763 </define> 00764 <define name="repository_query" combine="choice"> 00765 <element name="repository"> 00766 <ref name="ctl_create"/> 00767 <ref name="self_handle"/> 00768 <ref name="repository_handle"/> 00769 <ref name="repository_payload"/> 00770 </element> 00771 </define> 00772 <define name="repository_reply" combine="choice"> 00773 <element name="repository"> 00774 <ref name="ctl_create"/> 00775 <ref name="self_handle"/> 00776 <ref name="repository_handle"/> 00777 </element> 00778 </define> 00779 <define name="repository_query" combine="choice"> 00780 <element name="repository"> 00781 <ref name="ctl_set"/> 00782 <ref name="self_handle"/> 00783 <ref name="repository_handle"/> 00784 <ref name="repository_payload"/> 00785 </element> 00786 </define> 00787 <define name="repository_reply" combine="choice"> 00788 <element name="repository"> 00789 <ref name="ctl_set"/> 00790 <ref name="self_handle"/> 00791 <ref name="repository_handle"/> 00792 </element> 00793 </define> 00794 <define name="repository_query" combine="choice"> 00795 <element name="repository"> 00796 <ref name="ctl_get"/> 00797 <ref name="self_handle"/> 00798 <ref name="repository_handle"/> 00799 </element> 00800 </define> 00801 <define name="repository_reply" combine="choice"> 00802 <element name="repository"> 00803 <ref name="ctl_get"/> 00804 <ref name="self_handle"/> 00805 <ref name="repository_handle"/> 00806 <ref name="repository_payload"/> 00807 </element> 00808 </define> 00809 <define name="repository_query" combine="choice"> 00810 <element name="repository"> 00811 <ref name="ctl_list"/> 00812 <ref name="self_handle"/> 00813 </element> 00814 </define> 00815 <define name="repository_reply" combine="choice"> 00816 <element name="repository"> 00817 <ref name="ctl_list"/> 00818 <ref name="self_handle"/> 00819 <ref name="repository_handle"/> 00820 <ref name="repository_payload"/> 00821 </element> 00822 </define> 00823 <define name="repository_query" combine="choice"> 00824 <element name="repository"> 00825 <ref name="ctl_destroy"/> 00826 <ref name="self_handle"/> 00827 <ref name="repository_handle"/> 00828 </element> 00829 </define> 00830 <define name="repository_reply" combine="choice"> 00831 <element name="repository"> 00832 <ref name="ctl_destroy"/> 00833 <ref name="self_handle"/> 00834 <ref name="repository_handle"/> 00835 </element> 00836 </define> 00837 <!-- <list_resources/> element --> 00838 <define name="list_resources_query"> 00839 <element name="list_resources"> 00840 <ref name="tag"/> 00841 <ref name="self_handle"/> 00842 <ref name="child_handle"/> 00843 </element> 00844 </define> 00845 <define name="list_resources_reply"> 00846 <element name="list_resources"> 00847 <ref name="tag"/> 00848 <ref name="self_handle"/> 00849 <ref name="child_handle"/> 00850 <attribute name="valid_until"> 00851 <data type="dateTime"> 00852 <param name="pattern">.*Z</param> 00853 </data> 00854 </attribute> 00855 <optional> 00856 <attribute name="asn"> 00857 <ref name="asn_list"/> 00858 </attribute> 00859 </optional> 00860 <optional> 00861 <attribute name="ipv4"> 00862 <ref name="ipv4_list"/> 00863 </attribute> 00864 </optional> 00865 <optional> 00866 <attribute name="ipv6"> 00867 <ref name="ipv6_list"/> 00868 </attribute> 00869 </optional> 00870 </element> 00871 </define> 00872 <!-- <list_roa_requests/> element --> 00873 <define name="list_roa_requests_query"> 00874 <element name="list_roa_requests"> 00875 <ref name="tag"/> 00876 <ref name="self_handle"/> 00877 </element> 00878 </define> 00879 <define name="list_roa_requests_reply"> 00880 <element name="list_roa_requests"> 00881 <ref name="tag"/> 00882 <ref name="self_handle"/> 00883 <attribute name="asn"> 00884 <data type="positiveInteger"/> 00885 </attribute> 00886 <optional> 00887 <attribute name="ipv4"> 00888 <ref name="ipv4_list"/> 00889 </attribute> 00890 </optional> 00891 <optional> 00892 <attribute name="ipv6"> 00893 <ref name="ipv6_list"/> 00894 </attribute> 00895 </optional> 00896 </element> 00897 </define> 00898 <!-- <list_ghostbuster_requests/> element --> 00899 <define name="list_ghostbuster_requests_query"> 00900 <element name="list_ghostbuster_requests"> 00901 <ref name="tag"/> 00902 <ref name="self_handle"/> 00903 <ref name="parent_handle"/> 00904 </element> 00905 </define> 00906 <define name="list_ghostbuster_requests_reply"> 00907 <element name="list_ghostbuster_requests"> 00908 <ref name="tag"/> 00909 <ref name="self_handle"/> 00910 <ref name="parent_handle"/> 00911 <data type="string"/> 00912 </element> 00913 </define> 00914 <!-- <list_published_objects/> element --> 00915 <define name="list_published_objects_query"> 00916 <element name="list_published_objects"> 00917 <ref name="tag"/> 00918 <ref name="self_handle"/> 00919 </element> 00920 </define> 00921 <define name="list_published_objects_reply"> 00922 <element name="list_published_objects"> 00923 <ref name="tag"/> 00924 <ref name="self_handle"/> 00925 <attribute name="uri"> 00926 <ref name="uri"/> 00927 </attribute> 00928 <ref name="base64"/> 00929 </element> 00930 </define> 00931 <!-- <list_received_resources/> element --> 00932 <define name="list_received_resources_query"> 00933 <element name="list_received_resources"> 00934 <ref name="tag"/> 00935 <ref name="self_handle"/> 00936 </element> 00937 </define> 00938 <define name="list_received_resources_reply"> 00939 <element name="list_received_resources"> 00940 <ref name="tag"/> 00941 <ref name="self_handle"/> 00942 <ref name="parent_handle"/> 00943 <attribute name="notBefore"> 00944 <data type="dateTime"> 00945 <param name="pattern">.*Z</param> 00946 </data> 00947 </attribute> 00948 <attribute name="notAfter"> 00949 <data type="dateTime"> 00950 <param name="pattern">.*Z</param> 00951 </data> 00952 </attribute> 00953 <attribute name="uri"> 00954 <ref name="uri"/> 00955 </attribute> 00956 <attribute name="sia_uri"> 00957 <ref name="uri"/> 00958 </attribute> 00959 <attribute name="aia_uri"> 00960 <ref name="uri"/> 00961 </attribute> 00962 <optional> 00963 <attribute name="asn"> 00964 <ref name="asn_list"/> 00965 </attribute> 00966 </optional> 00967 <optional> 00968 <attribute name="ipv4"> 00969 <ref name="ipv4_list"/> 00970 </attribute> 00971 </optional> 00972 <optional> 00973 <attribute name="ipv6"> 00974 <ref name="ipv6_list"/> 00975 </attribute> 00976 </optional> 00977 </element> 00978 </define> 00979 <!-- <report_error/> element --> 00980 <define name="error"> 00981 <data type="token"> 00982 <param name="maxLength">1024</param> 00983 </data> 00984 </define> 00985 <define name="report_error_reply"> 00986 <element name="report_error"> 00987 <ref name="tag"/> 00988 <optional> 00989 <ref name="self_handle"/> 00990 </optional> 00991 <attribute name="error_code"> 00992 <ref name="error"/> 00993 </attribute> 00994 <optional> 00995 <data type="string"> 00996 <param name="maxLength">512000</param> 00997 </data> 00998 </optional> 00999 </element> 01000 </define> 01001 </grammar> 01002 <!-- 01003 Local Variables: 01004 indent-tabs-mode: nil 01005 End: 01006 --> 01007 ''')) 01008 01009 ## @var up_down 01010 ## Parsed RelaxNG up_down schema 01011 up_down = lxml.etree.RelaxNG(lxml.etree.fromstring('''<?xml version="1.0" encoding="UTF-8"?> 01012 <!-- 01013 $Id: up-down-schema.rnc 1798 2008-05-17 08:21:50Z sra $ 01014 01015 RelaxNG Scheme for up-down protocol, extracted from APNIC Wiki. 01016 01017 libxml2 (including xmllint) only groks the XML syntax of RelaxNG, so 01018 run the compact syntax through trang to get XML syntax. 01019 --> 01020 <grammar ns="http://www.apnic.net/specs/rescerts/up-down/" xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"> 01021 <start> 01022 <element name="message"> 01023 <attribute name="version"> 01024 <data type="positiveInteger"> 01025 <param name="maxInclusive">1</param> 01026 </data> 01027 </attribute> 01028 <attribute name="sender"> 01029 <data type="token"> 01030 <param name="maxLength">1024</param> 01031 </data> 01032 </attribute> 01033 <attribute name="recipient"> 01034 <data type="token"> 01035 <param name="maxLength">1024</param> 01036 </data> 01037 </attribute> 01038 <ref name="payload"/> 01039 </element> 01040 </start> 01041 <define name="payload" combine="choice"> 01042 <attribute name="type"> 01043 <value>list</value> 01044 </attribute> 01045 <ref name="list_request"/> 01046 </define> 01047 <define name="payload" combine="choice"> 01048 <attribute name="type"> 01049 <value>list_response</value> 01050 </attribute> 01051 <ref name="list_response"/> 01052 </define> 01053 <define name="payload" combine="choice"> 01054 <attribute name="type"> 01055 <value>issue</value> 01056 </attribute> 01057 <ref name="issue_request"/> 01058 </define> 01059 <define name="payload" combine="choice"> 01060 <attribute name="type"> 01061 <value>issue_response</value> 01062 </attribute> 01063 <ref name="issue_response"/> 01064 </define> 01065 <define name="payload" combine="choice"> 01066 <attribute name="type"> 01067 <value>revoke</value> 01068 </attribute> 01069 <ref name="revoke_request"/> 01070 </define> 01071 <define name="payload" combine="choice"> 01072 <attribute name="type"> 01073 <value>revoke_response</value> 01074 </attribute> 01075 <ref name="revoke_response"/> 01076 </define> 01077 <define name="payload" combine="choice"> 01078 <attribute name="type"> 01079 <value>error_response</value> 01080 </attribute> 01081 <ref name="error_response"/> 01082 </define> 01083 <define name="list_request"> 01084 <empty/> 01085 </define> 01086 <define name="list_response"> 01087 <zeroOrMore> 01088 <ref name="class"/> 01089 </zeroOrMore> 01090 </define> 01091 <define name="class"> 01092 <element name="class"> 01093 <attribute name="class_name"> 01094 <data type="token"> 01095 <param name="maxLength">1024</param> 01096 </data> 01097 </attribute> 01098 <attribute name="cert_url"> 01099 <data type="string"> 01100 <param name="maxLength">4096</param> 01101 </data> 01102 </attribute> 01103 <attribute name="resource_set_as"> 01104 <data type="string"> 01105 <param name="maxLength">512000</param> 01106 <param name="pattern">[\-,0-9]*</param> 01107 </data> 01108 </attribute> 01109 <attribute name="resource_set_ipv4"> 01110 <data type="string"> 01111 <param name="maxLength">512000</param> 01112 <param name="pattern">[\-,/.0-9]*</param> 01113 </data> 01114 </attribute> 01115 <attribute name="resource_set_ipv6"> 01116 <data type="string"> 01117 <param name="maxLength">512000</param> 01118 <param name="pattern">[\-,/:0-9a-fA-F]*</param> 01119 </data> 01120 </attribute> 01121 <optional> 01122 <attribute name="resource_set_notafter"> 01123 <data type="dateTime"> 01124 <param name="pattern">.*Z</param> 01125 </data> 01126 </attribute> 01127 </optional> 01128 <optional> 01129 <attribute name="suggested_sia_head"> 01130 <data type="anyURI"> 01131 <param name="maxLength">1024</param> 01132 <param name="pattern">rsync://.+</param> 01133 </data> 01134 </attribute> 01135 </optional> 01136 <zeroOrMore> 01137 <element name="certificate"> 01138 <attribute name="cert_url"> 01139 <data type="string"> 01140 <param name="maxLength">4096</param> 01141 </data> 01142 </attribute> 01143 <optional> 01144 <attribute name="req_resource_set_as"> 01145 <data type="string"> 01146 <param name="maxLength">512000</param> 01147 <param name="pattern">[\-,0-9]*</param> 01148 </data> 01149 </attribute> 01150 </optional> 01151 <optional> 01152 <attribute name="req_resource_set_ipv4"> 01153 <data type="string"> 01154 <param name="maxLength">512000</param> 01155 <param name="pattern">[\-,/.0-9]*</param> 01156 </data> 01157 </attribute> 01158 </optional> 01159 <optional> 01160 <attribute name="req_resource_set_ipv6"> 01161 <data type="string"> 01162 <param name="maxLength">512000</param> 01163 <param name="pattern">[\-,/:0-9a-fA-F]*</param> 01164 </data> 01165 </attribute> 01166 </optional> 01167 <data type="base64Binary"> 01168 <param name="maxLength">512000</param> 01169 </data> 01170 </element> 01171 </zeroOrMore> 01172 <element name="issuer"> 01173 <data type="base64Binary"> 01174 <param name="maxLength">512000</param> 01175 </data> 01176 </element> 01177 </element> 01178 </define> 01179 <define name="issue_request"> 01180 <element name="request"> 01181 <attribute name="class_name"> 01182 <data type="token"> 01183 <param name="maxLength">1024</param> 01184 </data> 01185 </attribute> 01186 <optional> 01187 <attribute name="req_resource_set_as"> 01188 <data type="string"> 01189 <param name="maxLength">512000</param> 01190 <param name="pattern">[\-,0-9]*</param> 01191 </data> 01192 </attribute> 01193 </optional> 01194 <optional> 01195 <attribute name="req_resource_set_ipv4"> 01196 <data type="string"> 01197 <param name="maxLength">512000</param> 01198 <param name="pattern">[\-,/.0-9]*</param> 01199 </data> 01200 </attribute> 01201 </optional> 01202 <optional> 01203 <attribute name="req_resource_set_ipv6"> 01204 <data type="string"> 01205 <param name="maxLength">512000</param> 01206 <param name="pattern">[\-,/:0-9a-fA-F]*</param> 01207 </data> 01208 </attribute> 01209 </optional> 01210 <data type="base64Binary"> 01211 <param name="maxLength">512000</param> 01212 </data> 01213 </element> 01214 </define> 01215 <define name="issue_response"> 01216 <ref name="class"/> 01217 </define> 01218 <define name="revoke_request"> 01219 <ref name="revocation"/> 01220 </define> 01221 <define name="revoke_response"> 01222 <ref name="revocation"/> 01223 </define> 01224 <define name="revocation"> 01225 <element name="key"> 01226 <attribute name="class_name"> 01227 <data type="token"> 01228 <param name="maxLength">1024</param> 01229 </data> 01230 </attribute> 01231 <attribute name="ski"> 01232 <data type="token"> 01233 <param name="maxLength">1024</param> 01234 </data> 01235 </attribute> 01236 </element> 01237 </define> 01238 <define name="error_response"> 01239 <element name="status"> 01240 <data type="positiveInteger"> 01241 <param name="maxInclusive">999999999999999</param> 01242 </data> 01243 </element> 01244 <optional> 01245 <element name="description"> 01246 <attribute name="xml:lang"> 01247 <data type="language"/> 01248 </attribute> 01249 <data type="string"> 01250 <param name="maxLength">1024</param> 01251 </data> 01252 </element> 01253 </optional> 01254 </define> 01255 </grammar> 01256 <!-- 01257 Local Variables: 01258 indent-tabs-mode: nil 01259 End: 01260 --> 01261 ''')) 01262 01263 ## @var publication 01264 ## Parsed RelaxNG publication schema 01265 publication = lxml.etree.RelaxNG(lxml.etree.fromstring('''<?xml version="1.0" encoding="UTF-8"?> 01266 <!-- 01267 $Id: publication-schema.rnc 3730 2011-03-21 12:42:43Z sra $ 01268 01269 RelaxNG Schema for RPKI publication protocol. 01270 01271 libxml2 (including xmllint) only groks the XML syntax of RelaxNG, so 01272 run the compact syntax through trang to get XML syntax. 01273 01274 Copyright (C) 2009-2010 Internet Systems Consortium ("ISC") 01275 01276 Permission to use, copy, modify, and distribute this software for any 01277 purpose with or without fee is hereby granted, provided that the above 01278 copyright notice and this permission notice appear in all copies. 01279 01280 THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH 01281 REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY 01282 AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, 01283 INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM 01284 LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE 01285 OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR 01286 PERFORMANCE OF THIS SOFTWARE. 01287 01288 Portions copyright (C) 2007-2008 American Registry for Internet Numbers ("ARIN") 01289 01290 Permission to use, copy, modify, and distribute this software for any 01291 purpose with or without fee is hereby granted, provided that the above 01292 copyright notice and this permission notice appear in all copies. 01293 01294 THE SOFTWARE IS PROVIDED "AS IS" AND ARIN DISCLAIMS ALL WARRANTIES WITH 01295 REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY 01296 AND FITNESS. IN NO EVENT SHALL ARIN BE LIABLE FOR ANY SPECIAL, DIRECT, 01297 INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM 01298 LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE 01299 OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR 01300 PERFORMANCE OF THIS SOFTWARE. 01301 --> 01302 <grammar ns="http://www.hactrn.net/uris/rpki/publication-spec/" xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"> 01303 <!-- Top level PDU --> 01304 <start> 01305 <element name="msg"> 01306 <attribute name="version"> 01307 <data type="positiveInteger"> 01308 <param name="maxInclusive">1</param> 01309 </data> 01310 </attribute> 01311 <choice> 01312 <group> 01313 <attribute name="type"> 01314 <value>query</value> 01315 </attribute> 01316 <zeroOrMore> 01317 <ref name="query_elt"/> 01318 </zeroOrMore> 01319 </group> 01320 <group> 01321 <attribute name="type"> 01322 <value>reply</value> 01323 </attribute> 01324 <zeroOrMore> 01325 <ref name="reply_elt"/> 01326 </zeroOrMore> 01327 </group> 01328 </choice> 01329 </element> 01330 </start> 01331 <!-- PDUs allowed in a query --> 01332 <define name="query_elt"> 01333 <choice> 01334 <ref name="config_query"/> 01335 <ref name="client_query"/> 01336 <ref name="certificate_query"/> 01337 <ref name="crl_query"/> 01338 <ref name="manifest_query"/> 01339 <ref name="roa_query"/> 01340 <ref name="ghostbuster_query"/> 01341 </choice> 01342 </define> 01343 <!-- PDUs allowed in a reply --> 01344 <define name="reply_elt"> 01345 <choice> 01346 <ref name="config_reply"/> 01347 <ref name="client_reply"/> 01348 <ref name="certificate_reply"/> 01349 <ref name="crl_reply"/> 01350 <ref name="manifest_reply"/> 01351 <ref name="roa_reply"/> 01352 <ref name="ghostbuster_reply"/> 01353 <ref name="report_error_reply"/> 01354 </choice> 01355 </define> 01356 <!-- Tag attributes for bulk operations --> 01357 <define name="tag"> 01358 <attribute name="tag"> 01359 <data type="token"> 01360 <param name="maxLength">1024</param> 01361 </data> 01362 </attribute> 01363 </define> 01364 <!-- 01365 Base64 encoded DER stuff 01366 base64 = xsd:base64Binary { maxLength="512000" } 01367 01368 Sadly, it turns out that CRLs can in fact get longer than this for an active CA. 01369 Remove length limit for now, think about whether to put it back later. 01370 --> 01371 <define name="base64"> 01372 <data type="base64Binary"/> 01373 </define> 01374 <!-- Publication URLs --> 01375 <define name="uri_t"> 01376 <data type="anyURI"> 01377 <param name="maxLength">4096</param> 01378 </data> 01379 </define> 01380 <define name="uri"> 01381 <attribute name="uri"> 01382 <ref name="uri_t"/> 01383 </attribute> 01384 </define> 01385 <!-- 01386 Handles on remote objects (replaces passing raw SQL IDs). NB: 01387 Unlike the up-down protocol, handles in this protocol allow "/" as a 01388 hierarchy delimiter. 01389 --> 01390 <define name="object_handle"> 01391 <data type="string"> 01392 <param name="maxLength">255</param> 01393 <param name="pattern">[\-_A-Za-z0-9/]*</param> 01394 </data> 01395 </define> 01396 <!-- 01397 <config/> element (use restricted to repository operator) 01398 config_handle attribute, create, list, and destroy commands omitted deliberately, see code for details 01399 --> 01400 <define name="config_payload"> 01401 <optional> 01402 <element name="bpki_crl"> 01403 <ref name="base64"/> 01404 </element> 01405 </optional> 01406 </define> 01407 <define name="config_query" combine="choice"> 01408 <element name="config"> 01409 <attribute name="action"> 01410 <value>set</value> 01411 </attribute> 01412 <optional> 01413 <ref name="tag"/> 01414 </optional> 01415 <ref name="config_payload"/> 01416 </element> 01417 </define> 01418 <define name="config_reply" combine="choice"> 01419 <element name="config"> 01420 <attribute name="action"> 01421 <value>set</value> 01422 </attribute> 01423 <optional> 01424 <ref name="tag"/> 01425 </optional> 01426 </element> 01427 </define> 01428 <define name="config_query" combine="choice"> 01429 <element name="config"> 01430 <attribute name="action"> 01431 <value>get</value> 01432 </attribute> 01433 <optional> 01434 <ref name="tag"/> 01435 </optional> 01436 </element> 01437 </define> 01438 <define name="config_reply" combine="choice"> 01439 <element name="config"> 01440 <attribute name="action"> 01441 <value>get</value> 01442 </attribute> 01443 <optional> 01444 <ref name="tag"/> 01445 </optional> 01446 <ref name="config_payload"/> 01447 </element> 01448 </define> 01449 <!-- <client/> element (use restricted to repository operator) --> 01450 <define name="client_handle"> 01451 <attribute name="client_handle"> 01452 <ref name="object_handle"/> 01453 </attribute> 01454 </define> 01455 <define name="client_payload"> 01456 <optional> 01457 <attribute name="base_uri"> 01458 <ref name="uri_t"/> 01459 </attribute> 01460 </optional> 01461 <optional> 01462 <element name="bpki_cert"> 01463 <ref name="base64"/> 01464 </element> 01465 </optional> 01466 <optional> 01467 <element name="bpki_glue"> 01468 <ref name="base64"/> 01469 </element> 01470 </optional> 01471 </define> 01472 <define name="client_query" combine="choice"> 01473 <element name="client"> 01474 <attribute name="action"> 01475 <value>create</value> 01476 </attribute> 01477 <optional> 01478 <ref name="tag"/> 01479 </optional> 01480 <ref name="client_handle"/> 01481 <ref name="client_payload"/> 01482 </element> 01483 </define> 01484 <define name="client_reply" combine="choice"> 01485 <element name="client"> 01486 <attribute name="action"> 01487 <value>create</value> 01488 </attribute> 01489 <optional> 01490 <ref name="tag"/> 01491 </optional> 01492 <ref name="client_handle"/> 01493 </element> 01494 </define> 01495 <define name="client_query" combine="choice"> 01496 <element name="client"> 01497 <attribute name="action"> 01498 <value>set</value> 01499 </attribute> 01500 <optional> 01501 <ref name="tag"/> 01502 </optional> 01503 <ref name="client_handle"/> 01504 <ref name="client_payload"/> 01505 </element> 01506 </define> 01507 <define name="client_reply" combine="choice"> 01508 <element name="client"> 01509 <attribute name="action"> 01510 <value>set</value> 01511 </attribute> 01512 <optional> 01513 <ref name="tag"/> 01514 </optional> 01515 <ref name="client_handle"/> 01516 </element> 01517 </define> 01518 <define name="client_query" combine="choice"> 01519 <element name="client"> 01520 <attribute name="action"> 01521 <value>get</value> 01522 </attribute> 01523 <optional> 01524 <ref name="tag"/> 01525 </optional> 01526 <ref name="client_handle"/> 01527 </element> 01528 </define> 01529 <define name="client_reply" combine="choice"> 01530 <element name="client"> 01531 <attribute name="action"> 01532 <value>get</value> 01533 </attribute> 01534 <optional> 01535 <ref name="tag"/> 01536 </optional> 01537 <ref name="client_handle"/> 01538 <ref name="client_payload"/> 01539 </element> 01540 </define> 01541 <define name="client_query" combine="choice"> 01542 <element name="client"> 01543 <attribute name="action"> 01544 <value>list</value> 01545 </attribute> 01546 <optional> 01547 <ref name="tag"/> 01548 </optional> 01549 </element> 01550 </define> 01551 <define name="client_reply" combine="choice"> 01552 <element name="client"> 01553 <attribute name="action"> 01554 <value>list</value> 01555 </attribute> 01556 <optional> 01557 <ref name="tag"/> 01558 </optional> 01559 <ref name="client_handle"/> 01560 <ref name="client_payload"/> 01561 </element> 01562 </define> 01563 <define name="client_query" combine="choice"> 01564 <element name="client"> 01565 <attribute name="action"> 01566 <value>destroy</value> 01567 </attribute> 01568 <optional> 01569 <ref name="tag"/> 01570 </optional> 01571 <ref name="client_handle"/> 01572 </element> 01573 </define> 01574 <define name="client_reply" combine="choice"> 01575 <element name="client"> 01576 <attribute name="action"> 01577 <value>destroy</value> 01578 </attribute> 01579 <optional> 01580 <ref name="tag"/> 01581 </optional> 01582 <ref name="client_handle"/> 01583 </element> 01584 </define> 01585 <!-- <certificate/> element --> 01586 <define name="certificate_query" combine="choice"> 01587 <element name="certificate"> 01588 <attribute name="action"> 01589 <value>publish</value> 01590 </attribute> 01591 <optional> 01592 <ref name="tag"/> 01593 </optional> 01594 <ref name="uri"/> 01595 <ref name="base64"/> 01596 </element> 01597 </define> 01598 <define name="certificate_reply" combine="choice"> 01599 <element name="certificate"> 01600 <attribute name="action"> 01601 <value>publish</value> 01602 </attribute> 01603 <optional> 01604 <ref name="tag"/> 01605 </optional> 01606 <ref name="uri"/> 01607 </element> 01608 </define> 01609 <define name="certificate_query" combine="choice"> 01610 <element name="certificate"> 01611 <attribute name="action"> 01612 <value>withdraw</value> 01613 </attribute> 01614 <optional> 01615 <ref name="tag"/> 01616 </optional> 01617 <ref name="uri"/> 01618 </element> 01619 </define> 01620 <define name="certificate_reply" combine="choice"> 01621 <element name="certificate"> 01622 <attribute name="action"> 01623 <value>withdraw</value> 01624 </attribute> 01625 <optional> 01626 <ref name="tag"/> 01627 </optional> 01628 <ref name="uri"/> 01629 </element> 01630 </define> 01631 <!-- <crl/> element --> 01632 <define name="crl_query" combine="choice"> 01633 <element name="crl"> 01634 <attribute name="action"> 01635 <value>publish</value> 01636 </attribute> 01637 <optional> 01638 <ref name="tag"/> 01639 </optional> 01640 <ref name="uri"/> 01641 <ref name="base64"/> 01642 </element> 01643 </define> 01644 <define name="crl_reply" combine="choice"> 01645 <element name="crl"> 01646 <attribute name="action"> 01647 <value>publish</value> 01648 </attribute> 01649 <optional> 01650 <ref name="tag"/> 01651 </optional> 01652 <ref name="uri"/> 01653 </element> 01654 </define> 01655 <define name="crl_query" combine="choice"> 01656 <element name="crl"> 01657 <attribute name="action"> 01658 <value>withdraw</value> 01659 </attribute> 01660 <optional> 01661 <ref name="tag"/> 01662 </optional> 01663 <ref name="uri"/> 01664 </element> 01665 </define> 01666 <define name="crl_reply" combine="choice"> 01667 <element name="crl"> 01668 <attribute name="action"> 01669 <value>withdraw</value> 01670 </attribute> 01671 <optional> 01672 <ref name="tag"/> 01673 </optional> 01674 <ref name="uri"/> 01675 </element> 01676 </define> 01677 <!-- <manifest/> element --> 01678 <define name="manifest_query" combine="choice"> 01679 <element name="manifest"> 01680 <attribute name="action"> 01681 <value>publish</value> 01682 </attribute> 01683 <optional> 01684 <ref name="tag"/> 01685 </optional> 01686 <ref name="uri"/> 01687 <ref name="base64"/> 01688 </element> 01689 </define> 01690 <define name="manifest_reply" combine="choice"> 01691 <element name="manifest"> 01692 <attribute name="action"> 01693 <value>publish</value> 01694 </attribute> 01695 <optional> 01696 <ref name="tag"/> 01697 </optional> 01698 <ref name="uri"/> 01699 </element> 01700 </define> 01701 <define name="manifest_query" combine="choice"> 01702 <element name="manifest"> 01703 <attribute name="action"> 01704 <value>withdraw</value> 01705 </attribute> 01706 <optional> 01707 <ref name="tag"/> 01708 </optional> 01709 <ref name="uri"/> 01710 </element> 01711 </define> 01712 <define name="manifest_reply" combine="choice"> 01713 <element name="manifest"> 01714 <attribute name="action"> 01715 <value>withdraw</value> 01716 </attribute> 01717 <optional> 01718 <ref name="tag"/> 01719 </optional> 01720 <ref name="uri"/> 01721 </element> 01722 </define> 01723 <!-- <roa/> element --> 01724 <define name="roa_query" combine="choice"> 01725 <element name="roa"> 01726 <attribute name="action"> 01727 <value>publish</value> 01728 </attribute> 01729 <optional> 01730 <ref name="tag"/> 01731 </optional> 01732 <ref name="uri"/> 01733 <ref name="base64"/> 01734 </element> 01735 </define> 01736 <define name="roa_reply" combine="choice"> 01737 <element name="roa"> 01738 <attribute name="action"> 01739 <value>publish</value> 01740 </attribute> 01741 <optional> 01742 <ref name="tag"/> 01743 </optional> 01744 <ref name="uri"/> 01745 </element> 01746 </define> 01747 <define name="roa_query" combine="choice"> 01748 <element name="roa"> 01749 <attribute name="action"> 01750 <value>withdraw</value> 01751 </attribute> 01752 <optional> 01753 <ref name="tag"/> 01754 </optional> 01755 <ref name="uri"/> 01756 </element> 01757 </define> 01758 <define name="roa_reply" combine="choice"> 01759 <element name="roa"> 01760 <attribute name="action"> 01761 <value>withdraw</value> 01762 </attribute> 01763 <optional> 01764 <ref name="tag"/> 01765 </optional> 01766 <ref name="uri"/> 01767 </element> 01768 </define> 01769 <!-- <ghostbuster/> element --> 01770 <define name="ghostbuster_query" combine="choice"> 01771 <element name="ghostbuster"> 01772 <attribute name="action"> 01773 <value>publish</value> 01774 </attribute> 01775 <optional> 01776 <ref name="tag"/> 01777 </optional> 01778 <ref name="uri"/> 01779 <ref name="base64"/> 01780 </element> 01781 </define> 01782 <define name="ghostbuster_reply" combine="choice"> 01783 <element name="ghostbuster"> 01784 <attribute name="action"> 01785 <value>publish</value> 01786 </attribute> 01787 <optional> 01788 <ref name="tag"/> 01789 </optional> 01790 <ref name="uri"/> 01791 </element> 01792 </define> 01793 <define name="ghostbuster_query" combine="choice"> 01794 <element name="ghostbuster"> 01795 <attribute name="action"> 01796 <value>withdraw</value> 01797 </attribute> 01798 <optional> 01799 <ref name="tag"/> 01800 </optional> 01801 <ref name="uri"/> 01802 </element> 01803 </define> 01804 <define name="ghostbuster_reply" combine="choice"> 01805 <element name="ghostbuster"> 01806 <attribute name="action"> 01807 <value>withdraw</value> 01808 </attribute> 01809 <optional> 01810 <ref name="tag"/> 01811 </optional> 01812 <ref name="uri"/> 01813 </element> 01814 </define> 01815 <!-- <report_error/> element --> 01816 <define name="error"> 01817 <data type="token"> 01818 <param name="maxLength">1024</param> 01819 </data> 01820 </define> 01821 <define name="report_error_reply"> 01822 <element name="report_error"> 01823 <optional> 01824 <ref name="tag"/> 01825 </optional> 01826 <attribute name="error_code"> 01827 <ref name="error"/> 01828 </attribute> 01829 <optional> 01830 <data type="string"> 01831 <param name="maxLength">512000</param> 01832 </data> 01833 </optional> 01834 </element> 01835 </define> 01836 </grammar> 01837 <!-- 01838 Local Variables: 01839 indent-tabs-mode: nil 01840 End: 01841 --> 01842 ''')) 01843