From: Nicola Tuveri Date: Tue, 11 Apr 2017 16:46:13 +0000 (+0300) Subject: ecdhtest.c: move KATs to evptests.txt X-Git-Tag: OpenSSL_1_1_1-pre1~1780 X-Git-Url: https://git.openssl.org/?p=openssl.git;a=commitdiff_plain;h=29cbf152ffc3930d98738e49a65a6828da5cab37 ecdhtest.c: move KATs to evptests.txt Reviewed-by: Rich Salz Reviewed-by: Richard Levitte (Merged from https://github.com/openssl/openssl/pull/3187) --- diff --git a/test/ecdhtest.c b/test/ecdhtest.c index 99f37d2b6b..f8e5335fc8 100644 --- a/test/ecdhtest.c +++ b/test/ecdhtest.c @@ -49,87 +49,6 @@ int main(int argc, char *argv[]) static const char rnd_seed[] = "string to make the random number generator think it has entropy"; -typedef struct { - const int nid; - const char *da; - const char *db; - const char *Z; -} ecdh_kat_t; - -static const ecdh_kat_t ecdh_kats[] = { - /* Keys and shared secrets from RFC 5114 */ - { NID_X9_62_prime192v1, - "323FA3169D8E9C6593F59476BC142000AB5BE0E249C43426", - "631F95BB4A67632C9C476EEE9AB695AB240A0499307FCF62", - "AD420182633F8526BFE954ACDA376F05E5FF4F837F54FEBE" }, - { NID_secp224r1, - "B558EB6C288DA707BBB4F8FBAE2AB9E9CB62E3BC5C7573E22E26D37F", - "AC3B1ADD3D9770E6F6A708EE9F3B8E0AB3B480E9F27F85C88B5E6D18", - "52272F50F46F4EDC9151569092F46DF2D96ECC3B6DC1714A4EA949FA" }, - { NID_X9_62_prime256v1, - "814264145F2F56F2E96A8E337A1284993FAF432A5ABCE59E867B7291D507A3AF", - "2CE1788EC197E096DB95A200CC0AB26A19CE6BCCAD562B8EEE1B593761CF7F41", - "DD0F5396219D1EA393310412D19A08F1F5811E9DC8EC8EEA7F80D21C820C2788" }, - { NID_secp384r1, - "D27335EA71664AF244DD14E9FD1260715DFD8A7965571C48D709EE7A7962A156" - "D706A90CBCB5DF2986F05FEADB9376F1", - "52D1791FDB4B70F89C0F00D456C2F7023B6125262C36A7DF1F80231121CCE3D3" - "9BE52E00C194A4132C4A6C768BCD94D2", - "5EA1FC4AF7256D2055981B110575E0A8CAE53160137D904C59D926EB1B8456E4" - "27AA8A4540884C37DE159A58028ABC0E" }, - { NID_secp521r1, - "0113F82DA825735E3D97276683B2B74277BAD27335EA71664AF2430CC4F33459" - "B9669EE78B3FFB9B8683015D344DCBFEF6FB9AF4C6C470BE254516CD3C1A1FB4" - "7362", - "00CEE3480D8645A17D249F2776D28BAE616952D1791FDB4B70F7C3378732AA1B" - "22928448BCD1DC2496D435B01048066EBE4F72903C361B1A9DC1193DC2C9D089" - "1B96", - "00CDEA89621CFA46B132F9E4CFE2261CDE2D4368EB5656634C7CC98C7A00CDE5" - "4ED1866A0DD3E6126C9D2F845DAFF82CEB1DA08F5D87521BB0EBECA77911169C" - "20CC" }, - /* Keys and shared secrets from RFC 5903 */ - { NID_X9_62_prime256v1, - "C88F01F510D9AC3F70A292DAA2316DE544E9AAB8AFE84049C62A9C57862D1433", - "C6EF9C5D78AE012A011164ACB397CE2088685D8F06BF9BE0B283AB46476BEE53", - "D6840F6B42F6EDAFD13116E0E12565202FEF8E9ECE7DCE03812464D04B9442DE" }, - { NID_secp384r1, - "099F3C7034D4A2C699884D73A375A67F7624EF7C6B3C0F160647B67414DCE655" - "E35B538041E649EE3FAEF896783AB194", - "41CB0779B4BDB85D47846725FBEC3C9430FAB46CC8DC5060855CC9BDA0AA2942" - "E0308312916B8ED2960E4BD55A7448FC", - "11187331C279962D93D604243FD592CB9D0A926F422E47187521287E7156C5C4" - "D603135569B9E9D09CF5D4A270F59746" }, - { NID_secp521r1, - "0037ADE9319A89F4DABDB3EF411AACCCA5123C61ACAB57B5393DCE47608172A0" - "95AA85A30FE1C2952C6771D937BA9777F5957B2639BAB072462F68C27A57382D" - "4A52", - "0145BA99A847AF43793FDD0E872E7CDFA16BE30FDC780F97BCCC3F078380201E" - "9C677D600B343757A3BDBF2A3163E4C2F869CCA7458AA4A4EFFC311F5CB15168" - "5EB9", - "01144C7D79AE6956BC8EDB8E7C787C4521CB086FA64407F97894E5E6B2D79B04" - "D1427E73CA4BAA240A34786859810C06B3C715A3A8CC3151F2BEE417996D19F3" - "DDEA" }, - /* Keys and shared secrets from RFC 7027 */ - { NID_brainpoolP256r1, - "81DB1EE100150FF2EA338D708271BE38300CB54241D79950F77B063039804F1D", - "55E40BC41E37E3E2AD25C3C6654511FFA8474A91A0032087593852D3E7D76BD3", - "89AFC39D41D3B327814B80940B042590F96556EC91E6AE7939BCE31F3A18BF2B" }, - { NID_brainpoolP384r1, - "1E20F5E048A5886F1F157C74E91BDE2B98C8B52D58E5003D57053FC4B0BD65D6" - "F15EB5D1EE1610DF870795143627D042", - "032640BC6003C59260F7250C3DB58CE647F98E1260ACCE4ACDA3DD869F74E01F" - "8BA5E0324309DB6A9831497ABAC96670", - "0BD9D3A7EA0B3D519D09D8E48D0785FB744A6B355E6304BC51C229FBBCE239BB" - "ADF6403715C35D4FB2A5444F575D4F42" }, - { NID_brainpoolP512r1, - "16302FF0DBBB5A8D733DAB7141C1B45ACBC8715939677F6A56850A38BD87BD59" - "B09E80279609FF333EB9D4C061231FB26F92EEB04982A5F1D1764CAD57665422", - "230E18E1BCC88A362FA54E4EA3902009292F7F8033624FD471B5D8ACE49D12CF" - "ABBC19963DAB8E2F1EBA00BFFB29E4D72D13F2224562F405CB80503666B25429", - "A7927098655F1F9976FA50A9D566865DC530331846381C87256BAF3226244B76" - "D36403C024D7BBF0AA0803EAFF405D3D24F11A9B5C0BEF679FE1454B21C4CD1F" } -}; - /* Given private value and NID, create EC_KEY structure */ static EC_KEY *mk_eckey(int nid, const char *str) @@ -166,63 +85,6 @@ static EC_KEY *mk_eckey(int nid, const char *str) return NULL; } -/* - * Known answer test: compute shared secret and check it matches expected - * value. - */ - -static int ecdh_kat(BIO *out, const ecdh_kat_t *kat) -{ - int rv = 0; - EC_KEY *key1 = NULL, *key2 = NULL; - BIGNUM *bnz = NULL; - unsigned char *Ztmp = NULL, *Z = NULL; - size_t Ztmplen, Zlen; - BIO_puts(out, "Testing ECDH shared secret with "); - BIO_puts(out, OBJ_nid2sn(kat->nid)); - if(!BN_hex2bn(&bnz, kat->Z)) - goto err; - key1 = mk_eckey(kat->nid, kat->da); - key2 = mk_eckey(kat->nid, kat->db); - if (!key1 || !key2) - goto err; - Ztmplen = (EC_GROUP_get_degree(EC_KEY_get0_group(key1)) + 7) / 8; - Zlen = BN_num_bytes(bnz); - if (Zlen > Ztmplen) - goto err; - if((Ztmp = OPENSSL_zalloc(Ztmplen)) == NULL) - goto err; - if((Z = OPENSSL_zalloc(Ztmplen)) == NULL) - goto err; - if(!BN_bn2binpad(bnz, Z, Ztmplen)) - goto err; - if (!ECDH_compute_key(Ztmp, Ztmplen, - EC_KEY_get0_public_key(key2), key1, 0)) - goto err; - if (memcmp(Ztmp, Z, Ztmplen)) - goto err; - memset(Ztmp, 0, Ztmplen); - if (!ECDH_compute_key(Ztmp, Ztmplen, - EC_KEY_get0_public_key(key1), key2, 0)) - goto err; - if (memcmp(Ztmp, Z, Ztmplen)) - goto err; - rv = 1; - err: - EC_KEY_free(key1); - EC_KEY_free(key2); - OPENSSL_free(Ztmp); - OPENSSL_free(Z); - BN_free(bnz); - if (rv) - BIO_puts(out, " ok\n"); - else { - fprintf(stderr, "Error in ECDH routines\n"); - ERR_print_errors_fp(stderr); - } - return rv; -} - #include "ecdhtest_cavs.h" /* @@ -378,11 +240,7 @@ int main(int argc, char *argv[]) /* NAMED CURVES TESTS: moved to evptests.txt */ - /* KATs */ - for (n = 0; n < (sizeof(ecdh_kats)/sizeof(ecdh_kat_t)); n++) { - if (!ecdh_kat(out, &ecdh_kats[n])) - goto err; - } + /* KATs: moved to evptests.txt */ /* NIST SP800-56A co-factor ECDH KATs */ for (n = 0; n < (sizeof(ecdh_cavs_kats)/sizeof(ecdh_cavs_kat_t)); n++) { diff --git a/test/evptests.txt b/test/evptests.txt index 88c2ed6717..cd7817640e 100644 --- a/test/evptests.txt +++ b/test/evptests.txt @@ -8285,3 +8285,435 @@ Derive=BOB_brainpoolP512t1 PeerKey=ALICE_brainpoolP512t1_PUB SharedSecret=0afecb44d108c9bf2bc159fcc613a1429e3906d5d201d579adc2167058e972ef85fc13d837f3566a2ff3a881e47bfe36b722baf4a9f865097fe11e171189a944 + +## ECDH Tests: KATs from RFC 5114, RFC 5903 and RFC 7027 + + +# Keys and shared secrets from RFC 5114 +PrivateKey=PRIME192V1_RFC5114 +-----BEGIN PRIVATE KEY----- +MG8CAQAwEwYHKoZIzj0CAQYIKoZIzj0DAQEEVTBTAgEBBBgyP6MWnY6cZZP1lHa8 +FCAAq1vg4knENCahNAMyAATNRkiez9bBBeez0yVm4rEi4kmrqt2HBhJoiHtId99R +3U3D1v0R8KJvj9OEQxeRbpo= +-----END PRIVATE KEY----- + +PublicKey=PRIME192V1_RFC5114-PUBLIC +-----BEGIN PUBLIC KEY----- +MEkwEwYHKoZIzj0CAQYIKoZIzj0DAQEDMgAEzUZIns/WwQXns9MlZuKxIuJJq6rd +hwYSaIh7SHffUd1Nw9b9EfCib4/ThEMXkW6a +-----END PUBLIC KEY----- + +PrivateKey=PRIME192V1_RFC5114-Peer +-----BEGIN PRIVATE KEY----- +MG8CAQAwEwYHKoZIzj0CAQYIKoZIzj0DAQEEVTBTAgEBBBhjH5W7SmdjLJxHbu6a +tpWrJAoEmTB/z2KhNAMyAARRmhIWgOAEVGa6Id8u7kf1lztQBXfvE9X/YTq01kzu +OiCHW9sQ+VP2swygcsYKpX8= +-----END PRIVATE KEY----- + +PublicKey=PRIME192V1_RFC5114-Peer-PUBLIC +-----BEGIN PUBLIC KEY----- +MEkwEwYHKoZIzj0CAQYIKoZIzj0DAQEDMgAEUZoSFoDgBFRmuiHfLu5H9Zc7UAV3 +7xPV/2E6tNZM7jogh1vbEPlT9rMMoHLGCqV/ +-----END PUBLIC KEY----- + + +Derive=PRIME192V1_RFC5114 +PeerKey=PRIME192V1_RFC5114-Peer-PUBLIC +SharedSecret=AD420182633F8526BFE954ACDA376F05E5FF4F837F54FEBE + +Derive=PRIME192V1_RFC5114-Peer +PeerKey=PRIME192V1_RFC5114-PUBLIC +SharedSecret=AD420182633F8526BFE954ACDA376F05E5FF4F837F54FEBE + +PrivateKey=SECP224R1_RFC5114 +-----BEGIN PRIVATE KEY----- +MHgCAQAwEAYHKoZIzj0CAQYFK4EEACEEYTBfAgEBBBy1WOtsKI2nB7u0+PuuKrnp +y2LjvFx1c+IuJtN/oTwDOgAESd/vMJ+BSIwwTP9as+5aIVQ2fceDMVDgpR8+608r +XuRXYsT2VMGgxn9Uz4iwFrUbzj18Io1XrbQ= +-----END PRIVATE KEY----- + +PublicKey=SECP224R1_RFC5114-PUBLIC +-----BEGIN PUBLIC KEY----- +ME4wEAYHKoZIzj0CAQYFK4EEACEDOgAESd/vMJ+BSIwwTP9as+5aIVQ2fceDMVDg +pR8+608rXuRXYsT2VMGgxn9Uz4iwFrUbzj18Io1XrbQ= +-----END PUBLIC KEY----- + +PrivateKey=SECP224R1_RFC5114-Peer +-----BEGIN PRIVATE KEY----- +MHgCAQAwEAYHKoZIzj0CAQYFK4EEACEEYTBfAgEBBBysOxrdPZdw5vanCO6fO44K +s7SA6fJ/hciLXm0YoTwDOgAEazrJao0M3mpVmb6AMu3xDBYtCorSGVBtzUKiB9SR +vpnCE6fRyjcG3r/jBfNhr8uzPiYJyLFhitU= +-----END PRIVATE KEY----- + +PublicKey=SECP224R1_RFC5114-Peer-PUBLIC +-----BEGIN PUBLIC KEY----- +ME4wEAYHKoZIzj0CAQYFK4EEACEDOgAEazrJao0M3mpVmb6AMu3xDBYtCorSGVBt +zUKiB9SRvpnCE6fRyjcG3r/jBfNhr8uzPiYJyLFhitU= +-----END PUBLIC KEY----- + + +Derive=SECP224R1_RFC5114 +PeerKey=SECP224R1_RFC5114-Peer-PUBLIC +SharedSecret=52272F50F46F4EDC9151569092F46DF2D96ECC3B6DC1714A4EA949FA + +Derive=SECP224R1_RFC5114-Peer +PeerKey=SECP224R1_RFC5114-PUBLIC +SharedSecret=52272F50F46F4EDC9151569092F46DF2D96ECC3B6DC1714A4EA949FA + +PrivateKey=PRIME256V1_RFC5114 +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQggUJkFF8vVvLpao4z +ehKEmT+vQypavOWehntykdUHo6+hRANCAAQq9QLzvolS8sm1qNQWDQnpcWW+ULxC +rkpejTtLqDrrFesPr0yphsTThoGg+YctedVnlb1L/25t48D1AV7OXv2F +-----END PRIVATE KEY----- + +PublicKey=PRIME256V1_RFC5114-PUBLIC +-----BEGIN PUBLIC KEY----- +MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEKvUC876JUvLJtajUFg0J6XFlvlC8 +Qq5KXo07S6g66xXrD69MqYbE04aBoPmHLXnVZ5W9S/9ubePA9QFezl79hQ== +-----END PUBLIC KEY----- + +PrivateKey=PRIME256V1_RFC5114-Peer +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgLOF4jsGX4JbblaIA +zAqyahnOa8ytViuO7htZN2HPf0GhRANCAASxIN5Ko2SSeVNG6N5sLIZGrgaq6ief +p3WzqwcV9s5RsJ8bfuziDXte2OxoX6Pwcdg3JwJwkqhBE4XDTd5XCLK2 +-----END PRIVATE KEY----- + +PublicKey=PRIME256V1_RFC5114-Peer-PUBLIC +-----BEGIN PUBLIC KEY----- +MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEsSDeSqNkknlTRujebCyGRq4Gquon +n6d1s6sHFfbOUbCfG37s4g17XtjsaF+j8HHYNycCcJKoQROFw03eVwiytg== +-----END PUBLIC KEY----- + + +Derive=PRIME256V1_RFC5114 +PeerKey=PRIME256V1_RFC5114-Peer-PUBLIC +SharedSecret=DD0F5396219D1EA393310412D19A08F1F5811E9DC8EC8EEA7F80D21C820C2788 + +Derive=PRIME256V1_RFC5114-Peer +PeerKey=PRIME256V1_RFC5114-PUBLIC +SharedSecret=DD0F5396219D1EA393310412D19A08F1F5811E9DC8EC8EEA7F80D21C820C2788 + +PrivateKey=SECP384R1_RFC5114 +-----BEGIN PRIVATE KEY----- +MIG2AgEAMBAGByqGSM49AgEGBSuBBAAiBIGeMIGbAgEBBDDSczXqcWZK8kTdFOn9 +EmBxXf2KeWVXHEjXCe56eWKhVtcGqQy8td8phvBf6tuTdvGhZANiAAR5MUjxeHY0 +1dpMbZB0QX0F4FerYvggVNEO5rBAPWJ5VH5qjqnR/XdCfQFv4nqLjGbGxBKUMx0j +5vSA9PtM1AUEyUc5LpT0w/BrjzmLsp5CNo96aFkj3jtnus7SFKGh0Sg= +-----END PRIVATE KEY----- + +PublicKey=SECP384R1_RFC5114-PUBLIC +-----BEGIN PUBLIC KEY----- +MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEeTFI8Xh2NNXaTG2QdEF9BeBXq2L4IFTR +DuawQD1ieVR+ao6p0f13Qn0Bb+J6i4xmxsQSlDMdI+b0gPT7TNQFBMlHOS6U9MPw +a485i7KeQjaPemhZI947Z7rO0hShodEo +-----END PUBLIC KEY----- + +PrivateKey=SECP384R1_RFC5114-Peer +-----BEGIN PRIVATE KEY----- +MIG2AgEAMBAGByqGSM49AgEGBSuBBAAiBIGeMIGbAgEBBDBS0Xkf20tw+JwPANRW +wvcCO2ElJiw2p98fgCMRIczj05vlLgDBlKQTLEpsdovNlNKhZANiAARc1Cq5xBtT +R/dLjU77cIs9WzbbZZFTWbRKvBdke2uZmXidcqhIZa4vIj8StaGrwSDhcUWP6qk5 +qqOov6xGtAS9j21bNIwPpNgM7KFjVsqTMkC96HI0Fajs4DWw7fNnVd4= +-----END PRIVATE KEY----- + +PublicKey=SECP384R1_RFC5114-Peer-PUBLIC +-----BEGIN PUBLIC KEY----- +MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEXNQqucQbU0f3S41O+3CLPVs222WRU1m0 +SrwXZHtrmZl4nXKoSGWuLyI/ErWhq8Eg4XFFj+qpOaqjqL+sRrQEvY9tWzSMD6TY +DOyhY1bKkzJAvehyNBWo7OA1sO3zZ1Xe +-----END PUBLIC KEY----- + + +Derive=SECP384R1_RFC5114 +PeerKey=SECP384R1_RFC5114-Peer-PUBLIC +SharedSecret=5EA1FC4AF7256D2055981B110575E0A8CAE53160137D904C59D926EB1B8456E427AA8A4540884C37DE159A58028ABC0E + +Derive=SECP384R1_RFC5114-Peer +PeerKey=SECP384R1_RFC5114-PUBLIC +SharedSecret=5EA1FC4AF7256D2055981B110575E0A8CAE53160137D904C59D926EB1B8456E427AA8A4540884C37DE159A58028ABC0E + +PrivateKey=SECP521R1_RFC5114 +-----BEGIN PRIVATE KEY----- +MIHuAgEAMBAGByqGSM49AgEGBSuBBAAjBIHWMIHTAgEBBEIBE/gtqCVzXj2XJ2aD +srdCd7rSczXqcWZK8kMMxPM0WblmnueLP/ubhoMBXTRNy/72+5r0xsRwviVFFs08 +Gh+0c2KhgYkDgYYABAHrs03XVyGr+K3J2+0XiJy7l2XZCnxg8s7wB7sPKybhSIH9 +RELmidYcst0EbuMOP/0g+aRbvfZBPVg6Lb9Zkk/TXAD2tjLRlMA4jiLYQ35VjFUq +4ZWt/RU/ktdJCDUbL4xO2pTtsJFtG1PAILXuyu0aX8OKIz5IMFh7su40ibO0KlqG +pA== +-----END PRIVATE KEY----- + +PublicKey=SECP521R1_RFC5114-PUBLIC +-----BEGIN PUBLIC KEY----- +MIGbMBAGByqGSM49AgEGBSuBBAAjA4GGAAQB67NN11chq/itydvtF4icu5dl2Qp8 +YPLO8Ae7Dysm4UiB/URC5onWHLLdBG7jDj/9IPmkW732QT1YOi2/WZJP01wA9rYy +0ZTAOI4i2EN+VYxVKuGVrf0VP5LXSQg1Gy+MTtqU7bCRbRtTwCC17srtGl/DiiM+ +SDBYe7LuNImztCpahqQ= +-----END PUBLIC KEY----- + +PrivateKey=SECP521R1_RFC5114-Peer +-----BEGIN PRIVATE KEY----- +MIHuAgEAMBAGByqGSM49AgEGBSuBBAAjBIHWMIHTAgEBBEIAzuNIDYZFoX0knyd2 +0ouuYWlS0Xkf20tw98M3hzKqGyKShEi80dwkltQ1sBBIBm6+T3KQPDYbGp3BGT3C +ydCJG5ahgYkDgYYABAEOv6/G6F4I0kv//MGkUR2w5jS+6xtt7IxZOa5EdmIBr2IA +QwupfIrGoOnwizPOfp/utbpO5eDYFRDCQpW4oI0CNQCkpuwwDfniV7A3K156v+8J +NDZxmneIfrsLGM+Ambn0IStuMKFBnBjgKdNoY8ydRI9Nuk0qDmBxG+VykV+9T+8m +lQ== +-----END PRIVATE KEY----- + +PublicKey=SECP521R1_RFC5114-Peer-PUBLIC +-----BEGIN PUBLIC KEY----- +MIGbMBAGByqGSM49AgEGBSuBBAAjA4GGAAQBDr+vxuheCNJL//zBpFEdsOY0vusb +beyMWTmuRHZiAa9iAEMLqXyKxqDp8Iszzn6f7rW6TuXg2BUQwkKVuKCNAjUApKbs +MA354lewNyteer/vCTQ2cZp3iH67CxjPgJm59CErbjChQZwY4CnTaGPMnUSPTbpN +Kg5gcRvlcpFfvU/vJpU= +-----END PUBLIC KEY----- + + +Derive=SECP521R1_RFC5114 +PeerKey=SECP521R1_RFC5114-Peer-PUBLIC +SharedSecret=00CDEA89621CFA46B132F9E4CFE2261CDE2D4368EB5656634C7CC98C7A00CDE54ED1866A0DD3E6126C9D2F845DAFF82CEB1DA08F5D87521BB0EBECA77911169C20CC + +Derive=SECP521R1_RFC5114-Peer +PeerKey=SECP521R1_RFC5114-PUBLIC +SharedSecret=00CDEA89621CFA46B132F9E4CFE2261CDE2D4368EB5656634C7CC98C7A00CDE54ED1866A0DD3E6126C9D2F845DAFF82CEB1DA08F5D87521BB0EBECA77911169C20CC + +# Keys and shared secrets from RFC 5903 +PrivateKey=PRIME256V1_RFC5903 +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgyI8B9RDZrD9wopLa +ojFt5UTpqriv6EBJxiqcV4YtFDOhRANCAATa0LZTlCIc+bBR4f7KV4fQmN/mN/yQ +ue+UXQw3clgRgFJxoEYc24JS1h8cRW+j5Zqx9FszrM9fWDieBXe4mQuz +-----END PRIVATE KEY----- + +PublicKey=PRIME256V1_RFC5903-PUBLIC +-----BEGIN PUBLIC KEY----- +MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE2tC2U5QiHPmwUeH+yleH0Jjf5jf8 +kLnvlF0MN3JYEYBScaBGHNuCUtYfHEVvo+WasfRbM6zPX1g4ngV3uJkLsw== +-----END PUBLIC KEY----- + +PrivateKey=PRIME256V1_RFC5903-Peer +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgxu+cXXiuASoBEWSs +s5fOIIhoXY8Gv5vgsoOrRkdr7lOhRANCAATRLftSicjU+BIItwJwOYw0IpaXCgvM +t0xzb8dVRJS/Y1b788o2bMI+gVeFTBPFjWqsI/BGraMPg1PnTzMDmHKr +-----END PRIVATE KEY----- + +PublicKey=PRIME256V1_RFC5903-Peer-PUBLIC +-----BEGIN PUBLIC KEY----- +MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE0S37UonI1PgSCLcCcDmMNCKWlwoL +zLdMc2/HVUSUv2NW+/PKNmzCPoFXhUwTxY1qrCPwRq2jD4NT508zA5hyqw== +-----END PUBLIC KEY----- + + +Derive=PRIME256V1_RFC5903 +PeerKey=PRIME256V1_RFC5903-Peer-PUBLIC +SharedSecret=D6840F6B42F6EDAFD13116E0E12565202FEF8E9ECE7DCE03812464D04B9442DE + +Derive=PRIME256V1_RFC5903-Peer +PeerKey=PRIME256V1_RFC5903-PUBLIC +SharedSecret=D6840F6B42F6EDAFD13116E0E12565202FEF8E9ECE7DCE03812464D04B9442DE + +PrivateKey=SECP384R1_RFC5903 +-----BEGIN PRIVATE KEY----- +MIG2AgEAMBAGByqGSM49AgEGBSuBBAAiBIGeMIGbAgEBBDAJnzxwNNSixpmITXOj +daZ/diTvfGs8DxYGR7Z0FNzmVeNbU4BB5knuP674lng6sZShZANiAARmeELX0YCs +LN5vdPN1UfVXVcdkXCDvc+MWNP5ytMVe5t46yAistL20yIcyrulfQaqUgu0fwO65 +yvxJhGJcz8I/ZQMhSeDhRK2gJBgVNaDzjuufz/PCyUfa5ptMY0VzqBw= +-----END PRIVATE KEY----- + +PublicKey=SECP384R1_RFC5903-PUBLIC +-----BEGIN PUBLIC KEY----- +MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEZnhC19GArCzeb3TzdVH1V1XHZFwg73Pj +FjT+crTFXubeOsgIrLS9tMiHMq7pX0GqlILtH8Duucr8SYRiXM/CP2UDIUng4USt +oCQYFTWg847rn8/zwslH2uabTGNFc6gc +-----END PUBLIC KEY----- + +PrivateKey=SECP384R1_RFC5903-Peer +-----BEGIN PRIVATE KEY----- +MIG2AgEAMBAGByqGSM49AgEGBSuBBAAiBIGeMIGbAgEBBDBBywd5tL24XUeEZyX7 +7DyUMPq0bMjcUGCFXMm9oKopQuAwgxKRa47Slg5L1Vp0SPyhZANiAATlWNvvU+7N +49P8z8GuoIqJqYdHXRL9lQ2Dz6QXMrxQnQ0axDoDNt75b9pB0HdKNXHc++x6rPMZ +ZHIWnoOEMDZ/Zu6+PG5wxBbdXwxodZ3R//g/pAFCIJ3/XqrZbbnmOGw= +-----END PRIVATE KEY----- + +PublicKey=SECP384R1_RFC5903-Peer-PUBLIC +-----BEGIN PUBLIC KEY----- +MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAE5Vjb71PuzePT/M/BrqCKiamHR10S/ZUN +g8+kFzK8UJ0NGsQ6Azbe+W/aQdB3SjVx3PvseqzzGWRyFp6DhDA2f2buvjxucMQW +3V8MaHWd0f/4P6QBQiCd/16q2W255jhs +-----END PUBLIC KEY----- + + +Derive=SECP384R1_RFC5903 +PeerKey=SECP384R1_RFC5903-Peer-PUBLIC +SharedSecret=11187331C279962D93D604243FD592CB9D0A926F422E47187521287E7156C5C4D603135569B9E9D09CF5D4A270F59746 + +Derive=SECP384R1_RFC5903-Peer +PeerKey=SECP384R1_RFC5903-PUBLIC +SharedSecret=11187331C279962D93D604243FD592CB9D0A926F422E47187521287E7156C5C4D603135569B9E9D09CF5D4A270F59746 + +PrivateKey=SECP521R1_RFC5903 +-----BEGIN PRIVATE KEY----- +MIHuAgEAMBAGByqGSM49AgEGBSuBBAAjBIHWMIHTAgEBBEIAN63pMZqJ9Nq9s+9B +GqzMpRI8YayrV7U5Pc5HYIFyoJWqhaMP4cKVLGdx2Te6l3f1lXsmObqwckYvaMJ6 +VzgtSlKhgYkDgYYABAAVQX6E2/KMCtPCeHEzSdx98VPIl6GJG9mLq0NXyey+4eO/ +QuALjjgK6uV8LRB1ZJQYhZQq9af0YBcjxBldF2ztPgF8riC2ZB0u62lXhtjJRhRi +OdCZ4Y4dWlFMc518tKEK2KeIAVrEBdd5ncdee31bbPImGmp/FQdDi/Ab62yjkm+V +gg== +-----END PRIVATE KEY----- + +PublicKey=SECP521R1_RFC5903-PUBLIC +-----BEGIN PUBLIC KEY----- +MIGbMBAGByqGSM49AgEGBSuBBAAjA4GGAAQAFUF+hNvyjArTwnhxM0ncffFTyJeh +iRvZi6tDV8nsvuHjv0LgC444CurlfC0QdWSUGIWUKvWn9GAXI8QZXRds7T4BfK4g +tmQdLutpV4bYyUYUYjnQmeGOHVpRTHOdfLShCtiniAFaxAXXeZ3HXnt9W2zyJhpq +fxUHQ4vwG+tso5JvlYI= +-----END PUBLIC KEY----- + +PrivateKey=SECP521R1_RFC5903-Peer +-----BEGIN PRIVATE KEY----- +MIHuAgEAMBAGByqGSM49AgEGBSuBBAAjBIHWMIHTAgEBBEIBRbqZqEevQ3k/3Q6H +LnzfoWvjD9x4D5e8zD8Hg4AgHpxnfWALNDdXo72/KjFj5ML4acynRYqkpO/8MR9c +sVFoXrmhgYkDgYYABADQs5daxLeZ9b6hbV4T6a+XHV6bmEyfOXKLXlc5c1ohm5fD +VkNq3G6VuwNS9r5kpsKRLU7y0EM87SthcWQAEtlGDwFcaCJjg5VuO9Bm55e2I8J8 +4OrC9VGhDCxyTZhSB3uHIgtlNsXECKHSrruOhtZ4rknLVwkfRzIpZXmrRPzRfw/F +ag== +-----END PRIVATE KEY----- + +PublicKey=SECP521R1_RFC5903-Peer-PUBLIC +-----BEGIN PUBLIC KEY----- +MIGbMBAGByqGSM49AgEGBSuBBAAjA4GGAAQA0LOXWsS3mfW+oW1eE+mvlx1em5hM +nzlyi15XOXNaIZuXw1ZDatxulbsDUva+ZKbCkS1O8tBDPO0rYXFkABLZRg8BXGgi +Y4OVbjvQZueXtiPCfODqwvVRoQwsck2YUgd7hyILZTbFxAih0q67jobWeK5Jy1cJ +H0cyKWV5q0T80X8PxWo= +-----END PUBLIC KEY----- + + +Derive=SECP521R1_RFC5903 +PeerKey=SECP521R1_RFC5903-Peer-PUBLIC +SharedSecret=01144C7D79AE6956BC8EDB8E7C787C4521CB086FA64407F97894E5E6B2D79B04D1427E73CA4BAA240A34786859810C06B3C715A3A8CC3151F2BEE417996D19F3DDEA + +Derive=SECP521R1_RFC5903-Peer +PeerKey=SECP521R1_RFC5903-PUBLIC +SharedSecret=01144C7D79AE6956BC8EDB8E7C787C4521CB086FA64407F97894E5E6B2D79B04D1427E73CA4BAA240A34786859810C06B3C715A3A8CC3151F2BEE417996D19F3DDEA + +# Keys and shared secrets from RFC 7027 +PrivateKey=BRAINPOOLP256R1_RFC7027 +-----BEGIN PRIVATE KEY----- +MIGIAgEAMBQGByqGSM49AgEGCSskAwMCCAEBBwRtMGsCAQEEIIHbHuEAFQ/y6jON +cIJxvjgwDLVCQdeZUPd7BjA5gE8doUQDQgAERBBukT+SvAKhcF2ZU6hBTbleGqpJ +6B2ehfkpqOMQC+WKtIRvEcrMtzzknL3RIPWpAKaf0ywnIiP3ie8Q6wib3A== +-----END PRIVATE KEY----- + +PublicKey=BRAINPOOLP256R1_RFC7027-PUBLIC +-----BEGIN PUBLIC KEY----- +MFowFAYHKoZIzj0CAQYJKyQDAwIIAQEHA0IABEQQbpE/krwCoXBdmVOoQU25Xhqq +SegdnoX5KajjEAvlirSEbxHKzLc85Jy90SD1qQCmn9MsJyIj94nvEOsIm9w= +-----END PUBLIC KEY----- + +PrivateKey=BRAINPOOLP256R1_RFC7027-Peer +-----BEGIN PRIVATE KEY----- +MIGIAgEAMBQGByqGSM49AgEGCSskAwMCCAEBBwRtMGsCAQEEIFXkC8QeN+PirSXD +xmVFEf+oR0qRoAMgh1k4UtPn12vToUQDQgAEjS1ojGz5PhFgrQTMRCkRfcLEGCXh +6fygrd005vGzn3uZDFdSCBK+USZB5HA0gyEGvH0+jdDkx/ETbXAGVHzsag== +-----END PRIVATE KEY----- + +PublicKey=BRAINPOOLP256R1_RFC7027-Peer-PUBLIC +-----BEGIN PUBLIC KEY----- +MFowFAYHKoZIzj0CAQYJKyQDAwIIAQEHA0IABI0taIxs+T4RYK0EzEQpEX3CxBgl +4en8oK3dNObxs597mQxXUggSvlEmQeRwNIMhBrx9Po3Q5MfxE21wBlR87Go= +-----END PUBLIC KEY----- + + +Derive=BRAINPOOLP256R1_RFC7027 +PeerKey=BRAINPOOLP256R1_RFC7027-Peer-PUBLIC +SharedSecret=89AFC39D41D3B327814B80940B042590F96556EC91E6AE7939BCE31F3A18BF2B + +Derive=BRAINPOOLP256R1_RFC7027-Peer +PeerKey=BRAINPOOLP256R1_RFC7027-PUBLIC +SharedSecret=89AFC39D41D3B327814B80940B042590F96556EC91E6AE7939BCE31F3A18BF2B + +PrivateKey=BRAINPOOLP384R1_RFC7027 +-----BEGIN PRIVATE KEY----- +MIG6AgEAMBQGByqGSM49AgEGCSskAwMCCAEBCwSBnjCBmwIBAQQwHiD14EiliG8f +FXx06RveK5jItS1Y5QA9VwU/xLC9ZdbxXrXR7hYQ34cHlRQ2J9BCoWQDYgAEaLZl +3ZHBlYAGUM3TY8Yl9OdC6BNGZ7dnsbR2eTWI+IWraYyFLUpud6JS1jgPyvBoVbyR +o5yewB3uNgF7fWc6kxI20vH1yDlC0Enj+iBgdJPg0Dj/L9MMKrZ9Fchff6pZ +-----END PRIVATE KEY----- + +PublicKey=BRAINPOOLP384R1_RFC7027-PUBLIC +-----BEGIN PUBLIC KEY----- +MHowFAYHKoZIzj0CAQYJKyQDAwIIAQELA2IABGi2Zd2RwZWABlDN02PGJfTnQugT +Rme3Z7G0dnk1iPiFq2mMhS1KbneiUtY4D8rwaFW8kaOcnsAd7jYBe31nOpMSNtLx +9cg5QtBJ4/ogYHST4NA4/y/TDCq2fRXIX3+qWQ== +-----END PUBLIC KEY----- + +PrivateKey=BRAINPOOLP384R1_RFC7027-Peer +-----BEGIN PRIVATE KEY----- +MIG6AgEAMBQGByqGSM49AgEGCSskAwMCCAEBCwSBnjCBmwIBAQQwAyZAvGADxZJg +9yUMPbWM5kf5jhJgrM5KzaPdhp904B+LpeAyQwnbapgxSXq6yWZwoWQDYgAETUQy +byaaWXpbWLulZdpVVu1/2aip63bCX0bbadGdyM5q0Y5ASxVziyCG3zfnHR60YtaS +E23lbL6Tv1+jGI71i8ijoOxsHhUaIQOKQukYUym1snWQPRkvjU4fMv6cx4xI +-----END PRIVATE KEY----- + +PublicKey=BRAINPOOLP384R1_RFC7027-Peer-PUBLIC +-----BEGIN PUBLIC KEY----- +MHowFAYHKoZIzj0CAQYJKyQDAwIIAQELA2IABE1EMm8mmll6W1i7pWXaVVbtf9mo +qet2wl9G22nRncjOatGOQEsVc4sght835x0etGLWkhNt5Wy+k79foxiO9YvIo6Ds +bB4VGiEDikLpGFMptbJ1kD0ZL41OHzL+nMeMSA== +-----END PUBLIC KEY----- + + +Derive=BRAINPOOLP384R1_RFC7027 +PeerKey=BRAINPOOLP384R1_RFC7027-Peer-PUBLIC +SharedSecret=0BD9D3A7EA0B3D519D09D8E48D0785FB744A6B355E6304BC51C229FBBCE239BBADF6403715C35D4FB2A5444F575D4F42 + +Derive=BRAINPOOLP384R1_RFC7027-Peer +PeerKey=BRAINPOOLP384R1_RFC7027-PUBLIC +SharedSecret=0BD9D3A7EA0B3D519D09D8E48D0785FB744A6B355E6304BC51C229FBBCE239BBADF6403715C35D4FB2A5444F575D4F42 + +PrivateKey=BRAINPOOLP512R1_RFC7027 +-----BEGIN PRIVATE KEY----- +MIHsAgEAMBQGByqGSM49AgEGCSskAwMCCAEBDQSB0DCBzQIBAQRAFjAv8Nu7Wo1z +PatxQcG0WsvIcVk5Z39qVoUKOL2HvVmwnoAnlgn/Mz651MBhIx+yb5LusEmCpfHR +dkytV2ZUIqGBhQOBggAECkIFF+QGqsCs3OkPzXFIdxjTuVPv1/vsX38n4oxhSZmT +l+keAp4GRX2y0+ZAZos5LCp+c3p/C/BENtEWQP0J/XLmiC6NsoqtNiN80l1YDbI3 +g5YcjcUt+i7BOK1HKg/O84h89itiOyqH3lxYgwHqPl/CabNztgck9egqatFH/ec= +-----END PRIVATE KEY----- + +PublicKey=BRAINPOOLP512R1_RFC7027-PUBLIC +-----BEGIN PUBLIC KEY----- +MIGbMBQGByqGSM49AgEGCSskAwMCCAEBDQOBggAECkIFF+QGqsCs3OkPzXFIdxjT +uVPv1/vsX38n4oxhSZmTl+keAp4GRX2y0+ZAZos5LCp+c3p/C/BENtEWQP0J/XLm +iC6NsoqtNiN80l1YDbI3g5YcjcUt+i7BOK1HKg/O84h89itiOyqH3lxYgwHqPl/C +abNztgck9egqatFH/ec= +-----END PUBLIC KEY----- + +PrivateKey=BRAINPOOLP512R1_RFC7027-Peer +-----BEGIN PRIVATE KEY----- +MIHsAgEAMBQGByqGSM49AgEGCSskAwMCCAEBDQSB0DCBzQIBAQRAIw4Y4bzIijYv +pU5Oo5AgCSkvf4AzYk/UcbXYrOSdEs+rvBmWPauOLx66AL/7KeTXLRPyIkVi9AXL +gFA2ZrJUKaGBhQOBggAEnUX2beXWfi5ttuk6Wc4LtIEGCX/3iggd54HNsx/OjMuq +6o3UMgxBGfHpzUN6Lqs3MfqWaKsmjYcd7aVaVHMZny/cMTCVvN1fs6kWNvB6lZyO +hrVjah6TDoOWBJy0gZYdNlzBFFOgbHGYNUdbEstS/Dw4O8414n7xlFErcYdihfo= +-----END PRIVATE KEY----- + +PublicKey=BRAINPOOLP512R1_RFC7027-Peer-PUBLIC +-----BEGIN PUBLIC KEY----- +MIGbMBQGByqGSM49AgEGCSskAwMCCAEBDQOBggAEnUX2beXWfi5ttuk6Wc4LtIEG +CX/3iggd54HNsx/OjMuq6o3UMgxBGfHpzUN6Lqs3MfqWaKsmjYcd7aVaVHMZny/c +MTCVvN1fs6kWNvB6lZyOhrVjah6TDoOWBJy0gZYdNlzBFFOgbHGYNUdbEstS/Dw4 +O8414n7xlFErcYdihfo= +-----END PUBLIC KEY----- + + +Derive=BRAINPOOLP512R1_RFC7027 +PeerKey=BRAINPOOLP512R1_RFC7027-Peer-PUBLIC +SharedSecret=A7927098655F1F9976FA50A9D566865DC530331846381C87256BAF3226244B76D36403C024D7BBF0AA0803EAFF405D3D24F11A9B5C0BEF679FE1454B21C4CD1F + +Derive=BRAINPOOLP512R1_RFC7027-Peer +PeerKey=BRAINPOOLP512R1_RFC7027-PUBLIC +SharedSecret=A7927098655F1F9976FA50A9D566865DC530331846381C87256BAF3226244B76D36403C024D7BBF0AA0803EAFF405D3D24F11A9B5C0BEF679FE1454B21C4CD1F +