aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJack Lloyd <[email protected]>2016-01-03 14:15:15 -0500
committerJack Lloyd <[email protected]>2016-01-03 14:15:15 -0500
commit4658f3094d652a012c29837910aef89788654b55 (patch)
treef7b680f22394656921c9826cca36333628cd44fe
parenta1deceb37da0375c62abeca2411f5e0670a553e8 (diff)
Add ECDH tests
Only has vectors for NIST curves (data taken from NIST CAVS file)
-rw-r--r--src/tests/data/pubkey/ecdh.vec508
-rw-r--r--src/tests/test_dh.cpp4
-rw-r--r--src/tests/test_ecdh.cpp74
-rw-r--r--src/tests/test_pubkey.cpp6
-rw-r--r--src/tests/test_pubkey.h7
5 files changed, 592 insertions, 7 deletions
diff --git a/src/tests/data/pubkey/ecdh.vec b/src/tests/data/pubkey/ecdh.vec
new file mode 100644
index 000000000..0b2bf7f70
--- /dev/null
+++ b/src/tests/data/pubkey/ecdh.vec
@@ -0,0 +1,508 @@
+
+# Derived from NIST CAVS file 14.1 (Generated on Mon Nov 19 10:52:17 2012)
+# http://csrc.nist.gov/groups/STM/cavp/documents/components/ecccdhtestvectors.zip
+
+[secp192r1]
+Secret = 0xf17d3fea367b74d340851ca4270dcb24c271f445bed9d527
+CounterKey = 0442ea6dd9969dd2a61fea1aac7f8e98edcc896c6e55857cc0dfbe5d7c61fac88b11811bde328e8a0d12bf01a9d204b523
+K = 803d8ab2e5b6e6fca715737c3a82f7ce3c783124f6d51cd0
+
+Secret = 0x56e853349d96fe4c442448dacb7cf92bb7a95dcf574a9bd5
+CounterKey = 04deb5712fa027ac8d2f22c455ccb73a91e17b6512b5e030e77e2690a02cc9b28708431a29fb54b87b1f0c14e011ac2125
+K = c208847568b98835d7312cef1f97f7aa298283152313c29d
+
+Secret = 0xc6ef61fe12e80bf56f2d3f7d0bb757394519906d55500949
+CounterKey = 044edaa8efc5a0f40f843663ec5815e7762dddc008e663c20f0a9f8dc67a3e60ef6d64b522185d03df1fc0adfd42478279
+K = 87229107047a3b611920d6e3b2c0c89bea4f49412260b8dd
+
+Secret = 0xe6747b9c23ba7044f38ff7e62c35e4038920f5a0163d3cda
+CounterKey = 048887c276edeed3e9e866b46d58d895c73fbd80b63e382e8804c5097ba6645e16206cfb70f7052655947dd44a17f1f9d5
+K = eec0bed8fc55e1feddc82158fd6dc0d48a4d796aaf47d46c
+
+Secret = 0xbeabedd0154a1afcfc85d52181c10f5eb47adc51f655047d
+CounterKey = 040d045f30254adc1fcefa8a5b1f31bf4e739dd327cd18d594542c314e41427c08278a08ce8d7305f3b5b849c72d8aff73
+K = 716e743b1b37a2cd8479f0a3d5a74c10ba2599be18d7e2f4
+
+Secret = 0xcf70354226667321d6e2baf40999e2fd74c7a0f793fa8699
+CounterKey = 04fb35ca20d2e96665c51b98e8f6eb3d79113508d8bccd4516368eec0d5bfb847721df6aaff0e5d48c444f74bf9cd8a5a7
+K = f67053b934459985a315cb017bf0302891798d45d0e19508
+
+Secret = 0xfe942515237fffdd7b4eb5c64909eee4856a076cdf12bae2
+CounterKey = 04824752960c1307e5f13a83da21c7998ca8b5b00b9549f6d0bc52d91e234363bc32ee0b6778f25cd8c1847510f4348b94
+K = 75822971193edd472bf30151a782619c55ad0b279c9303dd
+
+Secret = 0x33fed10492afa5bea0333c0af12cac940c4d222455bcd0fe
+CounterKey = 0410bb57020291141981f833b4749e5611034b308e84011d21e1cacd6b7bd17ed8ddb50b6aee0654c35f2d0eddc1cffcf6
+K = 67cba2cbb69ee78bf1abafb0e6fbe33fa2094c128d59652d
+
+Secret = 0xf3557c5d70b4c7954960c33568776adbe8e43619abe26b13
+CounterKey = 045192fce4185a7758ea1bc56e0e4f4e8b2dce32348d0dced120989981beaaf0006d88a96e7971a2fa3a33ba46047fc7ba
+K = cf99a2770a386ca0137d1eca0a226e484297ac3c513f3631
+
+Secret = 0x586cfba1c6e81766ed52828f177b1be14ebbc5b83348c311
+CounterKey = 0426d019dbe279ead01eed143a91601ada26e2f42225b1c62b6ca653f08272e0386fc9421fbd580093d7ae6301bca94476
+K = 576331e2b4fb38a112810e1529834de8307fb0a0d2756877
+
+Secret = 0xcad8100603a4f65be08d8fc8a1b7e884c5ff65deb3c96d99
+CounterKey = 04539bc40fe20a0fb267888b647b03eaaf6ec20c02a1e1f8c869095e5bb7b4d44c3278a7ee6beca397c45246da9a34c8be
+K = 902f4501916a0dd945554c3a37b3d780d375a6da713197c4
+
+Secret = 0x1edd879cc5c79619cae6c73a691bd5a0395c0ef3b356fcd2
+CounterKey = 045d343ddb96318fb4794d10f6c573f99fee5d0d57b996250f99fbdf9d97dd88ad410235dac36e5b92ce2824b8e587a82c
+K = 46e4de335054d429863218ae33636fc9b89c628b64b506c7
+
+Secret = 0x460e452273fe1827602187ad3bebee65cb84423bb4f47537
+CounterKey = 048d3db9bdce137ffbfb891388c37df6c0cbc90aa5e5376220135d30b5cb660eef8764ffc744f15c1b5d6dc06ba4416d37
+K = 1bfe9e5a20ac7a38d8f605b425bb9030be31ef97c101c76c
+
+Secret = 0xb970365008456f8758ecc5a3b33cf3ae6a8d568107a52167
+CounterKey = 049e0a6949519c7f5be68c0433c5fdf13064aa13fb29483dc3e1c8ba63e1f471db23185f50d9c871edea21255b3a63b4b7
+K = 0e8c493a4adc445dc9288a3b9b272599224054592d7265b3
+
+Secret = 0x59c15b8a2464e41dfe4371c7f7dadf470ae425544f8113bd
+CounterKey = 04be088238902e9939b3d054eeeb8492daf4bdcf09a2ab77f158d6749a3a923dc80440f2661fd35b651617e65294b46375
+K = 0f1991086b455ded6a1c4146f7bf59fe9b495de566ebc6bf
+
+Secret = 0xa6e9b885c66b959d1fc2708d591b6d3228e49eb98f726d61
+CounterKey = 04bf5ae05025e1be617e666d87a4168363873d5761b376b503e1e6e38b372b6bee0ff5b3502d83735e3b2c26825e4f0fcc
+K = b30f2127c34df35aaa91dbf0bbe15798e799a03ed11698c1
+
+Secret = 0xbdb754096ffbfbd8b0f3cb046ccb7ca149c4e7192067a3ee
+CounterKey = 046cc4feed84c7ab0d09005d660ed34de6955a9461c4138d1131225f33864ed48da06fa45a913b46cf42557742e35085e6
+K = 64a5c246599d3e8177a2402a1110eb81e6c456ab4edb5127
+
+Secret = 0xd5bcf2534dafc3d99964c7bd63ab7bd15999fe56dd969c42
+CounterKey = 0436157315bee7afedded58c4e8ba14d3421c401e51135bcc937c297ca703f77c52bb062d8ce971db84097ba0c753a418f
+K = 017b8ca53c82fab163da2ab783966a39e061b32c8cfa334d
+
+Secret = 0x43d4b9df1053be5b4268104c02244d3bf9594b010b46a8b2
+CounterKey = 0498464d47f0256f8292e027e8c92582ea77cf9051f5ce8e5d449552ef7578be96236fe5ed9d0643c0bb6c5a9134b0108d
+K = 340ef3db3dbebdd91c62c3d4e1a3da2c7c52a3338b865259
+
+Secret = 0x94cac2c2ca714746401670d94edbf3f677867b5a03bee7ad
+CounterKey = 04563eb66c334cf6f123bf04c7803b48a3110214237e983bf50f351104819199ef07c9a6051d20758f3af79027ea66a53f
+K = 2162144921df5103d0e6a650fb13fd246f4738d0896ce92f
+
+Secret = 0x2a3a9e33c8cc3107a9f9265c3bdea1206570e86f92ac7014
+CounterKey = 0486828c4ac92b5507618aec7873a1d4fc6543c5be33cf3078b22ca72437545e10d6d4f052422eb898b737a4b8543ee550
+K = 4c69e7feed4b11159adfc16a6047a92572ea44e0740b23af
+
+Secret = 0x4a6b78a98ac98fa8e99a8ece08ec0251125f85c6fd0e289b
+CounterKey = 046700a102437781a9581da2bc25ced5abf419da91d3c803df71396c9cf08bcd91854e3e6e42d8c657ce0f27ab77a9dc4b
+K = 46072acefd67bff50de355ca7a31fa6be59f26e467587259
+
+Secret = 0xc5a6491d78844d6617ef33be6b8bd54da221450885d5950f
+CounterKey = 04a82f354cf97bee5d22dc6c079f2902ead44d96a8f614f178a654a9aa8a1a0802f2ce0ee8a0f4ebe96dee1b37464b1ff2
+K = ec5580eabca9f3389d2b427ddf6e49e26d629afd03fa766e
+
+Secret = 0x2ba2703c5e23f6463c5b88dc37292fabd3399b5e1fb67c05
+CounterKey = 043cec21b28668a12a2cf78e1a8e55d0efe065152fffc347181029557beba4ff1992bd21c23cb4825f6dae70e3318fd1ca
+K = 7f3929dd3cbf7673bc30d859d90b880307475f800660ea32
+
+Secret = 0x836118c6248f882e9147976f764826c1a28755a6102977d5
+CounterKey = 047082644715b8b731f8228b5118e7270d34d181f361a221fc464649d6c88ca89614488a1cc7b8442bb42f9fb3020a3d76
+K = 72e88f3ea67d46d46dbf83926e7e2a6b85b54536741e6d2c
+
+[secp224r1]
+Secret = 0x8346a60fc6f293ca5a0d2af68ba71d1dd389e5e40837942df3e43cbd
+CounterKey = 04af33cd0629bc7e996320a3f40368f74de8704fa37b8fab69abaae280882092ccbba7930f419a8a4f9bb16978bbc3838729992559a6f2e2d7
+K = 7d96f9a3bd3c05cf5cc37feb8b9d5209d5c2597464dec3e9983743e8
+
+Secret = 0x043cb216f4b72cdf7629d63720a54aee0c99eb32d74477dac0c2f73d
+CounterKey = 0413bfcd4f8e9442393cab8fb46b9f0566c226b22b37076976f0617a46eeb2427529b288c63c2f8963c1e473df2fca6caa90d52e2f8db56dd4
+K = ee93ce06b89ff72009e858c68eb708e7bc79ee0300f73bed69bbca09
+
+Secret = 0x5ad0dd6dbabb4f3c2ea5fe32e561b2ca55081486df2c7c15c9622b08
+CounterKey = 04756dd806b9d9c34d899691ecb45b771af468ec004486a0fdd283411e4d02c2ca617bb2c5d9613f25dd72413d229fd2901513aa29504eeefb
+K = 3fcc01e34d4449da2a974b23fc36f9566754259d39149790cfa1ebd3
+
+Secret = 0x0aa6ff55a5d820efcb4e7d10b845ea3c9f9bc5dff86106db85318e22
+CounterKey = 040f537bf1c1122c55656d25e8aa8417e0b44b1526ae0523144f9921c4f79b26d30e491a773696cc2c79b4f0596bc5b9eebaf394d162fb8684
+K = 49129628b23afcef48139a3f6f59ff5e9811aa746aa4ff33c24bb940
+
+Secret = 0xefe6e6e25affaf54c98d002abbc6328da159405a1b752e32dc23950a
+CounterKey = 042b3631d2b06179b3174a100f7f57131eeea8947be0786c3dc64b223983de29ae3dad31adc0236c6de7f14561ca2ea083c5270c78a2e6cbc0
+K = fcdc69a40501d308a6839653a8f04309ec00233949522902ffa5eac6
+
+Secret = 0x61cb2932524001e5e9eeed6df7d9c8935ee3322029edd7aa8acbfd51
+CounterKey = 044511403de29059f69a475c5a6a5f6cabed5d9f014436a8cb70a023387d2d1b62aa046df9340f9c37a087a06b32cf7f08a223f992812a828b
+K = 827e9025cb62e0e837c596063f3b9b5a0f7afd8d8783200086d61ec1
+
+Secret = 0x8c7ace347171f92def98d845475fc82e1d1496da81ee58f505b985fa
+CounterKey = 04314a0b26dd31c248845d7cc17b61cad4608259bed85a58d1f1ffd37866e4b350352e119eecada382907f3619fd748ea73ae4899dfd496302
+K = 335ba51228d94acbed851ca7821c801d5cb1c7975d7aa90a7159f8fa
+
+Secret = 0x382feb9b9ba10f189d99e71a89cdfe44cb554cec13a212840977fb68
+CounterKey = 04abe6843beec2fd9e5fb64730d0be4d165438ce922ed75dd80b4603e56afe8673a96c4ba9900ad85995e631e436c6cc88a2c2b47b7c4886b8
+K = 8c2e627594206b34f7356d3426eb3d79f518ef843fbe94014cceace3
+
+Secret = 0xe0d62035101ef487c485c60fb4500eebe6a32ec64dbe97dbe0232c46
+CounterKey = 0413cf9d6d2c9aae8274c27d446afd0c888ffdd52ae299a35984d4f527dcbee75b515751f8ee2ae355e8afd5de21c62a939a6507b538cbc4af
+K = 632abb662728dbc994508873d5c527ca5ef923c0d31fa6c47ef4c825
+
+Secret = 0xb96ade5b73ba72aa8b6e4d74d7bf9c58e962ff78eb542287c7b44ba2
+CounterKey = 04965b637c0dfbc0cf954035686d70f7ec30929e664e521dbaa228065982a58ff61bc90019bbcbb5875d3863db0bc2a1fa34b0ad4de1a83f99
+K = 34641141aab05ef58bd376d609345901fb8f63477c6be9097f037f1f
+
+Secret = 0xa40d7e12049c71e6522c7ff2384224061c3a457058b310557655b854
+CounterKey = 0473cc645372ca2e71637cda943d8148f3382ab6dd0f2e1a49da94e134df5c355c23e6e232ebc3bee2ab1873ee0d83e3382f8e6fe613f6343c
+K = 4f74ac8507501a32bfc5a78d8271c200e835966e187e8d00011a8c75
+
+Secret = 0xad2519bc724d484e02a69f05149bb047714bf0f5986fac2e222cd946
+CounterKey = 04546578216250354e449e21546dd11cd1c5174236739acad9ce0f4512d2a22fcd66d1abedc767668327c5cb9c599043276239cf3c8516af24
+K = ad09c9ae4d2324ea81bb555b200d3c003e22a6870ee03b52df49e4de
+
+Secret = 0x3d312a9b9d8ed09140900bbac1e095527ebc9e3c6493bcf3666e3a29
+CounterKey = 041d46b1dc3a28123cb51346e67baec56404868678faf7d0e8b2afa22a0ec9e65ec97e218373e7fc115c2274d5b829a60d93f71e01d58136c3
+K = ef029c28c68064b8abd2965a38c404fb5e944ace57e8638daba9d3cd
+
+Secret = 0x8ce0822dc24c153995755ac350737ef506641c7d752b4f9300c612ed
+CounterKey = 04266d038cc7a4fe21f6c976318e827b82bb5b8f7443a55298136506e0df123d98a7a20bbdf3943df2e3563422f8c0cf74d53aaabdd7c973ba
+K = f83c16661dfcbad021cc3b5a5af51d9a18db4653866b3ff90787ce3e
+
+Secret = 0x0ff9b485325ab77f29e7bc379fed74bfac859482da0dee7528c19db2
+CounterKey = 04eb0a09f7a1c236a61f595809ec5670efd92e4598d5e613e092cdfdca50787ae2f2f15b88bc10f7b5f0aee1418373f16153aebd1fba54288d
+K = f51258c63f232e55a66aa25ebd597b2018d1052c02eeb63866758005
+
+Secret = 0x19cf5ff6306467f28b9fe0675a43c0582552c8c12e59ce7c38f292b1
+CounterKey = 046b2f6b18a587f562ffc61bd9b0047322286986a78f1fd139b84f7c247096908e4615266be59a53cd655515056ff92370a6271a5d3823d704
+K = 7fdc969a186ff18429f2a276dac43beea21182d82ce2e5a0876552b1
+
+Secret = 0x90a15368e3532c0b1e51e55d139447c2c89bc160719d697291ea7c14
+CounterKey = 04328101ba826acd75ff9f34d5574ce0dbc92f709bad8d7a33c47940c1df39f1ea88488c55d5538160878b9ced18a887ea261dd712d14024ff
+K = 3d60ab6db2b3ffe2d29ccff46d056e54230cf34982e241556ed2920c
+
+Secret = 0x8e0838e05e1721491067e1cabc2e8051b290e2616eec427b7121897d
+CounterKey = 040081e34270871e2ebbd94183f617b4ae15f0416dd634fe6e934cf3c03a1e9f38a7b90b7317d26b9f6311063ab58b268cf489b2e50386d5d6
+K = 9116d72786f4db5df7a8b43078c6ab9160d423513d35ea5e2559306d
+
+Secret = 0x38106e93f16a381adb1d72cee3da66ae462ad4bbfea9ecdf35d0814e
+CounterKey = 042623632fdf0bd856805a69aa186d4133ef5904e1f655a972d66cce072cef9728dd06fb8b50150f529b695076d4507983912585c89bd0682e
+K = 207c53dcefac789aaa0276d9200b3a940ce5f2296f4cb2e81a185d3d
+
+Secret = 0xe5d1718431cf50f6cbd1bc8019fa16762dfa12c989e5999977fb4ea2
+CounterKey = 048ee4d1dcc31dee4bf6fe21ca8a587721d910acfb122c16c2a77a81524ebf323fff04eb477069a0ac68b345f6b1ae134efc31940e513cb99f
+K = 10e467da34f48ad7072005bccd6da1b2ba3f71eafa1c393842f91d74
+
+Secret = 0x3d635691b62a9a927c633951c9369c8862bd2119d30970c2644727d6
+CounterKey = 0497dcbe6d28335882a6d193cc54a1063dd0775dc328565300bb99e691dad11dd5ece8cfd9f97c9a526e4a1506e6355969ee87826fc38bcd24
+K = 82fd2f9c60c4f999ac00bbe64bfc11da8ff8cda2e499fced65230bb1
+
+Secret = 0xacf3c85bbdc379f02f5ea36e7f0f53095a9e7046a28685a8659bf798
+CounterKey = 04ce9126dd53972dea1de1d11efef900de34b661859c4648c5c0e534f7e113b6f2c1659d07f2716e64a83c18bbce344dd2121fe85168eae085
+K = 530f7e7fc932613b29c981f261cb036cba3f1df3864e0e1cba2685a2
+
+Secret = 0xcffd62cb00a0e3163fbf2c397fadc9618210f86b4f54a675287305f0
+CounterKey = 0484419967d6cfad41e75a02b6da605a97949a183a97c306c4b46e66a55cc9b259718b1bc8b144fde633a894616ffd59a3a6d5d8e942c7cbb7
+K = 49f6fd0139248ef4df2db05d1319bd5b1489e249827a45a8a5f12427
+
+Secret = 0x85f903e43943d13c68932e710e80de52cbc0b8f1a1418ea4da079299
+CounterKey = 047c9cac35768063c2827f60a7f51388f2a8f4b7f8cd736bd6bc33747729ee6b849c6025d577dbcc55fbd17018f4edbc2ef105b004d6257bcd
+K = 8f7e34e597ae8093b98270a74a8dfcdbed457f42f43df487c5487161
+
+Secret = 0xcce64891a3d0129fee0d4a96cfbe7ac470b85e967529057cfa31a1d9
+CounterKey = 04085a7642ad8e59b1a3e8726a7547afbecffdac1dab7e57230c6a9df4f91c36d881fe9b8047a3530713554a1af4c25c5a8e654dcdcf689f2e
+K = 71954e2261e8510be1a060733671d2e9d0a2d012eb4e09556d697d2a
+
+[secp256r1]
+Secret = 0x7d7dc5f71eb29ddaf80d6214632eeae03d9058af1fb6d22ed80badb62bc1a534
+CounterKey = 04700c48f77f56584c5cc632ca65640db91b6bacce3a4df6b42ce7cc838833d287db71e509e3fd9b060ddb20ba5c51dcc5948d46fbf640dfe0441782cab85fa4ac
+K = 46fc62106420ff012e54a434fbdd2d25ccc5852060561e68040dd7778997bd7b
+
+Secret = 0x38f65d6dce47676044d58ce5139582d568f64bb16098d179dbab07741dd5caf5
+CounterKey = 04809f04289c64348c01515eb03d5ce7ac1a8cb9498f5caa50197e58d43a86a7aeb29d84e811197f25eba8f5194092cb6ff440e26d4421011372461f579271cda3
+K = 057d636096cb80b67a8c038c890e887d1adfa4195e9b3ce241c8a778c59cda67
+
+Secret = 0x1accfaf1b97712b85a6f54b148985a1bdc4c9bec0bd258cad4b3d603f49f32c8
+CounterKey = 04a2339c12d4a03c33546de533268b4ad667debf458b464d77443636440ee7fec3ef48a3ab26e20220bcda2c1851076839dae88eae962869a497bf73cb66faf536
+K = 2d457b78b4614132477618a5b077965ec90730a8c81a1c75d6d4ec68005d67ec
+
+Secret = 0x207c43a79bfee03db6f4b944f53d2fb76cc49ef1c9c4d34d51b6c65c4db6932d
+CounterKey = 04df3989b9fa55495719b3cf46dccd28b5153f7808191dd518eff0c3cff2b705ed422294ff46003429d739a33206c8752552c8ba54a270defc06e221e0feaf6ac4
+K = 96441259534b80f6aee3d287a6bb17b5094dd4277d9e294f8fe73e48bf2a0024
+
+Secret = 0x59137e38152350b195c9718d39673d519838055ad908dd4757152fd8255c09bf
+CounterKey = 0441192d2813e79561e6a1d6f53c8bc1a433a199c835e141b05a74a97b0faeb9221af98cc45e98a7e041b01cf35f462b7562281351c8ebf3ffa02e33a0722a1328
+K = 19d44c8d63e8e8dd12c22a87b8cd4ece27acdde04dbf47f7f27537a6999a8e62
+
+Secret = 0xf5f8e0174610a661277979b58ce5c90fee6c9b3bb346a90a7196255e40b132ef
+CounterKey = 0433e82092a0f1fb38f5649d5867fba28b503172b7035574bf8e5b7100a3052792f2cf6b601e0a05945e335550bf648d782f46186c772c0f20d3cd0d6b8ca14b2f
+K = 664e45d5bba4ac931cd65d52017e4be9b19a515f669bea4703542a2c525cd3d3
+
+Secret = 0x3b589af7db03459c23068b64f63f28d3c3c6bc25b5bf76ac05f35482888b5190
+CounterKey = 046a9e0c3f916e4e315c91147be571686d90464e8bf981d34a90b6353bca6eeba740f9bead39c2f2bcc2602f75b8a73ec7bdffcbcead159d0174c6c4d3c5357f05
+K = ca342daa50dc09d61be7c196c85e60a80c5cb04931746820be548cdde055679d
+
+Secret = 0xd8bf929a20ea7436b2461b541a11c80e61d826c0a4c9d322b31dd54e7f58b9c8
+CounterKey = 04a9c0acade55c2a73ead1a86fb0a9713223c82475791cd0e210b046412ce224bbf6de0afa20e93e078467c053d241903edad734c6b403ba758c2b5ff04c9d4229
+K = 35aa9b52536a461bfde4e85fc756be928c7de97923f0416c7a3ac8f88b3d4489
+
+Secret = 0x0f9883ba0ef32ee75ded0d8bda39a5146a29f1f2507b3bd458dbea0b2bb05b4d
+CounterKey = 0494e94f16a98255fff2b9ac0c9598aac35487b3232d3231bd93b7db7df36f9eb9d8049a43579cfa90b8093a94416cbefbf93386f15b3f6e190b6e3455fedfe69a
+K = 605c16178a9bc875dcbff54d63fe00df699c03e8a888e9e94dfbab90b25f39b4
+
+Secret = 0x2beedb04b05c6988f6a67500bb813faf2cae0d580c9253b6339e4a3337bb6c08
+CounterKey = 04e099bf2a4d557460b5544430bbf6da11004d127cb5d67f64ab07c94fcdf5274fd9c50dbe70d714edb5e221f4e020610eeb6270517e688ca64fb0e98c7ef8c1c5
+K = f96e40a1b72840854bb62bc13c40cc2795e373d4e715980b261476835a092e0b
+
+Secret = 0x77c15dcf44610e41696bab758943eff1409333e4d5a11bbe72c8f6c395e9f848
+CounterKey = 04f75a5fe56bda34f3c1396296626ef012dc07e4825838778a645c8248cff0165833bbdf1b1772d8059df568b061f3f1122f28a8d819167c97be448e3dc3fb0c3c
+K = 8388fa79c4babdca02a8e8a34f9e43554976e420a4ad273c81b26e4228e9d3a3
+
+Secret = 0x42a83b985011d12303db1a800f2610f74aa71cdf19c67d54ce6c9ed951e9093e
+CounterKey = 042db4540d50230756158abf61d9835712b6486c74312183ccefcaef2797b7674d62f57f314e3f3495dc4e099012f5e0ba71770f9660a1eada54104cdfde77243e
+K = 72877cea33ccc4715038d4bcbdfe0e43f42a9e2c0c3b017fc2370f4b9acbda4a
+
+Secret = 0xceed35507b5c93ead5989119b9ba342cfe38e6e638ba6eea343a55475de2800b
+CounterKey = 04cd94fc9497e8990750309e9a8534fd114b0a6e54da89c4796101897041d14ecbc3def4b5fe04faee0a11932229fff563637bfdee0e79c6deeaf449f85401c5c4
+K = e4e7408d85ff0e0e9c838003f28cdbd5247cdce31f32f62494b70e5f1bc36307
+
+Secret = 0x43e0e9d95af4dc36483cdd1968d2b7eeb8611fcce77f3a4e7d059ae43e509604
+CounterKey = 0415b9e467af4d290c417402e040426fe4cf236bae72baa392ed89780dfccdb471cdf4e9170fb904302b8fd93a820ba8cc7ed4efd3a6f2d6b05b80b2ff2aee4e77
+K = ed56bcf695b734142c24ecb1fc1bb64d08f175eb243a31f37b3d9bb4407f3b96
+
+Secret = 0xb2f3600df3368ef8a0bb85ab22f41fc0e5f4fdd54be8167a5c3cd4b08db04903
+CounterKey = 0449c503ba6c4fa605182e186b5e81113f075bc11dcfd51c932fb21e951eee2fa18af706ff0922d87b3f0c5e4e31d8b259aeb260a9269643ed520a13bb25da5924
+K = bc5c7055089fc9d6c89f83c1ea1ada879d9934b2ea28fcf4e4a7e984b28ad2cf
+
+Secret = 0x4002534307f8b62a9bf67ff641ddc60fef593b17c3341239e95bdb3e579bfdc8
+CounterKey = 0419b38de39fdd2f70f7091631a4f75d1993740ba9429162c2a45312401636b29c09aed7232b28e060941741b6828bcdfa2bc49cc844f3773611504f82a390a5ae
+K = 9a4e8e657f6b0e097f47954a63c75d74fcba71a30d83651e3e5a91aa7ccd8343
+
+Secret = 0x4dfa12defc60319021b681b3ff84a10a511958c850939ed45635934ba4979147
+CounterKey = 042c91c61f33adfe9311c942fdbff6ba47020feff416b7bb63cec13faf9b0999546cab31b06419e5221fca014fb84ec870622a1b12bab5ae43682aa7ea73ea08d0
+K = 3ca1fc7ad858fb1a6aba232542f3e2a749ffc7203a2374a3f3d3267f1fc97b78
+
+Secret = 0x1331f6d874a4ed3bc4a2c6e9c74331d3039796314beee3b7152fcdba5556304e
+CounterKey = 04a28a2edf58025668f724aaf83a50956b7ac1cfbbff79b08c3bf87dfd2828d767dfa7bfffd4c766b86abeaf5c99b6e50cb9ccc9d9d00b7ffc7804b0491b67bc03
+K = 1aaabe7ee6e4a6fa732291202433a237df1b49bc53866bfbe00db96a0f58224f
+
+Secret = 0xdd5e9f70ae740073ca0204df60763fb6036c45709bf4a7bb4e671412fad65da3
+CounterKey = 04a2ef857a081f9d6eb206a81c4cf78a802bdf598ae380c8886ecd85fdc1ed7644563c4c20419f07bc17d0539fade1855e34839515b892c0f5d26561f97fa04d1a
+K = 430e6a4fba4449d700d2733e557f66a3bf3d50517c1271b1ddae1161b7ac798c
+
+Secret = 0x5ae026cfc060d55600717e55b8a12e116d1d0df34af831979057607c2d9c2f76
+CounterKey = 04ccd8a2d86bc92f2e01bce4d6922cf7fe1626aed044685e95e2eebd464505f01fe9ddd583a9635a667777d5b8a8f31b0f79eba12c75023410b54b8567dddc0f38
+K = 1ce9e6740529499f98d1f1d71329147a33df1d05e4765b539b11cf615d6974d3
+
+Secret = 0xb601ac425d5dbf9e1735c5e2d5bdb79ca98b3d5be4a2cfd6f2273f150e064d9d
+CounterKey = 04c188ffc8947f7301fb7b53e36746097c2134bf9cc981ba74b4e9c4361f595e4ebf7d2f2056e72421ef393f0c0f2b0e00130e3cac4abbcc00286168e85ec55051
+K = 4690e3743c07d643f1bc183636ab2a9cb936a60a802113c49bb1b3f2d0661660
+
+Secret = 0xfefb1dda1845312b5fce6b81b2be205af2f3a274f5a212f66c0d9fc33d7ae535
+CounterKey = 04317e1020ff53fccef18bf47bb7f2dd7707fb7b7a7578e04f35b3beed222a0eb609420ce5a19d77c6fe1ee587e6a49fbaf8f280e8df033d75403302e5a27db2ae
+K = 30c2261bd0004e61feda2c16aa5e21ffa8d7e7f7dbf6ec379a43b48e4b36aeb0
+
+Secret = 0x334ae0c4693d23935a7e8e043ebbde21e168a7cba3fa507c9be41d7681e049ce
+CounterKey = 0445fb02b2ceb9d7c79d9c2fa93e9c7967c2fa4df5789f9640b24264b1e524fcb15c6e8ecf1f7d3023893b7b1ca1e4d178972ee2a230757ddc564ffe37f5c5a321
+K = 2adae4a138a239dcd93c243a3803c3e4cf96e37fe14e6a9b717be9599959b11c
+
+Secret = 0x2c4bde40214fcc3bfc47d4cf434b629acbe9157f8fd0282540331de7942cf09d
+CounterKey = 04a19ef7bff98ada781842fbfc51a47aff39b5935a1c7d9625c8d323d511c92de6e9c184df75c955e02e02e400ffe45f78f339e1afe6d056fb3245f4700ce606ef
+K = 2e277ec30f5ea07d6ce513149b9479b96e07f4b6913b1b5c11305c1444a1bc0b
+
+Secret = 0x85a268f9d7772f990c36b42b0a331adc92b5941de0b862d5d89a347cbf8faab0
+CounterKey = 04356c5a444c049a52fee0adeb7e5d82ae5aa83030bfff31bbf8ce2096cf161c4b57d128de8b2a57a094d1a001e572173f96e8866ae352bf29cddaf92fc85b2f92
+K = 1e51373bd2c6044c129c436e742a55be2a668a85ae08441b6756445df5493857
+
+[secp384r1]
+Secret = 0x3cc3122a68f0d95027ad38c067916ba0eb8c38894d22e1b15618b6818a661774ad463b205da88cf699ab4d43c9cf98a1
+CounterKey = 04a7c76b970c3b5fe8b05d2838ae04ab47697b9eaf52e764592efda27fe7513272734466b400091adbf2d68c58e0c50066ac68f19f2e1cb879aed43a9969b91a0839c4c38a49749b661efedf243451915ed0905a32b060992b468c64766fc8437a
+K = 5f9d29dc5e31a163060356213669c8ce132e22f57c9a04f40ba7fcead493b457e5621e766c40a2e3d4d6a04b25e533f1
+
+Secret = 0x92860c21bde06165f8e900c687f8ef0a05d14f290b3f07d8b3a8cc6404366e5d5119cd6d03fb12dc58e89f13df9cd783
+CounterKey = 0430f43fcf2b6b00de53f624f1543090681839717d53c7c955d1d69efaf0349b7363acb447240101cbb3af6641ce4b88e025e46c0c54f0162a77efcc27b6ea792002ae2ba82714299c860857a68153ab62e525ec0530d81b5aa15897981e858757
+K = a23742a2c267d7425fda94b93f93bbcc24791ac51cd8fd501a238d40812f4cbfc59aac9520d758cf789c76300c69d2ff
+
+Secret = 0x12cf6a223a72352543830f3f18530d5cb37f26880a0b294482c8a8ef8afad09aa78b7dc2f2789a78c66af5d1cc553853
+CounterKey = 041aefbfa2c6c8c855a1a216774550b79a24cda37607bb1f7cc906650ee4b3816d68f6a9c75da6e4242cebfb6652f65180419d28b723ebadb7658fcebb9ad9b7adea674f1da3dc6b6397b55da0f61a3eddacb4acdb14441cb214b04a0844c02fa3
+K = 3d2e640f350805eed1ff43b40a72b2abed0a518bcebe8f2d15b111b6773223da3c3489121db173d414b5bd5ad7153435
+
+Secret = 0x8dd48063a3a058c334b5cc7a4ce07d02e5ee6d8f1f3c51a1600962cbab462690ae3cd974fb39e40b0e843daa0fd32de1
+CounterKey = 048bc089326ec55b9cf59b34f0eb754d93596ca290fcb3444c83d4de3a5607037ec397683f8cef07eab2fe357eae36c449d9d16ce8ac85b3f1e94568521aae534e67139e310ec72693526aa2e927b5b322c95a1a033c229cb6770c957cd3148dd7
+K = 6a42cfc392aba0bfd3d17b7ccf062b91fc09bbf3417612d02a90bdde62ae40c54bb2e56e167d6b70db670097eb8db854
+
+Secret = 0x84ece6cc3429309bd5b23e959793ed2b111ec5cb43b6c18085fcaea9efa0685d98a6262ee0d330ee250bc8a67d0e733f
+CounterKey = 04eb952e2d9ac0c20c6cc48fb225c2ad154f53c8750b003fd3b4ed8ed1dc0defac61bcdde02a2bcfee7067d75d342ed2b0f1828205baece82d1b267d0d7ff2f9c9e15b69a72df47058a97f3891005d1fb38858f5603de840e591dfa4f6e7d489e1
+K = ce7ba454d4412729a32bb833a2d1fd2ae612d4667c3a900e069214818613447df8c611de66da200db7c375cf913e4405
+
+Secret = 0x68fce2121dc3a1e37b10f1dde309f9e2e18fac47cd1770951451c3484cdb77cb136d00e731260597cc2859601c01a25b
+CounterKey = 04441d029e244eb7168d647d4df50db5f4e4974ab3fdaf022aff058b3695d0b8c814cc88da6285dc6df1ac55c553885003e8025ac23a41d4b1ea2aa46c50c6e479946b59b6d76497cd9249977e0bfe4a6262622f13d42a3c43d66bdbb30403c345
+K = ba69f0acdf3e1ca95caaac4ecaf475bbe51b54777efce01ca381f45370e486fe87f9f419b150c61e329a286d1aa265ec
+
+Secret = 0xb1764c54897e7aae6de9e7751f2f37de849291f88f0f91093155b858d1cc32a3a87980f706b86cc83f927bdfdbeae0bd
+CounterKey = 043d4e6bf08a73404accc1629873468e4269e82d90d832e58ad72142639b5a056ad8d35c66c60e8149fac0c797bceb7c2f9b0308dc7f0e6d29f8c277acbc65a21e5adb83d11e6873bc0a07fda0997f482504602f59e10bc5cb476b83d0a4f75e71
+K = 1a6688ee1d6e59865d8e3ada37781d36bb0c2717eef92e61964d3927cb765c2965ea80f7f63e58c322ba0397faeaf62b
+
+Secret = 0xf0f7a96e70d98fd5a30ad6406cf56eb5b72a510e9f192f50e1f84524dbf3d2439f7287bb36f5aa912a79deaab4adea82
+CounterKey = 04f5f6bef1d110da03be0017eac760cc34b24d092f736f237bc7054b3865312a813bcb62d297fb10a4f7abf54708fe2d3d06fdf8d7dc032f4e10010bf19cbf6159321252ff415fb91920d438f24e67e60c2eb0463204679fa356af44cea9c9ebf5
+K = d06a568bf2336b90cbac325161be7695eacb2295f599500d787f072612aca313ee5d874f807ddef6c1f023fe2b6e7cd0
+
+Secret = 0x9efb87ddc61d43c482ba66e1b143aef678fbd0d1bebc2000941fabe677fe5b706bf78fce36d100b17cc787ead74bbca2
+CounterKey = 047cdec77e0737ea37c67b89b7137fe38818010f4464438ee4d1d35a0c488cad3fde2f37d00885d36d3b795b9f93d23a6728c42ee8d6027c56cf979ba4c229fdb01d234944f8ac433650112c3cf0f02844e888a3569dfef7828a8a884589aa055e
+K = bb3b1eda9c6560d82ff5bee403339f1e80342338a991344853b56b24f109a4d94b92f654f0425edd4c205903d7586104
+
+Secret = 0xd787a57fde22ec656a0a525cf3c738b30d73af61e743ea90893ecb2d7b622add2f94ee25c2171467afb093f3f84d0018
+CounterKey = 048eeea3a319c8df99fbc29cb55f243a720d95509515ee5cc587a5c5ae22fbbd009e626db3e911def0b99a4f7ae304b1ba73877dc94db9adddc0d9a4b24e8976c22d73c844370e1ee857f8d1b129a3bd5f63f40caf3bd0533e38a5f5777074ff9e
+K = 1e97b60add7cb35c7403dd884c0a75795b7683fff8b49f9d8672a8206bfdcf0a106b8768f983258c74167422e44e4d14
+
+Secret = 0x83d70f7b164d9f4c227c767046b20eb34dfc778f5387e32e834b1e6daec20edb8ca5bb4192093f543b68e6aeb7ce788b
+CounterKey = 04a721f6a2d4527411834b13d4d3a33c29beb83ab7682465c6cbaf6624aca6ea58c30eb0f29dd842886695400d7254f20f14ba6e26355109ad35129366d5e3a640ae798505a7fa55a96a36b5dad33de00474f6670f522214dd7952140ab0a7eb68
+K = 1023478840e54775bfc69293a3cf97f5bc914726455c66538eb5623e218feef7df4befa23e09d77145ad577db32b41f9
+
+Secret = 0x8f558e05818b88ed383d5fca962e53413db1a0e4637eda194f761944cbea114ab9d5da175a7d57882550b0e432f395a9
+CounterKey = 04d882a8505c2d5cb9b8851fc676677bb0087681ad53faceba1738286b45827561e7da37b880276c656cfc38b32ade847e34b314bdc134575654573cffaf40445da2e6aaf987f7e913cd4c3091523058984a25d8f21da8326192456c6a0fa5f60c
+K = 6ad6b9dc8a6cf0d3691c501cbb967867f6e4bbb764b60dbff8fcff3ed42dbba39d63cf325b4b4078858495ddee75f954
+
+Secret = 0x0f5dee0affa7bbf239d5dff32987ebb7cf84fcceed643e1d3c62d0b3352aec23b6e5ac7fa4105c8cb26126ad2d1892cb
+CounterKey = 04815c9d773dbf5fb6a1b86799966247f4006a23c92e68c55e9eaa998b17d8832dd4d84d927d831d4f68dac67c6488219fe79269948b2611484560fd490feec887cb55ef99a4b524880fa7499d6a07283aae2afa33feab97deca40bc606c4d8764
+K = cc9e063566d46b357b3fcae21827377331e5e290a36e60cd7c39102b828ae0b918dc5a02216b07fe6f1958d834e42437
+
+Secret = 0x037b633b5b8ba857c0fc85656868232e2febf59578718391b81da8541a00bfe53c30ae04151847f27499f8d7abad8cf4
+CounterKey = 041c0eeda7a2be000c5bdcda0478aed4db733d2a9e341224379123ad847030f29e3b168fa18e89a3c0fba2a6ce1c28fc3bec8c1c83c118c4dbea94271869f2d868eb65e8b44e21e6f14b0f4d9b38c068daefa27114255b9a41d084cc4a1ad85456
+K = deff7f03bd09865baf945e73edff6d5122c03fb561db87dec8662e09bed4340b28a9efe118337bb7d3d4f7f568635ff9
+
+Secret = 0xe3d07106bedcc096e7d91630ffd3094df2c7859db8d7edbb2e37b4ac47f429a637d06a67d2fba33838764ef203464991
+CounterKey = 04c95c185e256bf997f30b311548ae7f768a38dee43eeeef43083f3077be70e2bf39ac1d4daf360c514c8c6be623443d1a3e63a663eaf75d8a765ab2b9a35513d7933fa5e26420a5244550ec6c3b6f033b96db2aca3d6ac6aab052ce929595aea5
+K = c8b1038f735ad3bb3e4637c3e47eab487637911a6b7950a4e461948329d3923b969e5db663675623611a457fcda35a71
+
+Secret = 0xf3f9b0c65a49a506632c8a45b10f66b5316f9eeb06fae218f2da62333f99905117b141c760e8974efc4af10570635791
+CounterKey = 043497238a7e6ad166df2dac039aa4dac8d17aa925e7c7631eb3b56e3aaa1c545fcd54d2e5985807910fb202b1fc191d2aa49e5c487dcc7aa40a8f234c979446040d9174e3ad357d404d7765183195aed3f913641b90c81a306ebf0d8913861316
+K = d337eaa32b9f716b8747b005b97a553c59dab0c51df41a2d49039cdae705aa75c7b9e7bc0b6a0e8c578c902bc4fff23e
+
+Secret = 0x59fce7fad7de28bac0230690c95710c720e528f9a4e54d3a6a8cd5fc5c5f21637031ce1c5b4e3d39647d8dcb9b794664
+CounterKey = 0490a34737d45b1aa65f74e0bd0659bc118f8e4b774b761944ffa6573c6df4f41dec0d11b697abd934d390871d4b4532409b590719bb3307c149a7817be355d684893a307764b512eeffe07cb699edb5a6ffbf8d6032e6c79d5e93e94212c2aa4e
+K = 32d292b695a4488e42a7b7922e1ae537d76a3d21a0b2e36875f60e9f6d3e8779c2afb3a413b9dd79ae18e70b47d337c1
+
+Secret = 0x3e49fbf950a424c5d80228dc4bc35e9f6c6c0c1d04440998da0a609a877575dbe437d6a5cedaa2ddd2a1a17fd112aded
+CounterKey = 04dda546acfc8f903d11e2e3920669636d44b2068aeb66ff07aa266f0030e1535b0ed0203cb8a460ac990f1394faf22f1d15bbb2597913035faadf413476f4c70f7279769a40c986f470c427b4ee4962abdf8173bbad81874772925fd32f0b159f
+K = 1220e7e6cad7b25df98e5bbdcc6c0b65ca6c2a50c5ff6c41dca71e475646fd489615979ca92fb4389aeadefde79a24f1
+
+Secret = 0x50ccc1f7076e92f4638e85f2db98e0b483e6e2204c92bdd440a6deea04e37a07c6e72791c190ad4e4e86e01efba84269
+CounterKey = 04788be2336c52f4454d63ee944b1e49bfb619a08371048e6da92e584eae70bde1f171c4df378bd1f3c0ab03048a2378024673ebd8db604eaf41711748bab2968a23ca4476ce144e728247f08af752929157b5830f1e26067466bdfa8b65145a33
+K = 793bb9cd22a93cf468faf804a38d12b78cb12189ec679ddd2e9aa21fa9a5a0b049ab16a23574fe04c1c3c02343b91beb
+
+Secret = 0x06f132b71f74d87bf99857e1e4350a594e5fe35533b888552ceccbc0d8923c902e36141d7691e28631b8bc9bafe5e064
+CounterKey = 04d09bb822eb99e38060954747c82bb3278cf96bbf36fece3400f4c873838a40c135eb3babb9293bd1001bf3ecdee7bf26d416db6e1b87bbb7427788a3b6c7a7ab2c165b1e366f9608df512037584f213a648d47f16ac326e19aae972f63fd76c9
+K = 012d191cf7404a523678c6fc075de8285b243720a903047708bb33e501e0dbee5bcc40d7c3ef6c6da39ea24d830da1e8
+
+Secret = 0x12048ebb4331ec19a1e23f1a2c773b664ccfe90a28bfb846fc12f81dff44b7443c77647164bf1e9e67fd2c07a6766241
+CounterKey = 0413741262ede5861dad71063dfd204b91ea1d3b7c631df68eb949969527d79a1dc59295ef7d2bca6743e8cd77b04d1b580baaeadc7e19d74a8a04451a135f1be1b02fe299f9dc00bfdf201e83d995c6950bcc1cb89d6f7b30bf54656b9a4da586
+K = ad0fd3ddffe8884b9263f3c15fe1f07f2a5a22ffdc7e967085eea45f0cd959f20f18f522763e28bcc925e496a52dda98
+
+Secret = 0x34d61a699ca576169fcdc0cc7e44e4e1221db0fe63d16850c8104029f7d48449714b9884328cae189978754ab460b486
+CounterKey = 049e22cbc18657f516a864b37b783348b66f1aa9626cd631f4fa1bd32ad88cf11db52057c660860d39d11fbf024fabd4446b0d53c79681c28116df71e9cee74fd56c8b7f04b39f1198cc72284e98be9562e35926fb4f48a9fbecafe729309e8b6f
+K = dc4ca392dc15e20185f2c6a8ea5ec31dfc96f56153a47394b3072b13d0015f5d4ae13beb3bed54d65848f9b8383e6c95
+
+Secret = 0xdc60fa8736d702135ff16aab992bb88eac397f5972456c72ec447374d0d8ce61153831bfc86ad5a6eb5b60bfb96a862c
+CounterKey = 042db5da5f940eaa884f4db5ec2139b0469f38e4e6fbbcc52df15c0f7cf7fcb1808c749764b6be85d2fdc5b16f58ad5dc022e8b02dcf33e1b5a083849545f84ad5e43f77cb71546dbbac0d11bdb2ee202e9d3872e8d028c08990746c5e1dde9989
+K = d765b208112d2b9ed5ad10c4046e2e3b0dbf57c469329519e239ac28b25c7d852bf757d5de0ee271cadd021d86cfd347
+
+Secret = 0x6fa6a1c704730987aa634b0516a826aba8c6d6411d3a4c89772d7a62610256a2e2f289f5c3440b0ec1e70fa339e251ce
+CounterKey = 04329647baa354224eb4414829c5368c82d7893b39804e08cbb2180f459befc4b347a389a70c91a23bd9d30c83be5295d3cc8f61923fad2aa8e505d6cfa126b9fabd5af9dce290b75660ef06d1caa73681d06089c33bc4246b3aa30dbcd2435b12
+K = d3778850aeb58804fbe9dfe6f38b9fa8e20c2ca4e0dec335aafceca0333e3f2490b53c0c1a14a831ba37c4b9d74be0f2
+
+Secret = 0x74ad8386c1cb2ca0fcdeb31e0869bb3f48c036afe2ef110ca302bc8b910f621c9fcc54cec32bb89ec7caa84c7b8e54a8
+CounterKey = 0429d8a36d22200a75b7aea1bb47cdfcb1b7fd66de967041434728ab5d533a060df732130600fe6f75852a871fb2938e39e19b53db528395de897a45108967715eb8cb55c3fcbf23379372c0873a058d57544b102ecce722b2ccabb1a603774fd5
+K = 81e1e71575bb4505498de097350186430a6242fa6c57b85a5f984a23371123d2d1424eefbf804258392bc723e4ef1e35
+
+[secp521r1]
+Secret = 0x0000017eecc07ab4b329068fba65e56a1f8890aa935e57134ae0ffcce802735151f4eac6564f6ee9974c5e6887a1fefee5743ae2241bfeb95d5ce31ddcb6f9edb4d6fc47
+CounterKey = 04000000685a48e86c79f0f0875f7bc18d25eb5fc8c0b07e5da4f4370f3a9490340854334b1e1b87fa395464c60626124a4e70d0f785601d37c09870ebf176666877a2046d000001ba52c56fc8776d9e8f5db4f0cc27636d0b741bbe05400697942e80b739884a83bde99e0f6716939e632bc8986fa18dccd443a348b6c3e522497955a4f3c302f676
+K = 005fc70477c3e63bc3954bd0df3ea0d1f41ee21746ed95fc5e1fdf90930d5e136672d72cc770742d1711c3c3a4c334a0ad9759436a4d3c5bf6e74b9578fac148c831
+
+Secret = 0x000000816f19c1fb10ef94d4a1d81c156ec3d1de08b66761f03f06ee4bb9dcebbbfe1eaa1ed49a6a990838d8ed318c14d74cc872f95d05d07ad50f621ceb620cd905cfb8
+CounterKey = 04000001df277c152108349bc34d539ee0cf06b24f5d3500677b4445453ccc21409453aafb8a72a0be9ebe54d12270aa51b3ab7f316aa5e74a951c5e53f74cd95fc29aee7a0000013d52f33a9f3c14384d1587fa8abe7aed74bc33749ad9c570b471776422c7d4505d9b0a96b3bfac041e4c6a6990ae7f700e5b4a6640229112deafa0cd8bb0d089b0
+K = 000b3920ac830ade812c8f96805da2236e002acbbf13596a9ab254d44d0e91b6255ebf1229f366fb5a05c5884ef46032c26d42189273ca4efa4c3db6bd12a6853759
+
+Secret = 0x0000012f2e0c6d9e9d117ceb9723bced02eb3d4eebf5feeaf8ee0113ccd8057b13ddd416e0b74280c2d0ba8ed291c443bc1b141caf8afb3a71f97f57c225c03e1e4d42b0
+CounterKey = 0400000092db3142564d27a5f0006f819908fba1b85038a5bc2509906a497daac67fd7aee0fc2daba4e4334eeaef0e0019204b471cd88024f82115d8149cc0cf4f7ce1a4d50000016bad0623f517b158d9881841d2571efbad63f85cbe2e581960c5d670601a6760272675a548996217e4ab2b8ebce31d71fca63fcc3c08e91c1d8edd91cf6fe845f8
+K = 006b380a6e95679277cfee4e8353bf96ef2a1ebdd060749f2f046fe571053740bbcc9a0b55790bc9ab56c3208aa05ddf746a10a3ad694daae00d980d944aabc6a08f
+
+Secret = 0x000000e548a79d8b05f923b9825d11b656f222e8cb98b0f89de1d317184dc5a698f7c71161ee7dc11cd31f4f4f8ae3a981e1a3e78bdebb97d7c204b9261b4ef92e0918e0
+CounterKey = 04000000fdd40d9e9d974027cb3bae682162eac1328ad61bc4353c45bf5afe76bf607d2894c8cce23695d920f2464fda4773d4693be4b3773584691bdb0329b7f4c86cc29900000034ceac6a3fef1c3e1c494bfe8d872b183832219a7e14da414d4e3474573671ec19b033be831b915435905925b44947c592959945b4eb7c951c3b9c8cf52530ba23
+K = 00fbbcd0b8d05331fef6086f22a6cce4d35724ab7a2f49dd8458d0bfd57a0b8b70f246c17c4468c076874b0dff7a0336823b19e98bf1cec05e4beffb0591f97713c6
+
+Secret = 0x000001c8aae94bb10b8ca4f7be577b4fb32bb2381032c4942c24fc2d753e7cc5e47b483389d9f3b956d20ee9001b1eef9f23545f72c5602140046839e963313c3decc864
+CounterKey = 0400000098d99dee0816550e84dbfced7e88137fddcf581a725a455021115fe49f8dc3cf233cd9ea0e6f039dc7919da973cdceaca205da39e0bd98c8062536c47f258f44b5000000cd225c8797371be0c4297d2b457740100c774141d8f214c23b61aa2b6cd4806b9b70722aa4965fb622f42b7391e27e5ec21c5679c5b06b59127372997d421adc1e
+K = 0145cfa38f25943516c96a5fd4bfebb2f645d10520117aa51971eff442808a23b4e23c187e639ff928c3725fbd1c0c2ad0d4aeb207bc1a6fb6cb6d467888dc044b3c
+
+Secret = 0x0000009b0af137c9696c75b7e6df7b73156bb2d45f482e5a4217324f478b10ceb76af09724cf86afa316e7f89918d31d54824a5c33107a483c15c15b96edc661340b1c0e
+CounterKey = 040000007ae115adaaf041691ab6b7fb8c921f99d8ed32d283d67084e80b9ad9c40c56cd98389fb0a849d9ecf7268c297b6f93406119f40e32b5773ed25a28a9a85c4a7588000001a28e004e37eeaefe1f4dbb71f1878696141af3a10a9691c4ed93487214643b761fa4b0fbeeb247cf6d3fba7a60697536ad03f49b80a9d1cb079673654977c5fa94
+K = 005c5721e96c273319fd60ecc46b5962f698e974b429f28fe6962f4ac656be2eb8674c4aafc037eab48ece612953b1e8d861016b6ad0c79805784c67f73ada96f351
+
+Secret = 0x000001e48faacee6dec83ffcde944cf6bdf4ce4bae72747888ebafee455b1e91584971efb49127976a52f4142952f7c207ec0265f2b718cf3ead96ea4f62c752e4f7acd3
+CounterKey = 040000012588115e6f7f7bdcfdf57f03b169b479758baafdaf569d04135987b2ce6164c02a57685eb5276b5dae6295d3fe90620f38b5535c6d2260c173e61eb888ca920203000001542c169cf97c2596fe2ddd848a222e367c5f7e6267ebc1bcd9ab5dcf49158f1a48e4af29a897b7e6a82091c2db874d8e7abf0f58064691344154f396dbaed188b6
+K = 01736d9717429b4f412e903febe2f9e0fffd81355d6ce2c06ff3f66a3be15ceec6e65e308347593f00d7f33591da4043c30763d72749f72cdceebe825e4b34ecd570
+
+Secret = 0x000000c29aa223ea8d64b4a1eda27f39d3bc98ea0148dd98c1cbe595f8fd2bfbde119c9e017a50f5d1fc121c08c1cef31b758859556eb3e0e042d8dd6aaac57a05ca61e3
+CounterKey = 0400000169491d55bd09049fdf4c2a53a660480fee4c03a0538675d1cd09b5bba78dac48543ef118a1173b3fbf8b20e39ce0e6b890a163c50f9645b3d21d1cbb3b60a6fff400000083494b2eba76910fed33c761804515011fab50e3b377abd8a8a045d886d2238d2c268ac1b6ec88bd71b7ba78e2c33c152e4bf7da5d565e4acbecf5e92c7ad662bb
+K = 018f2ae9476c771726a77780208dedfefa205488996b18fecc50bfd4c132753f5766b2cd744afa9918606de2e016effc63622e9029e76dc6e3f0c69f7aeced565c2c
+
+Secret = 0x00000028692be2bf5c4b48939846fb3d5bce74654bb2646e15f8389e23708a1afadf561511ea0d9957d0b53453819d60fba8f65a18f7b29df021b1bb01cd163293acc3cc
+CounterKey = 040000008415f5bbd0eee387d6c09d0ef8acaf29c66db45d6ba101860ae45d3c60e1e0e3f7247a4626a60fdd404965c3566c79f6449e856ce0bf94619f97da8da24bd2cfb6000000fdd7c59c58c361bc50a7a5d0d36f723b17c4f2ad2b03c24d42dc50f74a8c465a0afc4683f10fab84652dfe9e928c2626b5456453e1573ff60be1507467d431fbb2
+K = 0105a346988b92ed8c7a25ce4d79d21bc86cfcc7f99c6cd19dbb4a39f48ab943b79e4f0647348da0b80bd864b85c6b8d92536d6aa544dc7537a00c858f8b66319e25
+
+Secret = 0x000001194d1ee613f5366cbc44b504d21a0cf6715e209cd358f2dd5f3e71cc0d67d0e964168c42a084ebda746f9863a86bacffc819f1edf1b8c727ccfb3047240a57c435
+CounterKey = 04000001c721eea805a5cba29f34ba5758775be0cf6160e6c08723f5ab17bf96a1ff2bd9427961a4f34b07fc0b14ca4b2bf6845debd5a869f124ebfa7aa72fe565050b7f18000000b6e89eb0e1dcf181236f7c548fd1a8c16b258b52c1a9bfd3fe8f22841b26763265f074c4ccf2d634ae97b701956f67a11006c52d97197d92f585f5748bc2672eeb
+K = 004531b3d2c6cd12f21604c8610e6723dbf4daf80b5a459d6ba5814397d1c1f7a21d7c114be964e27376aaebe3a7bc3d6af7a7f8c7befb611afe487ff032921f750f
+
+Secret = 0x000001fd90e3e416e98aa3f2b6afa7f3bf368e451ad9ca5bd54b5b14aee2ed6723dde5181f5085b68169b09fbec721372ccf6b284713f9a6356b8d560a8ff78ca3737c88
+CounterKey = 04000001c35823e440a9363ab98d9fc7a7bc0c0532dc7977a79165599bf1a9cc64c00fb387b42cca365286e8430360bfad3643bc31354eda50dc936c329ecdb60905c40fcb000000d9e7f433531e44df4f6d514201cbaabb06badd6783e01111726d815531d233c5cdb722893ffbb2027259d594de77438809738120c6f783934f926c3fb69b40c409
+K = 0100c8935969077bae0ba89ef0df8161d975ec5870ac811ae7e65ca5394efba4f0633d41bf79ea5e5b9496bbd7aae000b0594baa82ef8f244e6984ae87ae1ed124b7
+
+Secret = 0x0000009012ecfdadc85ced630afea534cdc8e9d1ab8be5f3753dcf5f2b09b40eda66fc6858549bc36e6f8df55998cfa9a0703aecf6c42799c245011064f530c09db98369
+CounterKey = 04000000093057fb862f2ad2e82e581baeb3324e7b32946f2ba845a9beeed87d6995f54918ec6619b9931955d5a89d4d74adf1046bb362192f2ef6bd3e3d2d04dd1f87054a000000aa3fb2448335f694e3cda4ae0cc71b1b2f2a206fa802d7262f19983c44674fe15327acaac1fa40424c395a6556cb8167312527fae5865ecffc14bbdc17da78cdcf
+K = 017f36af19303841d13a389d95ec0b801c7f9a679a823146c75c17bc44256e9ad422a4f8b31f14647b2c7d317b933f7c2946c4b8abd1d56d620fab1b5ff1a3adc71f
+
+Secret = 0x000001b5ff847f8eff20b88cfad42c06e58c3742f2f8f1fdfd64b539ba48c25926926bd5e332b45649c0b184f77255e9d58fe8afa1a6d968e2cb1d4637777120c765c128
+CounterKey = 0400000083192ed0b1cb31f75817794937f66ad91cf74552cd510cedb9fd641310422af5d09f221cad249ee814d16dd7ac84ded9eacdc28340fcfc9c0c06abe30a2fc28cd80000002212ed868c9ba0fb2c91e2c39ba93996a3e4ebf45f2852d0928c48930e875cc7b428d0e7f3f4d503e5d60c68cb49b13c2480cd486bed9200caddaddfe4ff8e3562
+K = 00062f9fc29ae1a68b2ee0dcf956cbd38c88ae5f645eaa546b00ebe87a7260bf724be20d34b9d02076655c933d056b21e304c24ddb1dedf1dd76de611fc4a2340336
+
+Secret = 0x0000011a6347d4e801c91923488354cc533e7e35fddf81ff0fb7f56bb0726e0c29ee5dcdc5f394ba54cf57269048aab6e055895c8da24b8b0639a742314390cc04190ed6
+CounterKey = 04000001a89b636a93e5d2ba6c2292bf23033a84f06a3ac1220ea71e806afbe097a804cc67e9baa514cfb6c12c9194be30212bf7aae7fdf6d376c212f0554e656463ffab7e00000182efcaf70fc412d336602e014da47256a0b606f2addcce8053bf817ac8656bb4e42f14c8cbf2a68f488ab35dcdf64056271dee1f606a440ba4bd4e5a11b8b8e54f
+K = 0128ab09bfec5406799e610f772ba17e892249fa8e0e7b18a04b9197034b250b48294f1867fb9641518f92766066a07a8b917b0e76879e1011e51ccbd9f540c54d4f
+
+Secret = 0x00000022b6d2a22d71dfaa811d2d9f9f31fbed27f2e1f3d239538ddf3e4cc8c39a330266db25b7bc0a9704f17bde7f3592bf5f1f2d4b56013aacc3d8d1bc02f00d3146cc
+CounterKey = 040000017200b3f16a68cbaed2bf78ba8cddfb6cffac262bba00fbc25f9dc72a07ce59372904899f364c44cb264c097b647d4412bee3e519892d534d9129f8a28f7500fee7000000baba8d672a4f4a3b63de48b96f56e18df5d68f7d70d5109833f43770d6732e06b39ad60d93e5b43db8789f1ec0aba47286a39ea584235acea757dbf13d53b58364
+K = 0101e462e9d9159968f6440e956f11dcf2227ae4aea81667122b6af9239a291eb5d6cf5a4087f358525fcacfa46bb2db01a75af1ba519b2d31da33eda87a9d565748
+
+Secret = 0x0000005bacfff268acf6553c3c583b464ea36a1d35e2b257a5d49eb3419d5a095087c2fb4d15cf5bf5af816d0f3ff7586490ccd3ddc1a98b39ce63749c6288ce0dbdac7d
+CounterKey = 040000004efd5dbd2f979e3831ce98f82355d6ca14a5757842875882990ab85ab9b7352dd6b9b2f4ea9a1e95c3880d65d1f3602f9ca653dc346fac858658d75626f4d4fb0800000061cf15dbdaa7f31589c98400373da284506d70c89f074ed262a9e28140796b7236c2eef99016085e71552ff488c72b7339fefb7915c38459cb20ab85aec4e45052
+K = 0141d6a4b719ab67eaf04a92c0a41e2dda78f4354fb90bdc35202cc7699b9b04d49616f82255debf7bbec045ae58f982a66905fcfae69d689785e38c868eb4a27e7b
+
+Secret = 0x0000008e2c93c5423876223a637cad367c8589da69a2d0fc68612f31923ae50219df2452e7cc92615b67f17b57ffd2f52b19154bb40d7715336420fde2e89fee244f59dc
+CounterKey = 0400000129891de0cf3cf82e8c2cf1bf90bb296fe00ab08ca45bb7892e0e227a504fdd05d2381a4448b68adff9c4153c87eacb78330d8bd52515f9f9a0b58e85f446bb4e100000009edd679696d3d1d0ef327f200383253f6413683d9e4fcc87bb35f112c2f110098d15e5701d7ceee416291ff5fed85e687f727388b9afe26a4f6feed560b218e6bb
+K = 00345e26e0abb1aac12b75f3a9cf41efe1c336396dffa4a067a4c2cfeb878c68b2b045faa4e5b4e6fa4678f5b603c351903b14bf9a6a70c439257199a640890b61d1
+
+Secret = 0x00000004d49d39d40d8111bf16d28c5936554326b197353eebbcf47545393bc8d3aaf98f14f5be7074bfb38e6cc97b989754074daddb3045f4e4ce745669fdb3ec0d5fa8
+CounterKey = 04000001a3c20240e59f5b7a3e17c275d2314ba1741210ad58b71036f8c83cc1f6b0f409dfdd9113e94b67ec39c3291426c23ffcc447054670d2908ff8fe67dc2306034c5c000001d2825bfd3af8b1e13205780c137fe938f84fde40188e61ea02cead81badfdb425c29f7d7fb0324debadc10bbb93de68f62c35069268283f5265865db57a79f7bf7
+K = 006fe9de6fb8e672e7fd150fdc5e617fabb0d43906354ccfd224757c7276f7a1010091b17ed072074f8d10a5ec971eb35a5cb7076603b7bc38d432cbc059f80f9488
+
+Secret = 0x0000011a5d1cc79cd2bf73ea106f0e60a5ace220813b53e27b739864334a07c03367efda7a4619fa6eef3a9746492283b3c445610a023a9cc49bf4591140384fca5c8bb5
+CounterKey = 040000007e2d138f2832e345ae8ff65957e40e5ec7163f016bdf6d24a2243daa631d878a4a16783990c722382130f9e51f0c1bd6ff5ac96780e48b68f5dec95f42e6144bb5000000b0de5c896791f52886b0f09913e26e78dd0b69798fc4df6d95e3ca708ecbcbcce1c1895f5561bbabaae372e9e67e6e1a3be60e19b470cdf673ec1fc393d3426e20
+K = 01e4e759ecedce1013baf73e6fcc0b92451d03bdd50489b78871c333114990c9ba6a9b2fc7b1a2d9a1794c1b60d9279af6f146f0bbfb0683140403bfa4ccdb524a29
+
+Secret = 0x0000010c908caf1be74c616b625fc8c1f514446a6aec83b5937141d6afbb0a8c7666a7746fa1f7a6664a2123e8cdf6cd8bf836c56d3c0ebdcc980e43a186f938f3a78ae7
+CounterKey = 04000000118c36022209b1af8ebad1a12b566fc48744576e1199fe80de1cdf851cdf03e5b9091a8f7e079e83b7f827259b691d0c22ee29d6bdf73ec7bbfd746f2cd97a357d000000da5ff4904548a342e2e7ba6a1f4ee5f840411a96cf63e6fe622f22c13e614e0a847c11a1ab3f1d12cc850c32e095614ca8f7e2721477b486e9ff40372977c3f65c
+K = 0163c9191d651039a5fe985a0eea1eba018a40ab1937fcd2b61220820ee8f2302e9799f6edfc3f5174f369d672d377ea8954a8d0c8b851e81a56fda95212a6578f0e
+
+Secret = 0x000001b37d6b7288de671360425d3e5ac1ccb21815079d8d73431e9b74a6f0e7ae004a357575b11ad66642ce8b775593eba9d98bf25c75ef0b4d3a2098bbc641f59a2b77
+CounterKey = 04000001780edff1ca1c03cfbe593edc6c049bcb2860294a92c355489d9afb2e702075ade1c953895a456230a0cde905de4a3f38573dbfcccd67ad6e7e93f0b5581e926a5d000000a5481962c9162962e7f0ebdec936935d0eaa813e8226d40d7f6119bfd940602380c86721e61db1830f51e139f210000bcec0d8edd39e54d73a9a129f95cd5fa979
+K = 015d613e267a36342e0d125cdad643d80d97ed0600afb9e6b9545c9e64a98cc6da7c5aaa3a8da0bdd9dd3b97e9788218a80abafc106ef065c8f1c4e1119ef58d298b
+
+Secret = 0x000000f2661ac762f60c5fff23be5d969ccd4ec6f98e4e72618d12bdcdb9b4102162333788c0bae59f91cdfc172c7a1681ee44d96ab2135a6e5f3415ebbcd55165b1afb0
+CounterKey = 040000016dacffa183e5303083a334f765de724ec5ec9402026d4797884a9828a0d321a8cfac74ab737fe20a7d6befcfc73b6a35c1c7b01d373e31abc192d48a4241a358030000011e5327cac22d305e7156e559176e19bee7e4f2f59e86f1a9d0b6603b6a7df1069bde6387feb71587b8ffce5b266e1bae86de29378a34e5c74b6724c4d40a719923
+K = 014d6082a3b5ced1ab8ca265a8106f302146c4acb8c30bb14a4c991e3c82a9731288bdb91e0e85bda313912d06384fc44f2153fb13506fa9cf43c9aab5750988c943
+
+Secret = 0x000000f430ca1261f09681a9282e9e970a9234227b1d5e58d558c3cc6eff44d1bdf53de16ad5ee2b18b92d62fc79586116b0efc15f79340fb7eaf5ce6c44341dcf8dde27
+CounterKey = 04000000a091421d3703e3b341e9f1e7d58f8cf7bdbd1798d001967b801d1cec27e605c580b2387c1cb464f55ce7ac80334102ab03cfb86d88af76c9f4129c01bedd3bbfc40000008c9c577a8e6fc446815e9d40baa66025f15dae285f19eb668ee60ae9c98e7ecdbf2b2a68e22928059f67db188007161d3ecf397e0883f0c4eb7eaf7827a62205cc
+K = 0020c00747cb8d492fd497e0fec54644bf027d418ab686381f109712a99cabe328b9743d2225836f9ad66e5d7fed1de247e0da92f60d5b31f9e47672e57f710598f4
+
+Secret = 0x0000005dc33aeda03c2eb233014ee468dff753b72f73b00991043ea353828ae69d4cd0fadeda7bb278b535d7c57406ff2e6e473a5a4ff98e90f90d6dadd25100e8d85666
+CounterKey = 040000004f38816681771289ce0cb83a5e29a1ab06fc91f786994b23708ff08a08a0f675b809ae99e9f9967eb1a49f196057d69e50d6dedb4dd2d9a81c02bdcc8f7f5184600000009efb244c8b91087de1eed766500f0e81530752d469256ef79f6b965d8a2232a0c2dbc4e8e1d09214bab38485be6e357c4200d073b52f04e4a16fc6f5247187aecb
+K = 00c2bfafcd7fbd3e2fd1c750fdea61e70bd4787a7e68468c574ee99ebc47eedef064e8944a73bcb7913dbab5d93dca660d216c553622362794f7a2acc71022bdb16f
+
+Secret = 0x000000df14b1f1432a7b0fb053965fd8643afee26b2451ecb6a8a53a655d5fbe16e4c64ce8647225eb11e7fdcb23627471dffc5c2523bd2ae89957cba3a57a23933e5a78
+CounterKey = 04000001a32099b02c0bd85371f60b0dd20890e6c7af048c8179890fda308b359dbbc2b7a832bb8c6526c4af99a7ea3f0b3cb96ae1eb7684132795c478ad6f962e4a6f446d0000017627357b39e9d7632a1370b3e93c1afb5c851b910eb4ead0c9d387df67cde85003e0e427552f1cd09059aad0262e235cce5fba8cedc4fdc1463da76dcd4b6d1a46
+K = 01aaf24e5d47e4080c18c55ea35581cd8da30f1a079565045d2008d51b12d0abb4411cda7a0785b15d149ed301a3697062f42da237aa7f07e0af3fd00eb1800d9c41
diff --git a/src/tests/test_dh.cpp b/src/tests/test_dh.cpp
index a30564f92..4414d2c75 100644
--- a/src/tests/test_dh.cpp
+++ b/src/tests/test_dh.cpp
@@ -30,7 +30,7 @@ class Diffie_Hellman_KAT_Tests : public PK_Key_Agreement_Test
std::string default_kdf(const VarMap&) const override { return "Raw"; }
- std::unique_ptr<Botan::Private_Key> load_our_key(const VarMap& vars) override
+ std::unique_ptr<Botan::Private_Key> load_our_key(const std::string&, const VarMap& vars) override
{
const Botan::BigInt p = get_req_bn(vars, "P");
const Botan::BigInt g = get_req_bn(vars, "G");
@@ -42,7 +42,7 @@ class Diffie_Hellman_KAT_Tests : public PK_Key_Agreement_Test
return key;
}
- std::vector<uint8_t> load_their_key(const VarMap& vars) override
+ std::vector<uint8_t> load_their_key(const std::string&, const VarMap& vars) override
{
const Botan::BigInt p = get_req_bn(vars, "P");
const Botan::BigInt g = get_req_bn(vars, "G");
diff --git a/src/tests/test_ecdh.cpp b/src/tests/test_ecdh.cpp
new file mode 100644
index 000000000..a6a77fabf
--- /dev/null
+++ b/src/tests/test_ecdh.cpp
@@ -0,0 +1,74 @@
+/*
+* (C) 2015,2016 Jack Lloyd
+*
+* Botan is released under the Simplified BSD License (see license.txt)
+*/
+
+#include "tests.h"
+
+#if defined(BOTAN_HAS_ECDH)
+ #include "test_pubkey.h"
+ #include <botan/pubkey.h>
+ #include <botan/ecdh.h>
+#endif
+
+namespace Botan_Tests {
+
+namespace {
+
+#if defined(BOTAN_HAS_ECDH)
+
+class ECDH_KAT_Tests : public PK_Key_Agreement_Test
+ {
+ public:
+ ECDH_KAT_Tests() : PK_Key_Agreement_Test(
+ "ECDH",
+ "pubkey/ecdh.vec",
+ {"Group", "Secret", "CounterKey", "K"},
+ {"KDF"})
+ {}
+
+ std::string default_kdf(const VarMap&) const override { return "Raw"; }
+
+ std::unique_ptr<Botan::Private_Key> load_our_key(const std::string& group_id,
+ const VarMap& vars) override
+ {
+ Botan::EC_Group group(group_id);
+ const Botan::BigInt secret = get_req_bn(vars, "Secret");
+ std::unique_ptr<Botan::Private_Key> key(new Botan::ECDH_PrivateKey(Test::rng(), group, secret));
+ return key;
+ }
+
+ std::vector<uint8_t> load_their_key(const std::string&, const VarMap& vars) override
+ {
+ return get_req_bin(vars, "CounterKey");
+ }
+ };
+
+class ECDH_Keygen_Tests : public PK_Key_Generation_Test
+ {
+ public:
+ std::vector<std::string> keygen_params() const override
+ {
+ return { "secp256r1", "secp384r1", "secp521r1",
+ "brainpool256r1", "brainpool384r1", "brainpool512r1" };
+ }
+
+ std::unique_ptr<Botan::Private_Key> make_key(Botan::RandomNumberGenerator& rng,
+ const std::string& param) const override
+ {
+ Botan::EC_Group group(param);
+ std::unique_ptr<Botan::Private_Key> key(new Botan::ECDH_PrivateKey(rng, group));
+ return key;
+ }
+ };
+
+
+BOTAN_REGISTER_TEST("ecdh_kat", ECDH_KAT_Tests);
+BOTAN_REGISTER_TEST("ecdh_keygen", ECDH_Keygen_Tests);
+
+#endif
+
+}
+
+}
diff --git a/src/tests/test_pubkey.cpp b/src/tests/test_pubkey.cpp
index 70712601d..dc5cd4145 100644
--- a/src/tests/test_pubkey.cpp
+++ b/src/tests/test_pubkey.cpp
@@ -289,15 +289,15 @@ Test::Result PK_KEM_Test::run_one_test(const std::string&, const VarMap& vars)
return result;
}
-Test::Result PK_Key_Agreement_Test::run_one_test(const std::string&, const VarMap& vars)
+Test::Result PK_Key_Agreement_Test::run_one_test(const std::string& header, const VarMap& vars)
{
const std::vector<uint8_t> shared = get_req_bin(vars, "K");
const std::string kdf = get_opt_str(vars, "KDF", default_kdf(vars));
Test::Result result(algo_name() + "/" + kdf + " key agreement");
- std::unique_ptr<Botan::Private_Key> privkey = load_our_key(vars);
- const std::vector<uint8_t> pubkey = load_their_key(vars);
+ std::unique_ptr<Botan::Private_Key> privkey = load_our_key(header, vars);
+ const std::vector<uint8_t> pubkey = load_their_key(header, vars);
const size_t key_len = get_opt_sz(vars, "OutLen", 0);
diff --git a/src/tests/test_pubkey.h b/src/tests/test_pubkey.h
index beb1b2ea2..086c0bea1 100644
--- a/src/tests/test_pubkey.h
+++ b/src/tests/test_pubkey.h
@@ -78,8 +78,11 @@ class PK_Key_Agreement_Test : public Text_Based_Test
const std::vector<std::string>& optional_keys = {}) :
Text_Based_Test(algo, test_src, required_keys, optional_keys) {}
- virtual std::unique_ptr<Botan::Private_Key> load_our_key(const VarMap& vars) = 0;
- virtual std::vector<uint8_t> load_their_key(const VarMap& vars) = 0;
+ virtual std::unique_ptr<Botan::Private_Key> load_our_key(const std::string& header,
+ const VarMap& vars) = 0;
+
+ virtual std::vector<uint8_t> load_their_key(const std::string& header,
+ const VarMap& vars) = 0;
virtual std::string default_kdf(const VarMap&) const { return "Raw"; }