diff options
author | Claudio Jeker <claudio@cvs.openbsd.org> | 2021-12-01 09:03:20 +0000 |
---|---|---|
committer | Claudio Jeker <claudio@cvs.openbsd.org> | 2021-12-01 09:03:20 +0000 |
commit | e45c3728b9c06ffa14a5e628276900dc79e2fea6 (patch) | |
tree | de9590d65f1015c7eeff796243d8e2af86c4810a /regress | |
parent | f538a626491936c0c42dc4c8e78deefd16a35392 (diff) |
Add some RRDP specific regress tests.
OK benno@
Diffstat (limited to 'regress')
-rw-r--r-- | regress/usr.sbin/rpki-client/Makefile.inc | 35 | ||||
-rw-r--r-- | regress/usr.sbin/rpki-client/rrdp/billion_lol.xml | 17 | ||||
-rw-r--r-- | regress/usr.sbin/rpki-client/rrdp/delta.xml | 6 | ||||
-rw-r--r-- | regress/usr.sbin/rpki-client/rrdp/notification.xml | 104 | ||||
-rw-r--r-- | regress/usr.sbin/rpki-client/rrdp/rrdp-r1.out | 4 | ||||
-rw-r--r-- | regress/usr.sbin/rpki-client/rrdp/rrdp-r2.out | 104 | ||||
-rw-r--r-- | regress/usr.sbin/rpki-client/rrdp/rrdp-r3.out | 18 | ||||
-rw-r--r-- | regress/usr.sbin/rpki-client/rrdp/rrdp-r4.out | 13 | ||||
-rw-r--r-- | regress/usr.sbin/rpki-client/rrdp/rrdp-r5.out | 2 | ||||
-rw-r--r-- | regress/usr.sbin/rpki-client/rrdp/rrdp-r6.out | 2 | ||||
-rw-r--r-- | regress/usr.sbin/rpki-client/rrdp/snapshot.xml | 80 | ||||
-rw-r--r-- | regress/usr.sbin/rpki-client/rrdp/xxe.xml | 4 | ||||
-rw-r--r-- | regress/usr.sbin/rpki-client/test-rrdp.c | 338 |
13 files changed, 726 insertions, 1 deletions
diff --git a/regress/usr.sbin/rpki-client/Makefile.inc b/regress/usr.sbin/rpki-client/Makefile.inc index 3645310f4df..9244b11bf83 100644 --- a/regress/usr.sbin/rpki-client/Makefile.inc +++ b/regress/usr.sbin/rpki-client/Makefile.inc @@ -1,4 +1,4 @@ -# $OpenBSD: Makefile.inc,v 1.15 2021/10/24 17:54:28 claudio Exp $ +# $OpenBSD: Makefile.inc,v 1.16 2021/12/01 09:03:19 claudio Exp $ .PATH: ${.CURDIR}/../../../../usr.sbin/rpki-client @@ -8,6 +8,7 @@ PROGS += test-gbr PROGS += test-mft PROGS += test-roa PROGS += test-tal +PROGS += test-rrdp .for p in ${PROGS} REGRESS_TARGETS += run-regress-$p @@ -50,3 +51,35 @@ SRCS_test-tal+= test-tal.c tal.c ip.c io.c log.c validate.c \ encoding.c print.c dummy.c run-regress-test-tal: test-tal ./test-tal -v ${.CURDIR}/../tal/*.tal + +SRCS_test-rrdp+= test-rrdp.c rrdp_delta.c rrdp_notification.c \ + rrdp_snapshot.c rrdp_util.c \ + log.c encoding.c ip.c validate.c dummy.c +LDADD_test-rrdp+= -lexpat ${LDADD} +DPADD_test-rrdp+= ${LIBEXPAT} ${DPADD} +run-regress-test-rrdp: test-rrdp + ./test-rrdp \ + -n < ${.CURDIR}/../rrdp/notification.xml 2>&1 | tee rrdp-r1.out + cmp ${.CURDIR}/../rrdp/rrdp-r1.out rrdp-r1.out + + ./test-rrdp -S 8fe05c2e-047d-49e7-8398-cd4250a572b1 -N 50500 \ + -n < ${.CURDIR}/../rrdp/notification.xml 2>&1 | tee rrdp-r2.out + cmp ${.CURDIR}/../rrdp/rrdp-r2.out rrdp-r2.out + + ./test-rrdp -S 9b3f7e31-4979-ef8c-d818-73e4dadc3e6b -N 13755 \ + -H 27571e365a4c87b51a03731415ce2118cc268d686db3209ae752f01ba2d74bc5 \ + -d < ${.CURDIR}/../rrdp/delta.xml 2>&1 | tee rrdp-r3.out + cmp ${.CURDIR}/../rrdp/rrdp-r3.out rrdp-r3.out + + ./test-rrdp -S 7e7d2563-5bbb-40b0-8723-6a2e90c85d9e -N 28483 \ + -H 2a051bfd199150fe6bcdc777d09e70fe1acdf239fbf98ba378a793685e5adb21 \ + -s < ${.CURDIR}/../rrdp/snapshot.xml 2>&1 | tee rrdp-r4.out + cmp ${.CURDIR}/../rrdp/rrdp-r4.out rrdp-r4.out + + ./test-rrdp \ + -n < ${.CURDIR}/../rrdp/xxe.xml 2>&1 | tee rrdp-r5.out + cmp ${.CURDIR}/../rrdp/rrdp-r5.out rrdp-r5.out + + ./test-rrdp \ + -n < ${.CURDIR}/../rrdp/billion_lol.xml 2>&1 | tee rrdp-r6.out + cmp ${.CURDIR}/../rrdp/rrdp-r6.out rrdp-r6.out diff --git a/regress/usr.sbin/rpki-client/rrdp/billion_lol.xml b/regress/usr.sbin/rpki-client/rrdp/billion_lol.xml new file mode 100644 index 00000000000..dc79bdb08f9 --- /dev/null +++ b/regress/usr.sbin/rpki-client/rrdp/billion_lol.xml @@ -0,0 +1,17 @@ +<?xml version="1.0"?> +<!DOCTYPE lolz [ +<!ENTITY lol "lol"> +<!ELEMENT lolz (#PCDATA)> +<!ENTITY lol1 "&lol;&lol;&lol;&lol;&lol;&lol;&lol;&lol;&lol;&lol;"> +<!ENTITY lol2 "&lol1;&lol1;&lol1;&lol1;&lol1;&lol1;&lol1;&lol1;&lol1;&lol1;"> +<!ENTITY lol3 "&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;"> +<!ENTITY lol4 "&lol3;&lol3;&lol3;&lol3;&lol3;&lol3;&lol3;&lol3;&lol3;&lol3;"> +<!ENTITY lol5 "&lol4;&lol4;&lol4;&lol4;&lol4;&lol4;&lol4;&lol4;&lol4;&lol4;"> +<!ENTITY lol6 "&lol5;&lol5;&lol5;&lol5;&lol5;&lol5;&lol5;&lol5;&lol5;&lol5;"> +<!ENTITY lol7 "&lol6;&lol6;&lol6;&lol6;&lol6;&lol6;&lol6;&lol6;&lol6;&lol6;"> +<!ENTITY lol8 "&lol7;&lol7;&lol7;&lol7;&lol7;&lol7;&lol7;&lol7;&lol7;&lol7;"> +<!ENTITY lol9 "&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;"> +]> +<notification version="1" session_id="9b3f7e31-4979-ef8c-d818-73e4dadc3e6b" serial="13756" xmlns="http://www.ripe.net/rpki/rrdp"> +&lol9; +</notification> diff --git a/regress/usr.sbin/rpki-client/rrdp/delta.xml b/regress/usr.sbin/rpki-client/rrdp/delta.xml new file mode 100644 index 00000000000..3a16409f8e1 --- /dev/null +++ b/regress/usr.sbin/rpki-client/rrdp/delta.xml @@ -0,0 +1,6 @@ +<delta version="1" session_id="9b3f7e31-4979-ef8c-d818-73e4dadc3e6b" serial="13755" xmlns="http://www.example.com/rpki/rrdp"> +<withdraw uri="rsync://rpki.example.com/repository/DEFAULT/95/d58727-d970-44d9-abdc-93b3ad12d2f3/1/gSk6an-JyWyxV5LYX0AB2BOJb7I.roa" hash="6f19c7760d83b12e259f35924f40be76c6a9c963db23a692ce192c2faef94271"/> +<publish uri="rsync://rpki.example.com/repository/DEFAULT/95/d58727-d970-44d9-abdc-93b3ad12d2f3/1/nBETmuVT1txzB4h_Rn5CB4gARes.crl" hash="9aaf87b277efb7e47ab00a4a86cad1cd132d8a06a782d9b54202c4bffede347b">MIICDDCB9QIBATANBgkqhkiG9w0BAQsFADAzMTEwLwYDVQQDEyg5YzExMTM5YWU1NTNkNmRjNzMwNzg4N2Y0NjdlNDIwNzg4MDA0NWViFw0yMTExMjQxMjU4MzlaFw0yMTExMjUxMjU4MzlaMFwwFQIEAn7YkhcNMjExMTI0MTI1NzM4WjAVAgQFTTrHFw0yMTExMjQwMDIwMThaMBUCBAVOq8cXDTIxMTEyNDA4MjAyM1owFQIEBU7nwxcNMjExMTI0MTI1ODM5WqAwMC4wHwYDVR0jBBgwFoAUnBETmuVT1txzB4h/Rn5CB4gAReswCwYDVR0UBAQCAgbkMA0GCSqGSIb3DQEBCwUAA4IBAQCfpuUosjOLlChmmjHjIZ0+NiQSb7EnPZdOZKnbAmK3xqflMAvbdHe7ROuFeb6LFU1RvAfq+100NRbBnt7kppLoHFItAoNUl8YtOevRr8imkE0I6jhj3kPxsFhjnWwD1Bqv++SP84xQQrTJ9+NhVv4xWx4K21OaBK1jQfNnDIEKgtMV5FKrb3GJNoWjFIURLkyJ4GKuFhp/J+Jr5PHb36k1aZBYlXU52/MkYROyHw8MgcfY39ECCjoz7396ihwuB5DX8h8C1oPyQtMKHRs7HLHbSu0VTMKz2iL8U8D14dnRz3ALB28FpAU1jRcYjPsV6913GYC1u931CIdzCL/cF6sY</publish> +<publish uri="rsync://rpki.example.com/repository/DEFAULT/95/d58727-d970-44d9-abdc-93b3ad12d2f3/1/nBETmuVT1txzB4h_Rn5CB4gARes.mft" hash="b45fa2daaeeda2b37bff1a039ada2c299dc6ace28ca16dbc22664e3d89b8d556">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</publish> +<publish uri="rsync://rpki.example.com/repository/DEFAULT/95/d58727-d970-44d9-abdc-93b3ad12d2f3/1/x7OkhL6fs-x6CQ4Kqd5jOkkB4pY.roa">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</publish> +</delta> diff --git a/regress/usr.sbin/rpki-client/rrdp/notification.xml b/regress/usr.sbin/rpki-client/rrdp/notification.xml new file mode 100644 index 00000000000..c48dee34bf9 --- /dev/null +++ b/regress/usr.sbin/rpki-client/rrdp/notification.xml @@ -0,0 +1,104 @@ +<notification xmlns="http://www.ripe.net/rpki/rrdp" version="1" session_id="8fe05c2e-047d-49e7-8398-cd4250a572b1" serial="50550"> + <snapshot uri="https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50550/snapshot.xml" hash="ae52f78bcb1b258a1da924122971b0fddfce4c01b2b2dba59c9b28ef1d94c02b" /> + <delta serial="50550" uri="https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50550/delta.xml" hash="e99cc80cb36259e73ec1ffed5a0cfbaf27d345800da18147dbdf8316b28e027c" /> + <delta serial="50549" uri="https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50549/delta.xml" hash="0f7808520c7d54e6f0cbd37bbf391e9028fdc62bdc0f2e90d986479b3b11f8aa" /> + <delta serial="50548" uri="https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50548/delta.xml" hash="8f022550ecee3cd13ee209c1a8fcd5e99e449295ae9d53adca1ba3231718b36c" /> + <delta serial="50547" uri="https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50547/delta.xml" hash="fb94b545fc52cc7ca91a42bc09ae5f89dcf7bcd758fe4bded47f565cf991dd64" /> + <delta serial="50546" uri="https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50546/delta.xml" hash="67dcb6751e0e31586603244cd90fc2f8a3e7ea8132af13d95962c59898f11b24" /> + <delta serial="50545" uri="https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50545/delta.xml" hash="12985397a67daed8f64ee8b653a60a02b121632169247bb95a9d3beb0f897ca1" /> + <delta serial="50544" uri="https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50544/delta.xml" hash="b4b36d43e649ca7b919ad5754c745a8b50a594f0250e4617c7756b9ae008ead0" /> + <delta serial="50543" uri="https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50543/delta.xml" hash="7626bd5fe4528b3810806eede9698f0c835657024717c116024b010d0239ae58" /> + <delta serial="50542" uri="https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50542/delta.xml" hash="bee7a540aa6fff7c2c00d559b7e9de6973d52ffa7121030ba534db5f18a23fa6" /> + <delta serial="50541" uri="https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50541/delta.xml" hash="d9622f90e5850f38cf2ecbcd5714a9f5f699d8d0ba509f41daa56dfeef83cd85" /> + <delta serial="50540" uri="https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50540/delta.xml" hash="a64882d43f76933bfbba07e96a3982a6b1b15bd261f4f78ffbf19ad4c9fafded" /> + <delta serial="50539" uri="https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50539/delta.xml" hash="397264bfbd7d466f9bddefe5139ba9ce392fafe24c95f80be00f27f40246919b" /> + <delta serial="50538" uri="https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50538/delta.xml" hash="f5b6e9e253597f0fa8c023278d9d77e75b220e1cebae597e906a7d6b0ab07398" /> + <delta serial="50537" uri="https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50537/delta.xml" hash="13be78ba673b89d9d8004a1c39e82f667219610371f4ecd64c3c318636419608" /> + <delta serial="50536" uri="https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50536/delta.xml" hash="59fbb6d36742c51219cd1a4ef064d6a54531b82cb8db592a4fad9d89e867353f" /> + <delta serial="50535" uri="https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50535/delta.xml" hash="a749ff4e39b607f65b7d2d2b4baababa0198c47ea02c9ef8a8fc36529102bc3c" /> + <delta serial="50534" uri="https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50534/delta.xml" hash="19eff9063c421788ffa4859842cf05366862a78c9dd40d926091a6e9e6f9bb1b" /> + <delta serial="50533" uri="https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50533/delta.xml" hash="e45dcdab3ac49d0f6af740b6c42b2c48faf539bb1bcbe6ac0eac9e95028d1d7d" /> + <delta serial="50532" uri="https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50532/delta.xml" hash="26cb2af7ef8ef4a6568832feeccf45193503e2d5aa60edc36f04928a91448228" /> + <delta serial="50531" uri="https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50531/delta.xml" hash="8e18d6c89b7129c2450efb4a36fee9085ee5abd02f0a9aadbcc2a6f4afd1369e" /> + <delta serial="50530" uri="https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50530/delta.xml" hash="99d665bc23a27a011684985a3f986c4a8d99ef2c5aa700ddcca48c32d68d1da1" /> + <delta serial="50529" uri="https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50529/delta.xml" hash="afbe35fac90ed1f9ffbc9c00ef9f264e52c3ce5a963cb71d8493fec0970c6ade" /> + <delta serial="50528" uri="https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50528/delta.xml" hash="7ca7b7bbeaf412c492b4781d23f3cf3de1ce333ef569377b57719c58195cba6f" /> + <delta serial="50527" uri="https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50527/delta.xml" hash="fdc9eb4e70a5f55b310015936d65a3878665d9c03631da4b66069f4f1d812d5f" /> + <delta serial="50526" uri="https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50526/delta.xml" hash="e615ed42ac32529c7dfe7189f8deca1e7ec7c4d79c03c50bd51488c7381610bb" /> + <delta serial="50525" uri="https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50525/delta.xml" hash="2660598aafb968737d8a81f823d490c7157f5a6ee72ef7f2def8176095cb96be" /> + <delta serial="50524" uri="https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50524/delta.xml" hash="6bd5645cda5490eb42737ed94f249c9166f626231b5315c1205c4e1d8e7fd409" /> + <delta serial="50523" uri="https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50523/delta.xml" hash="abd00b8aeb0555a965f83ea89853e5a8179d5f00e341c7f958e95c3bd6df8807" /> + <delta serial="50522" uri="https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50522/delta.xml" hash="aa249c432d2eaeff266b3a875c1cbf721491c10776a28d62cd5cf0cce891e834" /> + <delta serial="50521" uri="https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50521/delta.xml" hash="321d3c439dc175974842a52d936ec13fc6a73912f75e6ae66d99b9eaac09e84d" /> + <delta serial="50520" uri="https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50520/delta.xml" hash="ab32d797dfa4d0490888d129ba275f9c4a816f409b5d99dba76c07ab14ba3a2b" /> + <delta serial="50519" uri="https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50519/delta.xml" hash="0c07702baee536f54f5a35bc481c422c170974dcc2bd4f99e4f58028901b3a52" /> + <delta serial="50518" uri="https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50518/delta.xml" hash="30a580dd74f8f5cf1bf83bc8643171a09482fb401e3f2f0443934ee675ca8107" /> + <delta serial="50517" uri="https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50517/delta.xml" hash="eac5270a5109e95683eb73153e7f5e081f6da473048782ce4e0e708ad2264b3a" /> + <delta serial="50516" uri="https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50516/delta.xml" hash="fadee13b825f713e931edadedc79b1f86f4e501ef6c153c0f5fd4401c73b3065" /> + <delta serial="50515" uri="https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50515/delta.xml" hash="bd258657de4c220ad500cc0ece87cffcad813ecd30a63deff28086a5f2dcbb5f" /> + <delta serial="50514" uri="https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50514/delta.xml" hash="70d288ec67c4b47b6dc177bfb735ddd6542b2a9e484bae770534a83fd515ce8b" /> + <delta serial="50513" uri="https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50513/delta.xml" hash="85daf825c8335d8f59fd6b32b25f9b7152f89038b74ed3366a6ea59bd2f4e600" /> + <delta serial="50512" uri="https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50512/delta.xml" hash="155c0f96de414ac4ca7d60de7b1acbecdf5b192ccae6af3c78f06fff212138f4" /> + <delta serial="50511" uri="https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50511/delta.xml" hash="9015620f5b20dba3dedc63f90c0cfab5dd3816217976c6dcc4a68d5555649dc9" /> + <delta serial="50510" uri="https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50510/delta.xml" hash="6d8d296ca28ca390b761d25bdb69eaa0086242911a90965c7436d602b4190b66" /> + <delta serial="50509" uri="https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50509/delta.xml" hash="fcd7fe3d59f4b8daa40920c7b3c5c4d149660afd35dfca53ede7671919802cfb" /> + <delta serial="50508" uri="https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50508/delta.xml" hash="b4ae54c1207ec9a12a5e20091004830fb3d146f62b2396a6c3de2ab0795ed2e7" /> + <delta serial="50507" uri="https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50507/delta.xml" hash="20360d8b294e3a6e62de2af58955afe601507231e6937b375de0c047a69cd9c1" /> + <delta serial="50506" uri="https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50506/delta.xml" hash="7c9c62da4dd109e5151fcc0ea366db343e35ab7f2a62d81d6c54eee1e1fd72b1" /> + <delta serial="50505" uri="https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50505/delta.xml" hash="50c95ff4b63c03836fe291afca61fda25c96bc0d280e421dddc307e591fe8f81" /> + <delta serial="50504" uri="https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50504/delta.xml" hash="cdcd746257a0f35bbce0b1832c2df4cf25751c281fde23cae8b17f607f1e82e1" /> + <delta serial="50503" uri="https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50503/delta.xml" hash="e8de1e10d05734bb9efe65202b96023d3770f0b8fd457249676214612f4685b3" /> + <delta serial="50502" uri="https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50502/delta.xml" hash="1036a71df3129449e1403f3beacfa427d59659fac0b45c9e3dffdbebdb17d722" /> + <delta serial="50501" uri="https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50501/delta.xml" hash="40521fb9995aca55d39360985c336619e08072a6afffce97753e701a0d65d57b" /> + <delta serial="50500" uri="https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50500/delta.xml" hash="7efb8b3a1e854b0d2814ab18446ee022ade286c5a1d31606097b3f90356ccdaf" /> + <delta serial="50499" uri="https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50499/delta.xml" hash="c70a32f49cce1debba0966f78ff99ea18e78bd40dba9f67396d26b5cc5c605ff" /> + <delta serial="50498" uri="https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50498/delta.xml" hash="751794129303140be49746bf9e3622c2bdd8e4c5a08e40493f7cd46a71d20aa1" /> + <delta serial="50497" uri="https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50497/delta.xml" hash="cc6a29239f63de8518f1af177a1b0dc5b2e0a88eb4fe0922e56c73d83dd4d6d0" /> + <delta serial="50496" uri="https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50496/delta.xml" hash="a716208fdc5cdff2c7f56cdec1c02286c59823afd3879aa75e1f06c987748441" /> + <delta serial="50495" uri="https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50495/delta.xml" hash="ef3ca2ce6b1d169e8fe62ee8f0b7242ee8fa2a1c573993c674faa4ec611dc544" /> + <delta serial="50494" uri="https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50494/delta.xml" hash="54c980eaa0124eabd3099e0d8272293e2deb796acf8f102dfd24a250ddee2775" /> + <delta serial="50493" uri="https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50493/delta.xml" hash="7cfd18677fd6dae4293980a78ab555cbe9e61d803b142ffc8198a29ec6b04c08" /> + <delta serial="50492" uri="https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50492/delta.xml" hash="4f6206afd9bf34751fd733874becac64b9dc04630640e7df8c772fb2fcf7a348" /> + <delta serial="50491" uri="https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50491/delta.xml" hash="7a74b74aa104f7f52d8f7bc6ed1ec5f9e6e3adccadd1e04fc575f6d8f34ee6dc" /> + <delta serial="50490" uri="https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50490/delta.xml" hash="ceda0e4154f22b7a16ef04998dc17fc70c84105c4aae083e17fac6f381c41713" /> + <delta serial="50489" uri="https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50489/delta.xml" hash="010c945e13c99cf92741d523f5c57f0f2851fb1c52d1fb4964f115bfd85c9ef6" /> + <delta serial="50488" uri="https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50488/delta.xml" hash="0fd5fa0604384d8ddec30b69acd04d23c90bcba34d3e062e73a96a3a57bf60a8" /> + <delta serial="50487" uri="https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50487/delta.xml" hash="0427cccadfa70f69a412122ba8419aee3a8904a3de63b7059a35e652f9404569" /> + <delta serial="50486" uri="https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50486/delta.xml" hash="d171d1e8ef82c0769b36efff0debac91f3cc33054ded176d54a35b63232d2c96" /> + <delta serial="50485" uri="https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50485/delta.xml" hash="f05dc4d2995cb514391404936edcdebb1107297887e3a3c494c0896477b27e6e" /> + <delta serial="50484" uri="https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50484/delta.xml" hash="1f6c44e3d738879df95fc8673e659fd78a30a183a1d5ca823ccabe81fdf3736a" /> + <delta serial="50483" uri="https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50483/delta.xml" hash="b2ed1f439cac0a62001f6e1d9e1f00ad764fd047a64126b47f26af3b2ab514e8" /> + <delta serial="50482" uri="https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50482/delta.xml" hash="83d1c8e6bc1b065a32683d6f2ef7ca4ee1009e6d0d8b22062d6288cd72617b3f" /> + <delta serial="50481" uri="https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50481/delta.xml" hash="24a99e8d8ab0b3352d19f33a49eaf69939086ab0315ec6dbed067f63b5604ef5" /> + <delta serial="50480" uri="https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50480/delta.xml" hash="6a2accdfd0b4af9906a5a81e30241fb87f67bb6f7e9d7b99d59cae15044a010b" /> + <delta serial="50479" uri="https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50479/delta.xml" hash="8f7af8fd7c729baddedc2a13b689544a767dd936dbcbf084211e00075d74a1e5" /> + <delta serial="50478" uri="https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50478/delta.xml" hash="d2b419736b991ccdc6198f8c1e8c602f14e934871be7ecd607d866e584f2aa42" /> + <delta serial="50477" uri="https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50477/delta.xml" hash="bdf736d3c7cecd75ee19dba29941881cade37c2c53b165a2413a1b7982795be6" /> + <delta serial="50476" uri="https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50476/delta.xml" hash="c7975b0f7ef18f93304a2babed5f7486262c90ee02977a3fab9ecd95c4b47852" /> + <delta serial="50475" uri="https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50475/delta.xml" hash="2aa5b94c098d36affabeef66f7f9271d7e6ae93985c3457ed4a3c84316b8d1f6" /> + <delta serial="50474" uri="https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50474/delta.xml" hash="e8c459bd165aa12c7e2f0b0da0d8fb18e0e23607c42f2b7f9a7957fe6b8eef28" /> + <delta serial="50473" uri="https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50473/delta.xml" hash="3b9fbe5d13d4403acedc45d946f3068ed17c6bbe62196186dab9a12b3e558599" /> + <delta serial="50472" uri="https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50472/delta.xml" hash="b8b884391b4058d1eaca7e166d205db1594847cc1e5cc956b6445d38e376f646" /> + <delta serial="50471" uri="https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50471/delta.xml" hash="160c140d36df4ed569ab11a540ec17e2cd5530950e119cc4a06e5ffb9d9f9150" /> + <delta serial="50470" uri="https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50470/delta.xml" hash="baf8b1d3700495e112c23189e927a52a7ac2246d4da310ae4fc6eea0351d513f" /> + <delta serial="50469" uri="https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50469/delta.xml" hash="e4dcefd79395aa920fe91888afedc82a8e28e262e6e40127a6b937635faf9fba" /> + <delta serial="50468" uri="https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50468/delta.xml" hash="af6fb2aeafd434254e29fa7f16dd133c69abb464ad1b8ae8a44de23578f1bcbd" /> + <delta serial="50467" uri="https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50467/delta.xml" hash="bd8816c6e64e42fcb0046aa2ca9b5769b5c3ebbf32ffac844c8b38c8889b62c9" /> + <delta serial="50466" uri="https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50466/delta.xml" hash="c1bd0883c69fe968d949933b0e0272ce07e91424b8357f62b7ee4ba63d63d9f4" /> + <delta serial="50465" uri="https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50465/delta.xml" hash="3f420ccdc0efe1086ec4950c76396cfd2c47875a9a6da4d5eae914af60876ba5" /> + <delta serial="50464" uri="https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50464/delta.xml" hash="0e2a66306ce1fe54f7b29ea2b33c29bb42c75d0e085386f20a05312fce7bdcff" /> + <delta serial="50463" uri="https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50463/delta.xml" hash="e60d42e6886464763f02d5b025015872357392b6769a69ccf3aa6e61fa013276" /> + <delta serial="50462" uri="https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50462/delta.xml" hash="9e8b3371c693c0893f1edbdb055a6b81de26aceb82f57af728ac7c1954c9d5a1" /> + <delta serial="50461" uri="https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50461/delta.xml" hash="6ecd5a432c927c8e491f56abcf0eee37ab77a620a8b98672c80f07777175c824" /> + <delta serial="50460" uri="https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50460/delta.xml" hash="5455227b1ec9b681d75dcc2427c6762c6e9a58249112e815142d321e1c465eff" /> + <delta serial="50459" uri="https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50459/delta.xml" hash="c13c22ef00f54d628e58928411aa810e4044f08fe6b752adcb680c490807eac2" /> + <delta serial="50458" uri="https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50458/delta.xml" hash="0a8ade6143f941d60b07a6638a3095101960dde1cb05243361ec8a1bbd3d61b8" /> + <delta serial="50457" uri="https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50457/delta.xml" hash="e44bee224b87ae7cd52b9f9e87366e47aec0f8d9f337f49963444b99f4752a3a" /> + <delta serial="50456" uri="https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50456/delta.xml" hash="b1a0bb86fdbfded50ed63272a904c99f368cf30872be8f4ff392e2a02cd95da4" /> + <delta serial="50455" uri="https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50455/delta.xml" hash="1b976ee80548f199f0e18600ba4bae12ca3099294c7fbd78f25fe493d550341d" /> + <delta serial="50454" uri="https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50454/delta.xml" hash="9b83636b38eea408454b44d886d42d7b9ff8e531c6630aa733262f8b29955ac0" /> + <delta serial="50453" uri="https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50453/delta.xml" hash="bad9175c574653bdd0c89c5d1acec0e8d529613f570787283e81d467c522b581" /> + <delta serial="50452" uri="https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50452/delta.xml" hash="914f4248a268fdec1920bffa407e4473c0c81e834d4389f07285e8d60d05bae9" /> + <delta serial="50451" uri="https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50451/delta.xml" hash="e968914f508d6e6a36656cd715905e819ff0fa9d35bf5243d7bf884fb1b8818b" /> + <delta serial="50450" uri="https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50450/delta.xml" hash="968b9b9e4236309c1219bb4dc8a71dcf7492103309c8d28ec95f1904b54fc58c" /> +</notification> diff --git a/regress/usr.sbin/rpki-client/rrdp/rrdp-r1.out b/regress/usr.sbin/rpki-client/rrdp/rrdp-r1.out new file mode 100644 index 00000000000..6498623c03f --- /dev/null +++ b/regress/usr.sbin/rpki-client/rrdp/rrdp-r1.out @@ -0,0 +1,4 @@ +test-rrdp: session_id: 8fe05c2e-047d-49e7-8398-cd4250a572b1, serial: 50550 +test-rrdp: snapshot_uri: https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50550/snapshot.xml +test-rrdp: snapshot hash: AE52F78BCB1B258A1DA924122971B0FDDFCE4C01B2B2DBA59C9B28EF1D94C02B +OK diff --git a/regress/usr.sbin/rpki-client/rrdp/rrdp-r2.out b/regress/usr.sbin/rpki-client/rrdp/rrdp-r2.out new file mode 100644 index 00000000000..d5a3ef61bb5 --- /dev/null +++ b/regress/usr.sbin/rpki-client/rrdp/rrdp-r2.out @@ -0,0 +1,104 @@ +test-rrdp: session_id: 8fe05c2e-047d-49e7-8398-cd4250a572b1, serial: 50550 +test-rrdp: snapshot_uri: https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50550/snapshot.xml +test-rrdp: snapshot hash: AE52F78BCB1B258A1DA924122971B0FDDFCE4C01B2B2DBA59C9B28EF1D94C02B +test-rrdp: delta serial 50501 uri: https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50501/delta.xml +test-rrdp: delta hash: 40521FB9995ACA55D39360985C336619E08072A6AFFFCE97753E701A0D65D57B +test-rrdp: delta serial 50502 uri: https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50502/delta.xml +test-rrdp: delta hash: 1036A71DF3129449E1403F3BEACFA427D59659FAC0B45C9E3DFFDBEBDB17D722 +test-rrdp: delta serial 50503 uri: https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50503/delta.xml +test-rrdp: delta hash: E8DE1E10D05734BB9EFE65202B96023D3770F0B8FD457249676214612F4685B3 +test-rrdp: delta serial 50504 uri: https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50504/delta.xml +test-rrdp: delta hash: CDCD746257A0F35BBCE0B1832C2DF4CF25751C281FDE23CAE8B17F607F1E82E1 +test-rrdp: delta serial 50505 uri: https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50505/delta.xml +test-rrdp: delta hash: 50C95FF4B63C03836FE291AFCA61FDA25C96BC0D280E421DDDC307E591FE8F81 +test-rrdp: delta serial 50506 uri: https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50506/delta.xml +test-rrdp: delta hash: 7C9C62DA4DD109E5151FCC0EA366DB343E35AB7F2A62D81D6C54EEE1E1FD72B1 +test-rrdp: delta serial 50507 uri: https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50507/delta.xml +test-rrdp: delta hash: 20360D8B294E3A6E62DE2AF58955AFE601507231E6937B375DE0C047A69CD9C1 +test-rrdp: delta serial 50508 uri: https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50508/delta.xml +test-rrdp: delta hash: B4AE54C1207EC9A12A5E20091004830FB3D146F62B2396A6C3DE2AB0795ED2E7 +test-rrdp: delta serial 50509 uri: https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50509/delta.xml +test-rrdp: delta hash: FCD7FE3D59F4B8DAA40920C7B3C5C4D149660AFD35DFCA53EDE7671919802CFB +test-rrdp: delta serial 50510 uri: https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50510/delta.xml +test-rrdp: delta hash: 6D8D296CA28CA390B761D25BDB69EAA0086242911A90965C7436D602B4190B66 +test-rrdp: delta serial 50511 uri: https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50511/delta.xml +test-rrdp: delta hash: 9015620F5B20DBA3DEDC63F90C0CFAB5DD3816217976C6DCC4A68D5555649DC9 +test-rrdp: delta serial 50512 uri: https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50512/delta.xml +test-rrdp: delta hash: 155C0F96DE414AC4CA7D60DE7B1ACBECDF5B192CCAE6AF3C78F06FFF212138F4 +test-rrdp: delta serial 50513 uri: https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50513/delta.xml +test-rrdp: delta hash: 85DAF825C8335D8F59FD6B32B25F9B7152F89038B74ED3366A6EA59BD2F4E600 +test-rrdp: delta serial 50514 uri: https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50514/delta.xml +test-rrdp: delta hash: 70D288EC67C4B47B6DC177BFB735DDD6542B2A9E484BAE770534A83FD515CE8B +test-rrdp: delta serial 50515 uri: https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50515/delta.xml +test-rrdp: delta hash: BD258657DE4C220AD500CC0ECE87CFFCAD813ECD30A63DEFF28086A5F2DCBB5F +test-rrdp: delta serial 50516 uri: https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50516/delta.xml +test-rrdp: delta hash: FADEE13B825F713E931EDADEDC79B1F86F4E501EF6C153C0F5FD4401C73B3065 +test-rrdp: delta serial 50517 uri: https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50517/delta.xml +test-rrdp: delta hash: EAC5270A5109E95683EB73153E7F5E081F6DA473048782CE4E0E708AD2264B3A +test-rrdp: delta serial 50518 uri: https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50518/delta.xml +test-rrdp: delta hash: 30A580DD74F8F5CF1BF83BC8643171A09482FB401E3F2F0443934EE675CA8107 +test-rrdp: delta serial 50519 uri: https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50519/delta.xml +test-rrdp: delta hash: 0C07702BAEE536F54F5A35BC481C422C170974DCC2BD4F99E4F58028901B3A52 +test-rrdp: delta serial 50520 uri: https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50520/delta.xml +test-rrdp: delta hash: AB32D797DFA4D0490888D129BA275F9C4A816F409B5D99DBA76C07AB14BA3A2B +test-rrdp: delta serial 50521 uri: https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50521/delta.xml +test-rrdp: delta hash: 321D3C439DC175974842A52D936EC13FC6A73912F75E6AE66D99B9EAAC09E84D +test-rrdp: delta serial 50522 uri: https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50522/delta.xml +test-rrdp: delta hash: AA249C432D2EAEFF266B3A875C1CBF721491C10776A28D62CD5CF0CCE891E834 +test-rrdp: delta serial 50523 uri: https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50523/delta.xml +test-rrdp: delta hash: ABD00B8AEB0555A965F83EA89853E5A8179D5F00E341C7F958E95C3BD6DF8807 +test-rrdp: delta serial 50524 uri: https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50524/delta.xml +test-rrdp: delta hash: 6BD5645CDA5490EB42737ED94F249C9166F626231B5315C1205C4E1D8E7FD409 +test-rrdp: delta serial 50525 uri: https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50525/delta.xml +test-rrdp: delta hash: 2660598AAFB968737D8A81F823D490C7157F5A6EE72EF7F2DEF8176095CB96BE +test-rrdp: delta serial 50526 uri: https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50526/delta.xml +test-rrdp: delta hash: E615ED42AC32529C7DFE7189F8DECA1E7EC7C4D79C03C50BD51488C7381610BB +test-rrdp: delta serial 50527 uri: https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50527/delta.xml +test-rrdp: delta hash: FDC9EB4E70A5F55B310015936D65A3878665D9C03631DA4B66069F4F1D812D5F +test-rrdp: delta serial 50528 uri: https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50528/delta.xml +test-rrdp: delta hash: 7CA7B7BBEAF412C492B4781D23F3CF3DE1CE333EF569377B57719C58195CBA6F +test-rrdp: delta serial 50529 uri: https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50529/delta.xml +test-rrdp: delta hash: AFBE35FAC90ED1F9FFBC9C00EF9F264E52C3CE5A963CB71D8493FEC0970C6ADE +test-rrdp: delta serial 50530 uri: https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50530/delta.xml +test-rrdp: delta hash: 99D665BC23A27A011684985A3F986C4A8D99EF2C5AA700DDCCA48C32D68D1DA1 +test-rrdp: delta serial 50531 uri: https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50531/delta.xml +test-rrdp: delta hash: 8E18D6C89B7129C2450EFB4A36FEE9085EE5ABD02F0A9AADBCC2A6F4AFD1369E +test-rrdp: delta serial 50532 uri: https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50532/delta.xml +test-rrdp: delta hash: 26CB2AF7EF8EF4A6568832FEECCF45193503E2D5AA60EDC36F04928A91448228 +test-rrdp: delta serial 50533 uri: https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50533/delta.xml +test-rrdp: delta hash: E45DCDAB3AC49D0F6AF740B6C42B2C48FAF539BB1BCBE6AC0EAC9E95028D1D7D +test-rrdp: delta serial 50534 uri: https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50534/delta.xml +test-rrdp: delta hash: 19EFF9063C421788FFA4859842CF05366862A78C9DD40D926091A6E9E6F9BB1B +test-rrdp: delta serial 50535 uri: https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50535/delta.xml +test-rrdp: delta hash: A749FF4E39B607F65B7D2D2B4BAABABA0198C47EA02C9EF8A8FC36529102BC3C +test-rrdp: delta serial 50536 uri: https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50536/delta.xml +test-rrdp: delta hash: 59FBB6D36742C51219CD1A4EF064D6A54531B82CB8DB592A4FAD9D89E867353F +test-rrdp: delta serial 50537 uri: https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50537/delta.xml +test-rrdp: delta hash: 13BE78BA673B89D9D8004A1C39E82F667219610371F4ECD64C3C318636419608 +test-rrdp: delta serial 50538 uri: https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50538/delta.xml +test-rrdp: delta hash: F5B6E9E253597F0FA8C023278D9D77E75B220E1CEBAE597E906A7D6B0AB07398 +test-rrdp: delta serial 50539 uri: https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50539/delta.xml +test-rrdp: delta hash: 397264BFBD7D466F9BDDEFE5139BA9CE392FAFE24C95F80BE00F27F40246919B +test-rrdp: delta serial 50540 uri: https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50540/delta.xml +test-rrdp: delta hash: A64882D43F76933BFBBA07E96A3982A6B1B15BD261F4F78FFBF19AD4C9FAFDED +test-rrdp: delta serial 50541 uri: https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50541/delta.xml +test-rrdp: delta hash: D9622F90E5850F38CF2ECBCD5714A9F5F699D8D0BA509F41DAA56DFEEF83CD85 +test-rrdp: delta serial 50542 uri: https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50542/delta.xml +test-rrdp: delta hash: BEE7A540AA6FFF7C2C00D559B7E9DE6973D52FFA7121030BA534DB5F18A23FA6 +test-rrdp: delta serial 50543 uri: https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50543/delta.xml +test-rrdp: delta hash: 7626BD5FE4528B3810806EEDE9698F0C835657024717C116024B010D0239AE58 +test-rrdp: delta serial 50544 uri: https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50544/delta.xml +test-rrdp: delta hash: B4B36D43E649CA7B919AD5754C745A8B50A594F0250E4617C7756B9AE008EAD0 +test-rrdp: delta serial 50545 uri: https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50545/delta.xml +test-rrdp: delta hash: 12985397A67DAED8F64EE8B653A60A02B121632169247BB95A9D3BEB0F897CA1 +test-rrdp: delta serial 50546 uri: https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50546/delta.xml +test-rrdp: delta hash: 67DCB6751E0E31586603244CD90FC2F8A3E7EA8132AF13D95962C59898F11B24 +test-rrdp: delta serial 50547 uri: https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50547/delta.xml +test-rrdp: delta hash: FB94B545FC52CC7CA91A42BC09AE5F89DCF7BCD758FE4BDED47F565CF991DD64 +test-rrdp: delta serial 50548 uri: https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50548/delta.xml +test-rrdp: delta hash: 8F022550ECEE3CD13EE209C1A8FCD5E99E449295AE9D53ADCA1BA3231718B36C +test-rrdp: delta serial 50549 uri: https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50549/delta.xml +test-rrdp: delta hash: 0F7808520C7D54E6F0CBD37BBF391E9028FDC62BDC0F2E90D986479B3B11F8AA +test-rrdp: delta serial 50550 uri: https://rpki.example.com/8fe05c2e-047d-49e7-8398-cd4250a572b1/50550/delta.xml +test-rrdp: delta hash: E99CC80CB36259E73EC1FFED5A0CFBAF27D345800DA18147DBDF8316B28E027C +OK diff --git a/regress/usr.sbin/rpki-client/rrdp/rrdp-r3.out b/regress/usr.sbin/rpki-client/rrdp/rrdp-r3.out new file mode 100644 index 00000000000..8faf2d724cb --- /dev/null +++ b/regress/usr.sbin/rpki-client/rrdp/rrdp-r3.out @@ -0,0 +1,18 @@ +test-rrdp: type: delete +test-rrdp: uri: rsync://rpki.example.com/repository/DEFAULT/95/d58727-d970-44d9-abdc-93b3ad12d2f3/1/gSk6an-JyWyxV5LYX0AB2BOJb7I.roa +test-rrdp: data: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 +test-rrdp: hash: 6F19C7760D83B12E259F35924F40BE76C6A9C963DB23A692CE192C2FAEF94271 +test-rrdp: type: update +test-rrdp: uri: rsync://rpki.example.com/repository/DEFAULT/95/d58727-d970-44d9-abdc-93b3ad12d2f3/1/nBETmuVT1txzB4h_Rn5CB4gARes.crl +test-rrdp: data: 27b240ccb4adefc4438a0b0c94cf995fed9e1a227987e31b7fde9b67209e04c7 +test-rrdp: hash: 9AAF87B277EFB7E47AB00A4A86CAD1CD132D8A06A782D9B54202C4BFFEDE347B +test-rrdp: type: update +test-rrdp: uri: rsync://rpki.example.com/repository/DEFAULT/95/d58727-d970-44d9-abdc-93b3ad12d2f3/1/nBETmuVT1txzB4h_Rn5CB4gARes.mft +test-rrdp: data: 9148c46222a49fc9b18607474d549ec126d2f4dbf4fa4fe2007588b9a958d29d +test-rrdp: hash: B45FA2DAAEEDA2B37BFF1A039ADA2C299DC6ACE28CA16DBC22664E3D89B8D556 +test-rrdp: type: add +test-rrdp: uri: rsync://rpki.example.com/repository/DEFAULT/95/d58727-d970-44d9-abdc-93b3ad12d2f3/1/x7OkhL6fs-x6CQ4Kqd5jOkkB4pY.roa +test-rrdp: data: 28b761092849ea963824de57bd8b0bef1de6f467b91af51c2d847fa5ae90c6dc +test-rrdp: version: 1 +test-rrdp: session_id: 9b3f7e31-4979-ef8c-d818-73e4dadc3e6b serial: 13755 +OK diff --git a/regress/usr.sbin/rpki-client/rrdp/rrdp-r4.out b/regress/usr.sbin/rpki-client/rrdp/rrdp-r4.out new file mode 100644 index 00000000000..0ab7eb798ed --- /dev/null +++ b/regress/usr.sbin/rpki-client/rrdp/rrdp-r4.out @@ -0,0 +1,13 @@ +test-rrdp: type: add +test-rrdp: uri: rsync://rpki.example.com/rpki/TA/XUJQ4tgdREjYop786R0p_wdeyeI.cer +test-rrdp: data: 9dbea4222e3b687772763b21da1118d858b1271c989f10adb3b2611945609dbc +test-rrdp: type: add +test-rrdp: uri: rsync://rpki.example.com/rpki/Sobornost-RIPE/Sobornost-OP/fxYnc2Mg1Fnou14i_Qm39uMR1bA.crl +test-rrdp: data: 831c1b054aaff13240df899e5048b67c227689d5e5ecdf7d38f9a8e4603beb4b +test-rrdp: type: add +test-rrdp: uri: rsync://rpki.example.com/rpki/uplift/IBfMWA0nPFS6MGTNLNavObgEuIc.mft +test-rrdp: data: 61bbdc519a39a870f2169d474d957713e611662c44daa7f0b9e3d922f93b0312 +test-rrdp: scope: 3 +test-rrdp: version: 1 +test-rrdp: session_id: 7e7d2563-5bbb-40b0-8723-6a2e90c85d9e serial: 28483 +OK diff --git a/regress/usr.sbin/rpki-client/rrdp/rrdp-r5.out b/regress/usr.sbin/rpki-client/rrdp/rrdp-r5.out new file mode 100644 index 00000000000..cf91479013f --- /dev/null +++ b/regress/usr.sbin/rpki-client/rrdp/rrdp-r5.out @@ -0,0 +1,2 @@ +test-rrdp: parse failed - DOCTYPE not allowed +test-rrdp: stdin: parse error at line 2: parsing aborted diff --git a/regress/usr.sbin/rpki-client/rrdp/rrdp-r6.out b/regress/usr.sbin/rpki-client/rrdp/rrdp-r6.out new file mode 100644 index 00000000000..cf91479013f --- /dev/null +++ b/regress/usr.sbin/rpki-client/rrdp/rrdp-r6.out @@ -0,0 +1,2 @@ +test-rrdp: parse failed - DOCTYPE not allowed +test-rrdp: stdin: parse error at line 2: parsing aborted diff --git a/regress/usr.sbin/rpki-client/rrdp/snapshot.xml b/regress/usr.sbin/rpki-client/rrdp/snapshot.xml new file mode 100644 index 00000000000..a04dbc0f94f --- /dev/null +++ b/regress/usr.sbin/rpki-client/rrdp/snapshot.xml @@ -0,0 +1,80 @@ +<snapshot xmlns="http://www.ripe.net/rpki/rrdp" serial="28483" version="1" session_id="7e7d2563-5bbb-40b0-8723-6a2e90c85d9e"> +<publish xmlns="http://www.ripe.net/rpki/rrdp" uri="rsync://rpki.example.com/rpki/TA/XUJQ4tgdREjYop786R0p_wdeyeI.cer"> +MIIDaDCCAlCgAwIBAgICBa8wDQYJKoZIhvcNAQELBQAwMzExMC8GA1UEAxMoNkFF +NTA5NDE3OTBDMTQwN0FCMzdBQ0Y4NzNCQTFCNzA1NDMyMTQwRDAeFw0yMTEwMTEy +MDQxMzFaFw0yMjEwMTEyMDQxMzFaMC0xGDAWBgNVBAMTD1JPVVRFUi0wMDAwM2Nj +YTERMA8GA1UEBRMIMDAwMDAwMDEwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASA +VyND+D/8sBB6sAfYymn4a5ygMAYFuEioPffA0+xfGcAZv6a1ntdCtU70NDpSUBKG +2KDn5B8QqlO0WCKp+IAVo4IBVTCCAVEwHQYDVR0OBBYEFF1CUOLYHURI2KKe/Okd +Kf8HXsniMB8GA1UdIwQYMBaAFGrlCUF5DBQHqzes+HO6G3BUMhQNMBgGA1UdIAEB +/wQOMAwwCgYIKwYBBQUHDgIwVAYDVR0fBE0wSzBJoEegRYZDcnN5bmM6Ly9jaGxv +ZS5zb2Jvcm5vc3QubmV0L3Jwa2kvVEEvYXVVSlFYa01GQWVyTjZ6NGM3b2JjRlF5 +RkEwLmNybDBfBggrBgEFBQcBAQRTMFEwTwYIKwYBBQUHMAKGQ3JzeW5jOi8vY2hs +b2Uuc29ib3Jub3N0Lm5ldC9ycGtpL1RBL2F1VUpRWGtNRkFlck42ejRjN29iY0ZR +eUZBMC5jZXIwDgYDVR0PAQH/BAQDAgeAMBkGCCsGAQUFBwEIAQH/BAowCKAGMAQC +AjzKMBMGA1UdJQQMMAoGCCsGAQUFBwMeMA0GCSqGSIb3DQEBCwUAA4IBAQBEMMvm +OwAmPw081LOBQk5Qvpx6jKQumbdErbyz+UM86wuUpriZv34TQkqOQAg+uSCAeAy8 +LGpyep4fkfUfPjCgmOQHOiVJUcLkYCYmBsgUk9KWHPLR7YmCKEljrOwpNDF2HI/T +obeYKIrxJIJ+vGs+5st3frftdBWNbCaY7dxjD8NCSjVF3Y3JyCqe4qhot93ghs4/ +SEUmJAdRUIxZcZH1ZAv3N0mxP3PyD0n1jrJ/dMdLC4FmDEJYj6nbxe8Kxu6wXE+O +3pWHyW37+4ozaVranGlDFn+K31AonRw384RURKEf9ZexTRheS/BqpWEPVOtJjxjH +l0LnExuGWTxZ6mos +</publish> +<publish xmlns="http://www.ripe.net/rpki/rrdp" uri="rsync://rpki.example.com/rpki/Sobornost-RIPE/Sobornost-OP/fxYnc2Mg1Fnou14i_Qm39uMR1bA.crl"> +MIIBrTCBlgIBATANBgkqhkiG9w0BAQsFADAzMTEwLwYDVQQDEyg3RjE2Mjc3MzYz +MjBENDU5RThCQjVFMjJGRDA5QjdGNkUzMTFENUIwFw0yMDEyMjgyMDAyMjlaFw0y +MDEyMjkwMjAyMjlaoC8wLTAfBgNVHSMEGDAWgBR/FidzYyDUWei7XiL9Cbf24xHV +sDAKBgNVHRQEAwIBAzANBgkqhkiG9w0BAQsFAAOCAQEAYSjbe7pERFgmJMdOpHsr +DbcJIb9xxd/7EtWb6gjcoxCnxiiSx65sOJ4y3Sb51U8eJgFMvrWzEGJx1aOEcQ0e +CSh1jByVbphyMu4+y4bIUt459dkvrE2msOHcGUGMrqTX/4uKwLwenDArYFD5ar/W +tWSyyGI6ra3zRRCKGzqbttm91qBNjKBFSRsZzZibxWZKeOlzVRLZPz9tyh0cg7K5 +rdpHQQ2Grf5bVpIUDgN9N01uYb81jQGOZimCMZo2sC3HFfX3tN0KriB4YU5JdUs9 +76z8WV7L0irVxkokxgpxBhodt46JH/PmeIFbQpX23B9aeeGdSWpRHTaU1pYESdIp +6g== +</publish> +<publish xmlns="http://www.ripe.net/rpki/rrdp" uri="rsync://rpki.example.com/rpki/uplift/IBfMWA0nPFS6MGTNLNavObgEuIc.mft"> +MIIH8AYJKoZIhvcNAQcCoIIH4TCCB90CAQMxDTALBglghkgBZQMEAgEwggEfBgsq +hkiG9w0BCRABGqCCAQ4EggEKMIIBBgICBb8YDzIwMjExMTI0MTAxMjEyWhgPMjAy +MTExMjQxNjEyMTJaBglghkgBZQMEAgEwgdIwRBYfN2JWbmtaTF96X251ZzNtZUhM +UnVFdmllNkRFLnJvYQMhAHiD6NgwQsIVGC2zWqIka9ykfLX/ROIAbEaJplrlulMB +MEQWH0lCZk1XQTBuUEZTNk1HVE5MTmF2T2JnRXVJYy5jcmwDIQCcN0Fc02sS0g4e +yRbcYwgZsUYzShvz434HCvnXFqxbOjBEFh9OWGNYY3Z1ZnhhejdVS2ozVGVpVG1i +QXVhbDQucm9hAyEATn49/cJO4lEGWuy166O5hKaAOWvY7uQZgX8Pb914jCOgggT2 +MIIE8jCCA9qgAwIBAgICBcMwDQYJKoZIhvcNAQELBQAwMzExMC8GA1UEAxMoMjAx +N2NjNTgwZDI3M2M1NGJhMzA2NGNkMmNkNmFmMzliODA0Yjg4NzAeFw0yMTExMjQx +MDEyMTJaFw0yMjA3MDEwMDAwMDBaMDMxMTAvBgNVBAMTKDRFMTc3NDdBRkYxOTg2 +QkY3QkJFNzgzMkYzMDE1QzM3MjUwNTdDMjkwggEiMA0GCSqGSIb3DQEBAQUAA4IB +DwAwggEKAoIBAQDLBJFoJXpJo0S+F8Lfgdbem5CXRNDP6yrd1oqqZDRiwe5/Az1u +qx13PrtHvEeyJ0T1JEQfo0O/nRofmGXyNhmCsAOFb2+BlXy/BaKiM28l6DYRZM2v +AAEn0sJibjtA3npyBfoW+GKC7chNXDTJd0c2AyX8FO8bgZge26weKuyvP2xIgmgR +LcegEQq7JVls5a8Bl/GdNEIpX/PKsjmxVBhqXuIQ5eJbfLllwT0jkBnaqAWj+Rz0 +0gqTbJ2T8lXhDM43llPkxu3wF2IFLhugIS+oGObo2+fQhkPzwzcHGfUxbKgLgJpx +ZpgfFjCFLjC61sw+9fyFRnSa/U8zZEDgOMPvAgMBAAGjggIOMIICCjAdBgNVHQ4E +FgQUThd0ev8Zhr97vngy8wFcNyUFfCkwHwYDVR0jBBgwFoAUIBfMWA0nPFS6MGTN +LNavObgEuIcwGAYDVR0gAQH/BA4wDDAKBggrBgEFBQcOAjBYBgNVHR8EUTBPME2g +S6BJhkdyc3luYzovL2NobG9lLnNvYm9ybm9zdC5uZXQvcnBraS91cGxpZnQvSUJm +TVdBMG5QRlM2TUdUTkxOYXZPYmdFdUljLmNybDBkBggrBgEFBQcBAQRYMFYwVAYI +KwYBBQUHMAKGSHJzeW5jOi8vcnBraS5yaXBlLm5ldC9yZXBvc2l0b3J5L0RFRkFV +TFQvSUJmTVdBMG5QRlM2TUdUTkxOYXZPYmdFdUljLmNlcjAOBgNVHQ8BAf8EBAMC +B4AwgaMGCCsGAQUFBwELBIGWMIGTMFMGCCsGAQUFBzALhkdyc3luYzovL2NobG9l +LnNvYm9ybm9zdC5uZXQvcnBraS91cGxpZnQvSUJmTVdBMG5QRlM2TUdUTkxOYXZP +YmdFdUljLm1mdDA8BggrBgEFBQcwDYYwaHR0cHM6Ly9jaGxvZS5zb2Jvcm5vc3Qu +bmV0L3Jwa2kvbmV3cy1wdWJsaWMueG1sMBUGCCsGAQUFBwEIAQH/BAYwBKACBQAw +IQYIKwYBBQUHAQcBAf8EEjAQMAYEAgABBQAwBgQCAAIFADANBgkqhkiG9w0BAQsF +AAOCAQEAjjYeUpH9tIXtkV1f2fN76HLFFaiCEilhMwkNPzmVePs3cRRGJg+qhgSz +gLP2yngSTKX/zGUM1eQU+BMJHyhi4XOfD3Bdr7rkWq47UZSOn5N7mv/yA2UYx6gb +dOToFwTgoyGAE0Zjxep8c2v33RUYwBaFZxuPqZYKsm1wbvVKvn+GiroPq3QEFdHr +welCQ9u1//RN1BgXP56tBDhEI2xXDN6hOfkGs4xz+WqQnGlhU3KFAo0QR3/+EIXZ +pB/kgkTWBFO7MF2B645GFa4VnQy9t7prwKUfgne8mFis5NmzU8rGNXfSzpSoelyU +4xsKoY+D7DSE24Kk1vYsMl31VhtbbTGCAaowggGmAgEDgBROF3R6/xmGv3u+eDLz +AVw3JQV8KTALBglghkgBZQMEAgGgazAaBgkqhkiG9w0BCQMxDQYLKoZIhvcNAQkQ +ARowHAYJKoZIhvcNAQkFMQ8XDTIxMTEyNDEwMTIxMlowLwYJKoZIhvcNAQkEMSIE +IJeKYLhddBj4+sfXo9frzQq8hi7d0FXA+3WR7AAsv2OuMA0GCSqGSIb3DQEBAQUA +BIIBAJAgvliloHtLKq1cBGWgsxY/sIfjB06P14Ic8nDQkYtZWVXeewXUOxbbPpIG +PlHMOe2rYV6AaeupErXOepC0DT+gFlKcDPEv+MW8mOU9gxV7i1dq6PHLOiYiKzoh +R8/CQhKRHgCZHCm3CaaLIdZmQvDOQaXEAIJf2vguGMPqHG7AzVkHOQsWrQsoFWJs +w5J/PtrCFJMMAc6/5dxKhEUy5yhZdBiJ0TmmyVeHYA2gYZ8UD3p0YyVKB/UZp4wc +KmpiFkpRuvQmscZDqmOU5C6aDitOkHj3EwEoULx0qMGnBB7VaDhxPDGcL2oFn4bM +kj4IN2Oc7BuCKj9ruDmULONsAGo= +</publish> +</snapshot> diff --git a/regress/usr.sbin/rpki-client/rrdp/xxe.xml b/regress/usr.sbin/rpki-client/rrdp/xxe.xml new file mode 100644 index 00000000000..ce04df939c4 --- /dev/null +++ b/regress/usr.sbin/rpki-client/rrdp/xxe.xml @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="US-ASCII"?> +<!DOCTYPE foo [ +<!ELEMENT foo ANY > +<!ENTITY xxe SYSTEM "file:///etc/passwd" >]><notification version="1" session_id="9b3f7e31-4979-ef8c-d818-73e4dadc3e6b" serial="13756" xmlns="http://www.ripe.net/rpki/rrdp">&xxe;</notification> diff --git a/regress/usr.sbin/rpki-client/test-rrdp.c b/regress/usr.sbin/rpki-client/test-rrdp.c new file mode 100644 index 00000000000..04d14ccf600 --- /dev/null +++ b/regress/usr.sbin/rpki-client/test-rrdp.c @@ -0,0 +1,338 @@ +/* $OpenBSD: test-rrdp.c,v 1.1 2021/12/01 09:03:19 claudio Exp $ */ +/* + * Copyright (c) 2020 Nils Fisher <nils_fisher@hotmail.com> + * Copyright (c) 2021 Claudio Jeker <claudio@openbsd.org> + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ +#include <sys/queue.h> +#include <sys/stat.h> + +#include <assert.h> +#include <ctype.h> +#include <err.h> +#include <errno.h> +#include <fcntl.h> +#include <limits.h> +#include <poll.h> +#include <string.h> +#include <unistd.h> +#include <sha2.h> + +#include <expat.h> +#include <openssl/sha.h> + +#include "extern.h" +#include "rrdp.h" + +#define REGRESS_NOTIFY_URI "https://rpki.example.com/notify.xml" + +#define MAX_SESSIONS 12 +#define READ_BUF_SIZE (32 * 1024) + +#define RRDP_STATE_REQ 0x01 +#define RRDP_STATE_WAIT 0x02 +#define RRDP_STATE_PARSE 0x04 +#define RRDP_STATE_PARSE_ERROR 0x08 +#define RRDP_STATE_PARSE_DONE 0x10 +#define RRDP_STATE_HTTP_DONE 0x20 +#define RRDP_STATE_DONE (RRDP_STATE_PARSE_DONE | RRDP_STATE_HTTP_DONE) + +struct rrdp { + TAILQ_ENTRY(rrdp) entry; + size_t id; + char *notifyuri; + char *local; + char *last_mod; + + struct pollfd *pfd; + int infd; + int state; + unsigned int file_pending; + unsigned int file_failed; + enum http_result res; + enum rrdp_task task; + + char hash[SHA256_DIGEST_LENGTH]; + SHA256_CTX ctx; + + struct rrdp_session repository; + struct rrdp_session current; + XML_Parser parser; + struct notification_xml *nxml; + struct snapshot_xml *sxml; + struct delta_xml *dxml; +}; + +void +logx(const char *fmt, ...) +{ + va_list ap; + + va_start(ap, fmt); + vwarnx(fmt, ap); + va_end(ap); +} + +char * +xstrdup(const char *s) +{ + char *r; + if ((r = strdup(s)) == NULL) + err(1, "strdup"); + return r; +} + +/* + * Send a blob of data to the main process to store it in the repository. + */ +void +rrdp_publish_file(struct rrdp *s, struct publish_xml *pxml, + unsigned char *data, size_t datasz) +{ + char buf[SHA256_DIGEST_STRING_LENGTH]; + char *hash = NULL; + + switch (pxml->type) { + case PUB_ADD: + logx("type: %s", "add"); + break; + case PUB_UPD: + logx("type: %s", "update"); + hash = hex_encode(pxml->hash, sizeof(pxml->hash)); + break; + case PUB_DEL: + logx("type: %s", "delete"); + hash = hex_encode(pxml->hash, sizeof(pxml->hash)); + break; + default: + errx(1, "unknown publish type"); + } + logx("uri: %s", pxml->uri); + SHA256Data(data, datasz, buf); + logx("data: %s", buf); + + if (hash) + logx("hash: %s", hash); + free(hash); +} + +static struct rrdp * +rrdp_new(size_t id, char *local, char *notify, char *session_id, + long long serial, char *last_mod) +{ + struct rrdp *s; + + if ((s = calloc(1, sizeof(*s))) == NULL) + err(1, NULL); + + s->infd = 0; /* stdin */ + s->id = id; + s->local = local; + s->notifyuri = notify; + s->repository.session_id = session_id; + s->repository.serial = serial; + s->repository.last_mod = last_mod; + + s->state = RRDP_STATE_REQ; + if ((s->parser = XML_ParserCreate("US-ASCII")) == NULL) + err(1, "XML_ParserCreate"); + + return s; +} + +static void +rrdp_free(struct rrdp *s) +{ + if (s == NULL) + return; + + free_notification_xml(s->nxml); + free_snapshot_xml(s->sxml); + free_delta_xml(s->dxml); + + if (s->parser) + XML_ParserFree(s->parser); + if (s->infd != -1) + close(s->infd); + free(s->notifyuri); + free(s->local); + free(s->last_mod); + free(s->repository.last_mod); + free(s->repository.session_id); + free(s->current.last_mod); + free(s->current.session_id); + + free(s); +} + +static void +rrdp_finished(struct rrdp *s) +{ + XML_Parser p = s->parser; + size_t id = s->id; + + if (s->state & RRDP_STATE_PARSE_ERROR) + return; + + /* + * Finalize parsing on success to be sure that + * all of the XML is correct. Needs to be done here + * since the call would most probably fail for non + * successful data fetches. + */ + if (XML_Parse(p, NULL, 0, 1) != XML_STATUS_OK) { + warnx("%s: XML error at line %llu: %s", s->local, + (unsigned long long)XML_GetCurrentLineNumber(p), + XML_ErrorString(XML_GetErrorCode(p))); + return; + } + + switch (s->task) { + case NOTIFICATION: + log_notification_xml(s->nxml); + break; + case SNAPSHOT: + log_snapshot_xml(s->sxml); + break; + case DELTA: + log_delta_xml(s->dxml); + break; + } +} + +static void +rrdp_data_handler(struct rrdp *s) +{ + char buf[READ_BUF_SIZE]; + XML_Parser p = s->parser; + ssize_t len; + + len = read(s->infd, buf, sizeof(buf)); + if (len == -1) { + s->state |= RRDP_STATE_PARSE_ERROR; + warn("%s: read failure", s->local); + return; + } + if ((s->state & RRDP_STATE_PARSE) == 0) + errx(1, "%s: bad parser state", s->local); + if (len == 0) { + /* parser stage finished */ + close(s->infd); + s->infd = -1; + + if (s->task != NOTIFICATION) { + char h[SHA256_DIGEST_LENGTH]; + + SHA256_Final(h, &s->ctx); + if (memcmp(s->hash, h, sizeof(s->hash)) != 0) { + s->state |= RRDP_STATE_PARSE_ERROR; + warnx("%s: bad message digest", s->local); + } + } + + s->state |= RRDP_STATE_PARSE_DONE; + rrdp_finished(s); + return; + } + + /* parse and maybe hash the bytes just read */ + if (s->task != NOTIFICATION) + SHA256_Update(&s->ctx, buf, len); + if ((s->state & RRDP_STATE_PARSE_ERROR) == 0 && + XML_Parse(p, buf, len, 0) != XML_STATUS_OK) { + warnx("%s: parse error at line %llu: %s", s->local, + (unsigned long long)XML_GetCurrentLineNumber(p), + XML_ErrorString(XML_GetErrorCode(p))); + s->state |= RRDP_STATE_PARSE_ERROR; + } +} + +int +main(int argc, char **argv) +{ + struct rrdp *s = NULL; + const char *e; + char *session_id = NULL; + char hash[SHA256_DIGEST_LENGTH]; + long long serial = 0; + int c; + + + while ((c = getopt(argc, argv, "dH:N:nS:s")) != -1) + switch (c) { + case 'd': + if (s) + goto usage; + s = rrdp_new(0, "stdin", REGRESS_NOTIFY_URI, + session_id, serial, NULL); + s->dxml = new_delta_xml(s->parser, + &s->repository, s); + s->task = DELTA; + SHA256_Init(&s->ctx); + memcpy(s->hash, hash, sizeof(s->hash)); + break; + case 'H': + if (hex_decode(optarg, hash, sizeof(hash)) == -1) + errx(1, "bad hash"); + break; + case 'N': + serial = strtonum(optarg, LLONG_MIN, LLONG_MAX, &e); + if (e != NULL) + errx(1, "serial is %s: %s", e, optarg); + break; + case 'n': + if (s) + goto usage; + s = rrdp_new(0, "stdin", REGRESS_NOTIFY_URI, + session_id, serial, NULL); + s->nxml = new_notification_xml(s->parser, + &s->repository, &s->current, s->notifyuri); + s->task = NOTIFICATION; + break; + case 'S': + session_id = optarg; + break; + case 's': + if (s) + goto usage; + s = rrdp_new(0, "stdin", REGRESS_NOTIFY_URI, + session_id, serial, NULL); + s->sxml = new_snapshot_xml(s->parser, + &s->repository, s); + s->task = SNAPSHOT; + SHA256_Init(&s->ctx); + memcpy(s->hash, hash, sizeof(s->hash)); + break; + default: + goto usage; + } + + s->state = RRDP_STATE_PARSE; + + while (!(s->state & RRDP_STATE_PARSE_DONE)) { + rrdp_data_handler(s); + } + + if ((s->state & RRDP_STATE_PARSE_ERROR) == 0) { + printf("OK\n"); + return 0; + } else { + return 1; + } + +usage: + fprintf(stderr, "usage: %s [-S session_id] [-N serial] [-H hash] " + "-d | -n | -s\n", "test-rrdp"); + exit(1); +} |