aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/lib/asn1/oid_lookup/default.cpp2
-rw-r--r--src/lib/pubkey/ec_group/named.cpp10
-rw-r--r--src/tests/data/pubkey/ecc.vec209
-rw-r--r--src/tests/data/pubkey/ecdh.vec101
-rw-r--r--src/tests/data/pubkey/ecdsa_rfc6979.vec21
-rw-r--r--src/tests/test_ecdh.cpp2
-rw-r--r--src/tests/test_ecdsa.cpp2
7 files changed, 345 insertions, 2 deletions
diff --git a/src/lib/asn1/oid_lookup/default.cpp b/src/lib/asn1/oid_lookup/default.cpp
index 73f3a17b4..0d64a8bef 100644
--- a/src/lib/asn1/oid_lookup/default.cpp
+++ b/src/lib/asn1/oid_lookup/default.cpp
@@ -247,6 +247,8 @@ const char* default_oid_list()
"1.2.643.2.2.36.0 = gost_256A" "\n"
"0.4.0.127.0.7.3.1.2.1 = CertificateHolderAuthorizationTemplate" "\n"
+
+ "1.2.250.1.223.101.256.1 = frp256v1" "\n"
;
}
diff --git a/src/lib/pubkey/ec_group/named.cpp b/src/lib/pubkey/ec_group/named.cpp
index 3ee791053..6df8a3169 100644
--- a/src/lib/pubkey/ec_group/named.cpp
+++ b/src/lib/pubkey/ec_group/named.cpp
@@ -255,6 +255,16 @@ const char* EC_Group::PEM_for_named_group(const std::string& name)
"/////////////////////2xhEHCZWtEARYQbCbdhuJMCAQE="
"-----END EC PARAMETERS-----";
+ if(name == "frp256v1")
+ return
+ "-----BEGIN EC PARAMETERS-----"
+ "MIHgAgEBMCwGByqGSM49AQECIQDx/ReMCzrVjxASbejOQkNbOWGtvKvIym3o/PNT"
+ "2G6cAzBEBCDx/ReMCzrVjxASbejOQkNbOWGtvKvIym3o/PNT2G6cAAQg7jU/ylQo"
+ "qTANSrp1SkTAD9/sDJrksaGAMHXtlnt7tz8EQQS2s9TDVsE56zEYPUdJ1COVjCfS"
+ "3K+YtwFkyXot2Y9c/2FC4PfIsgSRH5Jx8PPs74wnAcMH6OTJ4YMRWhVUBiz7AiEA"
+ "8f0XjAs61Y8QEm3ozkJDW1PcZ+FA0r+UH/3UWcbWVeECAQE="
+ "-----END EC PARAMETERS-----";
+
return nullptr;
}
diff --git a/src/tests/data/pubkey/ecc.vec b/src/tests/data/pubkey/ecc.vec
index a9debe2bc..dccbff992 100644
--- a/src/tests/data/pubkey/ecc.vec
+++ b/src/tests/data/pubkey/ecc.vec
@@ -1256,3 +1256,212 @@ Y = 0x010B44733807924D98FF580C1311112C0F4A394AEF83B25688BF54DE5D66F93BD2444C1C88
m = 6864797660130609714981900799081393217269435300143305409394463459185543183397655394245057746333217197532963996371363321113864768612440380340372808892707005448
X = 0x00C6858E06B70404E9CD9E3ECB662395B4429C648139053FB521F828AF606B4D3DBAA14B5E77EFE75928FE1DC127A2FFA8DE3348B3C1856A429BF97E7E31C2E5BD66
Y = 0x00E7C6D6958765C43FFBA375A04BD382E426670ABBB6A864BB97E85042E8D8C199D368118D66A10BD9BF3AAF46FEC052F89ECAC38F795D8D3DBF77416B89602E99AF
+
+[frp256v1]
+m = 1
+X = 0xB6B3D4C356C139EB31183D4749D423958C27D2DCAF98B70164C97A2DD98F5CFF
+Y = 0x6142E0F7C8B204911F9271F0F3ECEF8C2701C307E8E4C9E183115A1554062CFB
+
+m = 2
+X = 0xDE681B2898119885373F7EAFDDF94CA0A526794BDC8DA00E0E463860D227575E
+Y = 0xB1240D67C641B70BE151A6D456C77BE3AF2997F8858D3E07D862E37EBE0A1045
+
+m = 3
+X = 0xA13ED122D99792D3CF188FE2C964EADA77A95CE2D03BF3451BBA94DE3E967BAC
+Y = 0xD141A90C972AE0DA909A77BB02B973176238E32431CE8F378E039DEB74989A21
+
+m = 4
+X = 0x8A62BAE6BE63CE26B48368BE0B0BCA7CC6FC33B81FD685FD1085EE128F242FE4
+Y = 0xE548BB18E8E64A4F0B3852962CB58633386C2A79D995C825D434C4B5A727B1B9
+
+m = 5
+X = 0x32B3881D7C703DB9BF613F52E9C917F096839835C025DC022967BBD1C9886B6B
+Y = 0x152BF2581D33558431F325E3543EF6EA3BEB58F793669392DAC37FB6D21DEA69
+
+m = 6
+X = 0x917473C20297D8F46097D95932559BEFD24F7D6E12C95EA8BABB446D0016E368
+Y = 0x3EC7C0E04474E0F6A26927301E8D82EBB45B36960675119B42726EC10BEAE371
+
+m = 7
+X = 0xC33DF0E273A25BCCDACCDF7BCB4E4A6CCE84A1E3BCFA7E9C8C437759E5CC568E
+Y = 0xD405E69EC2F0BEA7D242BF4D743DC6AF6E5068EED23FD28975519C6821BF8E8C
+
+m = 8
+X = 0x4165FC8ABBE27583DB3FBF73A5ABE9D1CDC0CCE74C2E9277000E9C37CF6E6502
+Y = 0xA9738EF04EADBD7DB923A197DF564B66599FD6CCEFC7C7A61FCFA91F382BC4F2
+
+m = 9
+X = 0x2F13E149CD81DCB537A6E319F8958AB924D44CB9AF159EFC4815DAB2E8F085CF
+Y = 0x6F379F283A2BC73C85EA460C8D055845D65E21E6063571B67B8AE4235E03826A
+
+m = 10
+X = 0x5A5C7A63CC1B9E39096A23EDBDB910585FA6F243222022C93C80C970869C3ADD
+Y = 0xBAA2334C228B2FECAF369DBDA74D8580BF0D7332433CC63DFF3E151BC296B43A
+
+m = 11
+X = 0x990FB8C085D200757024A7CFAC7485C58A1C8479395198D364F0C8A0E4C348D9
+Y = 0xECD80E63F368508A38865E3EF47FE85CD685B0A4076E080910B13751F03F87B7
+
+m = 12
+X = 0x24A6E34FE7900B720B9C7D16D059639259EC84597E4270071E34C8F4CE4AA8F0
+Y = 0xE70C2FEE8688B24251836F55B268451C6B01D780FD6B1455731A5E6E15F3595E
+
+m = 13
+X = 0xCDFC5A4D7449DFCEDD07A2ADE38F1395AB8925A48573FE36DD716A4D4405F0A8
+Y = 0xDB55269DB768F7B843F852AF1719CA940316A20B5760ED9F5ABFD2B22904836E
+
+m = 14
+X = 0xAA4C778DB565B117FDF8B97F6C7D8F5C2BC8FC8EE1D45E83CB2D5F869278EC93
+Y = 0x372143067F83875C493F2BF8C440DAA551261DDF4219EFAB282E842A6F216A7C
+
+m = 15
+X = 0xC14A79ED434B7275E929BE94C4EC1B6F422D6FA2D0A1FFBD49BE90E3EB3F8EFE
+Y = 0x3AB7343D8508A4B25717CB00FFF4F8F72EF6BC2FCD64BFA47D2534AF3944B648
+
+m = 16
+X = 0xABF3E2095C8B177E1196962459355C2528D607D1C89052B18491BFC67AE3DB09
+Y = 0xCDF69F0E228FFE33AF198684EA875DE343ED920E963E9F0BAC5DC96F67B8132B
+
+m = 17
+X = 0x9259B53230E01F074F99A1F4A66008B8F60B68676F413D41F9C04222E41EB5C0
+Y = 0x5DFCF8487290353C483B51ABE397670D1A1F8960A127E7433F28E79BEE22CBA1
+
+m = 18
+X = 0xD84EC698A661149A2BDAFAC95546FADF8B886605CDEAC1F65212F06454BE6940
+Y = 0x32C3841C5A304BE2348097C85C65513AEDFD87D1DAFE6AEE9C054845A908EE25
+
+m = 19
+X = 0xBD2D2DFDED7C89F4CC3338824842C16EB980369A31F69E292097AA007B064D50
+Y = 0x3D3C1918E28690722005F8A225BD127BF925AAC8CE5A9D008C241DF1BAF8D62F
+
+m = 20
+X = 0x6B3CBE572B1A3F5FE5410BCE760FEB5093320591ACB953817BDAEC25E78AD3DA
+Y = 0xD78BBEBEF0A416D00E855CD4C6608E1927D97066AFC19ABF27064F513833D6DA
+
+m = 112233445566778899
+X = 0xCC326C5058CC9A69BDF973FC9C884D2CE0FB14A345D75A42B9EDB4E6ADC86354
+Y = 0xC62A2257D0E3E8A6493E626EC3EA9D523BF647DEEDDE79E916FD69845DF9D60C
+
+m = 112233445566778899112233445566778899
+X = 0x37F36537B7C11B67BB28BBE176195157C45B35436A041B8EECA6C890A0FD52AC
+Y = 0x83F3246923B4D29F14B62292A32AA6AB05EC840877FF2B23EE96B0CB7DC313C1
+
+m = 1769805277975163035253775930842367129093741786725376786007349332653323812656658291413435033257677579095366632521448854141275926144187294499863933403633025023
+X = 0xD3A00D4A5C235246E833EE73028521F6959CBFD57F879031C620804A5A15EE4
+Y = 0x8607FB8E3DC827E5FBFD3C233B1F62245B2FAA9458DB10605D4D9719BF347320
+
+m = 104748400337157462316262627929132596317243790506798133267698218707528750292682889221414310155907963824712114916552440160880550666043997030661040721887239
+X = 0xE152362AF7609A04E311D2B591538EC07211C79668838A25DD52FEFFC0A1FD6C
+Y = 0x8CFC47460B9A3A66EE8CE497D02C5D57F2AB4B08C7652AB746FC0DC73AAE39C1
+
+m = 6703903865078345888141381651430168039496664077350965054288133126549307058741788671148197429777343936466127575938031786147409472627479702469884214509568000
+X = 0xAE597AD61FF4489367D4BD4132CCFD738E53C347AA463FFB5EA193713612530C
+Y = 0xBDAF81342A5ABF8B9A62CA88D52C5B6F6873678B6FEB0B991C2E16E32FDEB141
+
+m = 1675925643682395305404517165643562251880026958780896531698856737024179880343339878336382412050263431942974939646683480906434632963478257639757341102436352
+X = 0x6D68D7E26CA83876F061A5DA7C98211B7295105D95A68809C607C3FA779A0804
+Y = 0xC422AE5AB150FFCB160D6B83D500E48074021BC618800E7CA2F97273C6E67358
+
+m = 12785133382149415221402495202586701798620696169446772599038235721862338692190156163951558963856959059232381602864743924427451786769515154396810706943
+X = 0x872741C0C28892A29F34534B3BA89ABB6382B033DE51E483DA70495A55256C33
+Y = 0xD1AC425C776ADF4392B8CD0F5C0F74D550B9CD491F0BA5FF1A5C4E9F5B6329A3
+
+m = 214524875832249255872206855495734426889477529336261655255492425273322727861341825677722947375406711676372335314043071600934941615185418540320233184489636351
+X = 0xBBDC745E6DE704B17131349B4B5B4A74C3F1B010A54F1C7EC609D96C9D26F56
+Y = 0xEBE2E6BEA745FA35F13F6A426F08889423B03CF8BD5E71841E4503E8B70D9CDF
+
+m = 51140486275567859131139077890835526884648461857823088348651153840508287621366854506831244746531272246620295123104269565867055949378266395604768784399
+X = 0x4030688B3171D7822BD5F927E085E90731C30601166A9FEFC4C9910B65AC4438
+Y = 0x58D624C7710EF1B32212785F78E90122E4F5E25775C3F702D2389DA9F9BD9EC
+
+m = 6651529716025206881035279952881520627841152247212784520914425039312606120198879080839643311347169019249080198239408356563413447402270445462102068592377843
+X = 0x222D3259F3438A91CC662C357D35B9C9C431A50E4ACFBBC84EE558229077CE81
+Y = 0xBE913139F0196E38E485CCA8F41F27D9F56D3FB403D9262D23ECA130B6D4228A
+
+m = 3224551824613232232537680077946818660156835288778087344805370397811379731631671254853846826682273677870214778462237171365140390183770226853329363961324241919
+X = 0xBD49C1629FA9DCC53B8081C2E3D67FF2C485F098BFDBCBAAEF356D62C8B937DC
+Y = 0x44D4FA85987422B84DFDD4C661E9093F95B83ACBC103A5A55E723218A61877DC
+
+m = 12486613128442885430380874043991285080254917488396284953815149251315412600634581539066663092297612040669978017623587752845409653167277021864132608
+X = 0x783015F0DB4715136551412DE3D34377BDC912EBACC659B73AF67DBCA7971FA
+Y = 0xA3B84AB91CC6626F90FE059D35727E271C00D34A57FA2423084805BB198A6FED
+
+m = 6864797660130609714981900799081393217269435300143305409394463459185543183397655394245057746333217197532963996371363321113864768612440380340372808892707005429
+X = 0xE08BE120BE2B8213CE99CCE06696936E0600DAA24BD5C4D856C5D4B239187B04
+Y = 0x18C3F112709CF6FA6FBDFB3F6FDC64E05B590A9172AA70DCD948D050C31D71A7
+
+m = 6864797660130609714981900799081393217269435300143305409394463459185543183397655394245057746333217197532963996371363321113864768612440380340372808892707005430
+X = 0xA8D03B6C783CF9303A5F7C4F93893BCB358E4137163BD9AE0D69AB5D786C89BB
+Y = 0x63FB806035A05C6E21D7892AF2096F409D01D23E5EE6B198FDE656052C56BC1C
+
+m = 6864797660130609714981900799081393217269435300143305409394463459185543183397655394245057746333217197532963996371363321113864768612440380340372808892707005431
+X = 0x717026BD0CF7690784464A5ED334B340F164C39D7E54E528974E060B9A1142AD
+Y = 0xD225B8A4826E44EC10546F07C7283796E0F2A2419C3187A4B018EC116565D0A7
+
+m = 6864797660130609714981900799081393217269435300143305409394463459185543183397655394245057746333217197532963996371363321113864768612440380340372808892707005432
+X = 0x97A507F8CED10A2CDC401206D7333CCFC94BB10A2F0875313A602AECD3548A15
+Y = 0xBE70BCE00A9C467E38B8F1FE2ED2B15B1FD659063EB09829680026C3D303B389
+
+m = 6864797660130609714981900799081393217269435300143305409394463459185543183397655394245057746333217197532963996371363321113864768612440380340372808892707005433
+X = 0x553ACFEDF88CB67BA41AFF7AFC10E4033DA5D26CCF37C7A92368C934D8EF1A34
+Y = 0x1E894D7A75FF89A7EAD8B0DA5120F1895AD502FD00D14DC5005A6D75FE9DEF0B
+
+m = 6864797660130609714981900799081393217269435300143305409394463459185543183397655394245057746333217197532963996371363321113864768612440380340372808892707005434
+X = 0x8C6125EA1D79EA756B3E0A13F4D9212F7263D76AAFE912F420052973B4228CDD
+Y = 0x1836D6E2DD52BD45FED4CF30472D71C2A1F19743EA5A4133F136D0BB6F6B5627
+
+m = 6864797660130609714981900799081393217269435300143305409394463459185543183397655394245057746333217197532963996371363321113864768612440380340372808892707005435
+X = 0x38F743EAE098EEF0A1DD876AB112331C136A097509CAA088018E0FB8D168AB30
+Y = 0x6CB3B6207F9860ECB83D4CC84E2E3CFD4A1736413C57F05610E0D52F39FC5C6A
+
+m = 6864797660130609714981900799081393217269435300143305409394463459185543183397655394245057746333217197532963996371363321113864768612440380340372808892707005436
+X = 0x6D321411C2E4603E571119B563FDB84A39C2907A5BAD35A3F5B0BB5F4E874884
+Y = 0xD0CAEE3B69D88FCAC801D6DEDB772C5A6752FA2E70B7C8462C212DB8767105B9
+
+m = 6864797660130609714981900799081393217269435300143305409394463459185543183397655394245057746333217197532963996371363321113864768612440380340372808892707005437
+X = 0xB36D6FAB2E0A74FC883CD9409838E6488BC7B5A025BB776B987E3030B1C19BA8
+Y = 0xD7858284D60BD9FEB433FEA325F820FFD9ED4B702C500AC903B07B17375DC321
+
+m = 6864797660130609714981900799081393217269435300143305409394463459185543183397655394245057746333217197532963996371363321113864768612440380340372808892707005438
+X = 0x4F8A6197415B349FAA6F716D6FA731C6BB28963EC7F8FB1E3B4CAD2F95B87FFE
+Y = 0x637B012FAEE8D7A75E31600215337B66680E88C87B4BEF37882F7F9CD648534B
+
+m = 6864797660130609714981900799081393217269435300143305409394463459185543183397655394245057746333217197532963996371363321113864768612440380340372808892707005439
+X = 0x9C19D1C857C7A24BCF45DDE3DA816C9310EA064D1722CA21ED7E9FA156273F76
+Y = 0x6748E610801EE0CC435B7C7684E186095062F0B0F945797CBA1EFB9F8A33162D
+
+m = 6864797660130609714981900799081393217269435300143305409394463459185543183397655394245057746333217197532963996371363321113864768612440380340372808892707005440
+X = 0x8AAA80C25B0D1C4F9C7ED55490DD1443516A92E78ABCDF5491BC0FFA210714DA
+Y = 0x5EB51EAB682572B08A5EA638F2389E10D3CB72407A5B8D8722E714DA20D398AE
+
+m = 6864797660130609714981900799081393217269435300143305409394463459185543183397655394245057746333217197532963996371363321113864768612440380340372808892707005441
+X = 0x8F9A9567680E53CD4948E044079747E6CDD08F22F155813DD5B05421A84A484E
+Y = 0x7FFB2F1EF0BB440BB042069CDCBA4EA8BF85310B4F58C264A794C36648D3A413
+
+m = 6864797660130609714981900799081393217269435300143305409394463459185543183397655394245057746333217197532963996371363321113864768612440380340372808892707005442
+X = 0xA0202EA29D108949C419E8CEC44AEDBB186EB20703DE96C30E7B81F777EF4CAA
+Y = 0xC558C3FA566D841E5A4320A8AC26B5A33D968FCA0983EE74756A4550A539F062
+
+m = 6864797660130609714981900799081393217269435300143305409394463459185543183397655394245057746333217197532963996371363321113864768612440380340372808892707005443
+X = 0x36F3BB462B064195BFE09D4A42E062D8CCEA8F5F2F0B88D4B9475092C939C9EB
+Y = 0x5D93510DEA301705972BF4A1D354A89369131FBEE8797461A1F0EE712FA16F46
+
+m = 6864797660130609714981900799081393217269435300143305409394463459185543183397655394245057746333217197532963996371363321113864768612440380340372808892707005444
+X = 0x3DA216B079C4F3C2A5994AAAEA1E5317F75FAC2603BE93A3E4A0D62E2173914
+Y = 0xA0B9AE3D930ED404F4297BFCD85BCA2343BA00C81FC2B52720EAE72CD1A0CD28
+
+m = 6864797660130609714981900799081393217269435300143305409394463459185543183397655394245057746333217197532963996371363321113864768612440380340372808892707005445
+X = 0x2F05C2086D70439F241CB519E0DDDAE74665AC2E8C6E37606BE1F5866623C77A
+Y = 0xE5D726A483CF4659F3EE31E34516921BF55405ADB5891177E6D8921D4CA3A58D
+
+m = 6864797660130609714981900799081393217269435300143305409394463459185543183397655394245057746333217197532963996371363321113864768612440380340372808892707005446
+X = 0x893EF9F7B2A14F17501A5B446A5B5D62B1B2E94ED7162717D612ED6E1CEE4165
+Y = 0xB628E67C197A2A672C558764B69D79C2F1F7ECD55EBB3C870E854D5BA861FA07
+
+m = 6864797660130609714981900799081393217269435300143305409394463459185543183397655394245057746333217197532963996371363321113864768612440380340372808892707005447
+X = 0x8EB2D128495074CC7149E19DB2A5CA5A04960EC735A8A6FB77EBC74B2A6BBBD5
+Y = 0xE623CA71BFAA48B7E8972EAFACE6561144A5A9CEE366769C8C9E786FDC6EB407
+
+m = 6864797660130609714981900799081393217269435300143305409394463459185543183397655394245057746333217197532963996371363321113864768612440380340372808892707005448
+X = 0x891DC951F8F41D80A124A6675058D305BB97F70E3BB2C13BA8056EDD15323006
+Y = 0x428DF0068E6BB7DF3B03AA7765B45422995F9AEE89CA2CA1EC400B99A4C331EC
diff --git a/src/tests/data/pubkey/ecdh.vec b/src/tests/data/pubkey/ecdh.vec
index 272cc1906..085041b1a 100644
--- a/src/tests/data/pubkey/ecdh.vec
+++ b/src/tests/data/pubkey/ecdh.vec
@@ -506,3 +506,104 @@ K = 00c2bfafcd7fbd3e2fd1c750fdea61e70bd4787a7e68468c574ee99ebc47eedef064e8944a73
Secret = 0x00df14b1f1432a7b0fb053965fd8643afee26b2451ecb6a8a53a655d5fbe16e4c64ce8647225eb11e7fdcb23627471dffc5c2523bd2ae89957cba3a57a23933e5a78
CounterKey = 0401a32099b02c0bd85371f60b0dd20890e6c7af048c8179890fda308b359dbbc2b7a832bb8c6526c4af99a7ea3f0b3cb96ae1eb7684132795c478ad6f962e4a6f446d017627357b39e9d7632a1370b3e93c1afb5c851b910eb4ead0c9d387df67cde85003e0e427552f1cd09059aad0262e235cce5fba8cedc4fdc1463da76dcd4b6d1a46
K = 01aaf24e5d47e4080c18c55ea35581cd8da30f1a079565045d2008d51b12d0abb4411cda7a0785b15d149ed301a3697062f42da237aa7f07e0af3fd00eb1800d9c41
+
+[frp256v1]
+Secret = 0x7d7dc5f71eb29ddaf80d6214632eeae03d9058af1fb6d22ed80badb62bc1a534
+CounterKey = 04B6B3D4C356C139EB31183D4749D423958C27D2DCAF98B70164C97A2DD98F5CFF6142E0F7C8B204911F9271F0F3ECEF8C2701C307E8E4C9E183115A1554062CFB
+K = 13f0a5d81cdacbb52f34834a47747292d2e45282d6afeeca1204e6e3770a0803
+
+Secret = 0x38f65d6dce47676044d58ce5139582d568f64bb16098d179dbab07741dd5caf5
+CounterKey = 04DE681B2898119885373F7EAFDDF94CA0A526794BDC8DA00E0E463860D227575EB1240D67C641B70BE151A6D456C77BE3AF2997F8858D3E07D862E37EBE0A1045
+K = 94485a14ec1be67a0b112ced4c909553be4d6e506a4994a39dd10d92bbd1b010
+
+Secret = 0x1accfaf1b97712b85a6f54b148985a1bdc4c9bec0bd258cad4b3d603f49f32c8
+CounterKey = 04A13ED122D99792D3CF188FE2C964EADA77A95CE2D03BF3451BBA94DE3E967BACD141A90C972AE0DA909A77BB02B973176238E32431CE8F378E039DEB74989A21
+K = d0dc34f3c7788ae000543cdaee667d50bce684957a12cb062c95af2e8de57bc9
+
+Secret = 0x207c43a79bfee03db6f4b944f53d2fb76cc49ef1c9c4d34d51b6c65c4db6932d
+CounterKey = 048A62BAE6BE63CE26B48368BE0B0BCA7CC6FC33B81FD685FD1085EE128F242FE4E548BB18E8E64A4F0B3852962CB58633386C2A79D995C825D434C4B5A727B1B9
+K = 13387eee0e51ce0f84f28f339a45c8e8c62214354f04a28714bd4f5fffe474ef
+
+Secret = 0x59137e38152350b195c9718d39673d519838055ad908dd4757152fd8255c09bf
+CounterKey = 0432B3881D7C703DB9BF613F52E9C917F096839835C025DC022967BBD1C9886B6B152BF2581D33558431F325E3543EF6EA3BEB58F793669392DAC37FB6D21DEA69
+K = 7d89e7b7ff24d8ddba08b88cc7495972cdaa5a53c0df32253d6bbe895a9992f4
+
+Secret = 0xf5f8e0174610a661277979b58ce5c90fee6c9b3bb346a90a7196255e40b132ef
+CounterKey = 04917473C20297D8F46097D95932559BEFD24F7D6E12C95EA8BABB446D0016E3683EC7C0E04474E0F6A26927301E8D82EBB45B36960675119B42726EC10BEAE371
+K = 1909e8b5c758243338c4532ecd7a1f3bb7fb5dff03032c018fe91d2c693af985
+
+Secret = 0x3b589af7db03459c23068b64f63f28d3c3c6bc25b5bf76ac05f35482888b5190
+CounterKey = 04C33DF0E273A25BCCDACCDF7BCB4E4A6CCE84A1E3BCFA7E9C8C437759E5CC568ED405E69EC2F0BEA7D242BF4D743DC6AF6E5068EED23FD28975519C6821BF8E8C
+K = 3b530c6c54547f5a01e9ebcc8baf7cec59db50717aee05aad8e0effe2897737e
+
+Secret = 0xd8bf929a20ea7436b2461b541a11c80e61d826c0a4c9d322b31dd54e7f58b9c8
+CounterKey = 044165FC8ABBE27583DB3FBF73A5ABE9D1CDC0CCE74C2E9277000E9C37CF6E6502A9738EF04EADBD7DB923A197DF564B66599FD6CCEFC7C7A61FCFA91F382BC4F2
+K = 3f67dc863dd861b84f009064efdffb4510a974411350b8ee948949596584277f
+
+Secret = 0x0f9883ba0ef32ee75ded0d8bda39a5146a29f1f2507b3bd458dbea0b2bb05b4d
+CounterKey = 042F13E149CD81DCB537A6E319F8958AB924D44CB9AF159EFC4815DAB2E8F085CF6F379F283A2BC73C85EA460C8D055845D65E21E6063571B67B8AE4235E03826A
+K = 7607bc27762d84adb0bb49b7541021ab2fb4530882c90dda763e5b948bf5d425
+
+Secret = 0x2beedb04b05c6988f6a67500bb813faf2cae0d580c9253b6339e4a3337bb6c08
+CounterKey = 045A5C7A63CC1B9E39096A23EDBDB910585FA6F243222022C93C80C970869C3ADDBAA2334C228B2FECAF369DBDA74D8580BF0D7332433CC63DFF3E151BC296B43A
+K = cf84b2ac89be02b0a92dbdbda22a17760f66972a2e02af45bdba493076dfab75
+
+Secret = 0x77c15dcf44610e41696bab758943eff1409333e4d5a11bbe72c8f6c395e9f848
+CounterKey = 04990FB8C085D200757024A7CFAC7485C58A1C8479395198D364F0C8A0E4C348D9ECD80E63F368508A38865E3EF47FE85CD685B0A4076E080910B13751F03F87B7
+K = 5fa05fa24b0a947b7ab64192b39122a4b613aa4525a14a0c87d886347310625f
+
+Secret = 0x42a83b985011d12303db1a800f2610f74aa71cdf19c67d54ce6c9ed951e9093e
+CounterKey = 0424A6E34FE7900B720B9C7D16D059639259EC84597E4270071E34C8F4CE4AA8F0E70C2FEE8688B24251836F55B268451C6B01D780FD6B1455731A5E6E15F3595E
+K = d2addc2054a135d90ff08c15c9536bc0b9c6be3ae3d54755eb520d2f47711c93
+
+Secret = 0xceed35507b5c93ead5989119b9ba342cfe38e6e638ba6eea343a55475de2800b
+CounterKey = 04CDFC5A4D7449DFCEDD07A2ADE38F1395AB8925A48573FE36DD716A4D4405F0A8DB55269DB768F7B843F852AF1719CA940316A20B5760ED9F5ABFD2B22904836E
+K = 9eb0bbfcb42e26b18656023797a2f29ec3dabbfb0d61517303437785ae8d2d30
+
+Secret = 0x43e0e9d95af4dc36483cdd1968d2b7eeb8611fcce77f3a4e7d059ae43e509604
+CounterKey = 04AA4C778DB565B117FDF8B97F6C7D8F5C2BC8FC8EE1D45E83CB2D5F869278EC93372143067F83875C493F2BF8C440DAA551261DDF4219EFAB282E842A6F216A7C
+K = c1741b1a13f889f22aa04ed0752ce2eb3d8ed274652f1cc4b8f88242090f37ba
+
+Secret = 0xb2f3600df3368ef8a0bb85ab22f41fc0e5f4fdd54be8167a5c3cd4b08db04903
+CounterKey = 04C14A79ED434B7275E929BE94C4EC1B6F422D6FA2D0A1FFBD49BE90E3EB3F8EFE3AB7343D8508A4B25717CB00FFF4F8F72EF6BC2FCD64BFA47D2534AF3944B648
+K = 7b23d5214cf03df7c9b466ab18b579becfb860bb59232e73e52c35ba1f92999a
+
+Secret = 0x4002534307f8b62a9bf67ff641ddc60fef593b17c3341239e95bdb3e579bfdc8
+CounterKey = 04ABF3E2095C8B177E1196962459355C2528D607D1C89052B18491BFC67AE3DB09CDF69F0E228FFE33AF198684EA875DE343ED920E963E9F0BAC5DC96F67B8132B
+K = 8e5257b71f3d5c9503ed89ae829a6d7ec0227913d24ff58db1729f66db8cd72e
+
+Secret = 0x4dfa12defc60319021b681b3ff84a10a511958c850939ed45635934ba4979147
+CounterKey = 049259B53230E01F074F99A1F4A66008B8F60B68676F413D41F9C04222E41EB5C05DFCF8487290353C483B51ABE397670D1A1F8960A127E7433F28E79BEE22CBA1
+K = 6968a87c80e9a286057618af02f4f0563e63b6411277be7888865ea11c937bd0
+
+Secret = 0x1331f6d874a4ed3bc4a2c6e9c74331d3039796314beee3b7152fcdba5556304e
+CounterKey = 04D84EC698A661149A2BDAFAC95546FADF8B886605CDEAC1F65212F06454BE694032C3841C5A304BE2348097C85C65513AEDFD87D1DAFE6AEE9C054845A908EE25
+K = 6ac85b3b120ee08ad210ec06cfbc5dd355e0589d1bc72a1bdf0d2f1e721a2195
+
+Secret = 0xdd5e9f70ae740073ca0204df60763fb6036c45709bf4a7bb4e671412fad65da3
+CounterKey = 04BD2D2DFDED7C89F4CC3338824842C16EB980369A31F69E292097AA007B064D503D3C1918E28690722005F8A225BD127BF925AAC8CE5A9D008C241DF1BAF8D62F
+K = eca6485c9c58dae86bcf878ea2ac2416958ab9fe11d7d2ff1e7817032c37d89a
+
+Secret = 0x5ae026cfc060d55600717e55b8a12e116d1d0df34af831979057607c2d9c2f76
+CounterKey = 046B3CBE572B1A3F5FE5410BCE760FEB5093320591ACB953817BDAEC25E78AD3DAD78BBEBEF0A416D00E855CD4C6608E1927D97066AFC19ABF27064F513833D6DA
+K = d5bc381bd03a90f296da9d4697c552e1a0be6a8b87220f317fe420572156a5fd
+
+Secret = 0xb601ac425d5dbf9e1735c5e2d5bdb79ca98b3d5be4a2cfd6f2273f150e064d9d
+CounterKey = 04CC326C5058CC9A69BDF973FC9C884D2CE0FB14A345D75A42B9EDB4E6ADC86354C62A2257D0E3E8A6493E626EC3EA9D523BF647DEEDDE79E916FD69845DF9D60C
+K = c2c562835ed929f9bda8e99cc6e3c37501f0dd3871b8c963e0f55acad1d0ff23
+
+Secret = 0xfefb1dda1845312b5fce6b81b2be205af2f3a274f5a212f66c0d9fc33d7ae535
+CounterKey = 0437F36537B7C11B67BB28BBE176195157C45B35436A041B8EECA6C890A0FD52AC83F3246923B4D29F14B62292A32AA6AB05EC840877FF2B23EE96B0CB7DC313C1
+K = c0f58047196666c8ca9d51546a7deb57017aa46f680441de3f64edd361050e1b
+
+Secret = 0x334ae0c4693d23935a7e8e043ebbde21e168a7cba3fa507c9be41d7681e049ce
+CounterKey = 040D3A00D4A5C235246E833EE73028521F6959CBFD57F879031C620804A5A15EE48607FB8E3DC827E5FBFD3C233B1F62245B2FAA9458DB10605D4D9719BF347320
+K = 704dafe3d88a2e9aea3abc28992c959cd547f2e11d8bbc73937a6cd04f77f84b
+
+Secret = 0x2c4bde40214fcc3bfc47d4cf434b629acbe9157f8fd0282540331de7942cf09d
+CounterKey = 04E152362AF7609A04E311D2B591538EC07211C79668838A25DD52FEFFC0A1FD6C8CFC47460B9A3A66EE8CE497D02C5D57F2AB4B08C7652AB746FC0DC73AAE39C1
+K = c026b625989f1c31e9330792ca6a9fd11896938ade31a91d38ab0457d911eeaa
+
+Secret = 0x85a268f9d7772f990c36b42b0a331adc92b5941de0b862d5d89a347cbf8faab0
+CounterKey = 04AE597AD61FF4489367D4BD4132CCFD738E53C347AA463FFB5EA193713612530CBDAF81342A5ABF8B9A62CA88D52C5B6F6873678B6FEB0B991C2E16E32FDEB141
+K = 19ee841c07e4874d727e4d56a664cbc0af6238ca49fd54f567c9829299b8dbff
diff --git a/src/tests/data/pubkey/ecdsa_rfc6979.vec b/src/tests/data/pubkey/ecdsa_rfc6979.vec
index 311734c97..a9fafadc6 100644
--- a/src/tests/data/pubkey/ecdsa_rfc6979.vec
+++ b/src/tests/data/pubkey/ecdsa_rfc6979.vec
@@ -340,3 +340,24 @@ Signature = 00C114E2B133AD8E725AF43AEFC381BE87063DB3FC00CAFAEB1949015CF4EC9EC247
Hash = SHA-512
Signature = 0080F3C4742E7341BE2E4D86E88757AB96F62427B500FD634D64F554BEC04211952798147420BBC98E15
+
+# frp256v1 (generated by botan)
+
+Group = frp256v1
+X = 0xC9AFA9D845BA75166B5C215767B1D6934E50C3DB36E89B127B8A622B120F6721
+
+Msg = 73616D706C65
+Hash = SHA-1
+Signature = C166CA2860656988B707FBCF329B01A4D8A7DC8585F4AEDDA4BF4040B44033F1310AA6C1F323051C82868F29201511C027445D7F2177E4AF42B85089C836B258
+
+Hash = SHA-224
+Signature = 21FCFA0D5FA4C22615FAF23F4A8881004A71EE40228FD68E4C200668A156696227987B360BCA567173B8F2898E3522D3AD27EF94DCE5163401D1AC596D4041F5
+
+Hash = SHA-256
+Signature = 1E56BDA16AD1CA21C8B56EB11A01C44985A8C71D504E42C554902525F72D975F1CD22B10EA0591A641BDD694EAF9DE6631D0C89425BCAC2AEEB49EBB445D9F05
+
+Hash = SHA-384
+Signature = 0E1F2F0E298D5D281B69D211792C464D4AB540C1A998BAB13855C852C25BEF3D0C8CFED46EECD54EF7B8E4F54FD5B58F8FF713D416FEC1214E6CA874D5FBD842
+
+Hash = SHA-512
+Signature = 0A818869A89433DB9E5838D6934FA7C15259250B8FE025DB3DC41036B120288A6DFB2464BF9062D035A6FBEC2B8B298A53F228DD7E8501BA479C008B060F0DEC
diff --git a/src/tests/test_ecdh.cpp b/src/tests/test_ecdh.cpp
index a6a77fabf..1ab2c4801 100644
--- a/src/tests/test_ecdh.cpp
+++ b/src/tests/test_ecdh.cpp
@@ -51,7 +51,7 @@ class ECDH_Keygen_Tests : public PK_Key_Generation_Test
std::vector<std::string> keygen_params() const override
{
return { "secp256r1", "secp384r1", "secp521r1",
- "brainpool256r1", "brainpool384r1", "brainpool512r1" };
+ "brainpool256r1", "brainpool384r1", "brainpool512r1", "frp256v1" };
}
std::unique_ptr<Botan::Private_Key> make_key(Botan::RandomNumberGenerator& rng,
diff --git a/src/tests/test_ecdsa.cpp b/src/tests/test_ecdsa.cpp
index 15490f1f8..be56c315e 100644
--- a/src/tests/test_ecdsa.cpp
+++ b/src/tests/test_ecdsa.cpp
@@ -64,7 +64,7 @@ class ECDSA_Signature_KAT_Tests : public PK_Signature_Generation_Test
class ECDSA_Keygen_Tests : public PK_Key_Generation_Test
{
public:
- std::vector<std::string> keygen_params() const override { return { "secp256r1", "secp384r1", "secp521r1" }; }
+ std::vector<std::string> keygen_params() const override { return { "secp256r1", "secp384r1", "secp521r1", "frp256v1" }; }
std::unique_ptr<Botan::Private_Key> make_key(Botan::RandomNumberGenerator& rng,
const std::string& param) const override