From ea1fc30f19f2192408e22138496cb1fe86ac95ca Mon Sep 17 00:00:00 2001 From: Simon Cogliani Date: Sun, 24 Jul 2016 12:43:33 +0200 Subject: ANSSI elliptic curve cryptography frp256v1 - Parameters available here: https://www.legifrance.gouv.fr/affichTexte.do?cidTexte=JORFTEXT000024668816 - DER format according to the ANS1 syntax defined in ANSI X9.62 standard available here: http://www.ssi.gouv.fr/agence/publication/publication-dun-parametrage-de-courbe-elliptique-visant-des-applications-de-passeport-electronique-et-de-ladministration-electronique-francaise/ --- src/lib/asn1/oid_lookup/default.cpp | 2 ++ src/lib/pubkey/ec_group/named.cpp | 10 ++++++++++ 2 files changed, 12 insertions(+) (limited to 'src') 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; } -- cgit v1.2.3 From c006e97219dc93dd2d8dcaca5c325296e1ce3d55 Mon Sep 17 00:00:00 2001 From: Simon Cogliani Date: Sun, 24 Jul 2016 12:56:53 +0200 Subject: Added test vectors ecc point multiplication for frp256v1 --- src/tests/data/pubkey/ecc.vec | 209 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 209 insertions(+) (limited to 'src') 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 -- cgit v1.2.3 From a7bcb02a26dc095a1b9c7b06b02c9f4412777735 Mon Sep 17 00:00:00 2001 From: Simon Cogliani Date: Sun, 31 Jul 2016 13:39:36 +0200 Subject: Added test vectors ecdh_kat and ecdh_keygen for frp256v1 --- src/tests/data/pubkey/ecdh.vec | 101 +++++++++++++++++++++++++++++++++++++++++ src/tests/test_ecdh.cpp | 2 +- 2 files changed, 102 insertions(+), 1 deletion(-) (limited to 'src') 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/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 keygen_params() const override { return { "secp256r1", "secp384r1", "secp521r1", - "brainpool256r1", "brainpool384r1", "brainpool512r1" }; + "brainpool256r1", "brainpool384r1", "brainpool512r1", "frp256v1" }; } std::unique_ptr make_key(Botan::RandomNumberGenerator& rng, -- cgit v1.2.3 From 66b336444716a868ac0f9ae464aab5b02a2db8a1 Mon Sep 17 00:00:00 2001 From: Simon Cogliani Date: Mon, 1 Aug 2016 22:59:18 +0200 Subject: Added test vectors ecdsa_rfc6979 for frp256v1 --- src/tests/data/pubkey/ecdsa_rfc6979.vec | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'src') diff --git a/src/tests/data/pubkey/ecdsa_rfc6979.vec b/src/tests/data/pubkey/ecdsa_rfc6979.vec index 311734c97..5aafead36 100644 --- a/src/tests/data/pubkey/ecdsa_rfc6979.vec +++ b/src/tests/data/pubkey/ecdsa_rfc6979.vec @@ -340,3 +340,25 @@ Signature = 00C114E2B133AD8E725AF43AEFC381BE87063DB3FC00CAFAEB1949015CF4EC9EC247 Hash = SHA-512 Signature = 0080F3C4742E7341BE2E4D86E88757AB96F62427B500FD634D64F554BEC04211952798147420BBC98E15 + +# test vectors generated with python-ecdsa with a frp256v1 addition patch +# https://github.com/warner/python-ecdsa + +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 -- cgit v1.2.3 From c81c0d2c69caa8d8bd79b1ad5757c8eb28494720 Mon Sep 17 00:00:00 2001 From: Simon Cogliani Date: Mon, 1 Aug 2016 23:44:06 +0200 Subject: Added ecdsa_keygen for frp256v1 --- src/tests/data/pubkey/ecdsa_rfc6979.vec | 3 +-- src/tests/test_ecdsa.cpp | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/tests/data/pubkey/ecdsa_rfc6979.vec b/src/tests/data/pubkey/ecdsa_rfc6979.vec index 5aafead36..a9fafadc6 100644 --- a/src/tests/data/pubkey/ecdsa_rfc6979.vec +++ b/src/tests/data/pubkey/ecdsa_rfc6979.vec @@ -341,8 +341,7 @@ Signature = 00C114E2B133AD8E725AF43AEFC381BE87063DB3FC00CAFAEB1949015CF4EC9EC247 Hash = SHA-512 Signature = 0080F3C4742E7341BE2E4D86E88757AB96F62427B500FD634D64F554BEC04211952798147420BBC98E15 -# test vectors generated with python-ecdsa with a frp256v1 addition patch -# https://github.com/warner/python-ecdsa +# frp256v1 (generated by botan) Group = frp256v1 X = 0xC9AFA9D845BA75166B5C215767B1D6934E50C3DB36E89B127B8A622B120F6721 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 keygen_params() const override { return { "secp256r1", "secp384r1", "secp521r1" }; } + std::vector keygen_params() const override { return { "secp256r1", "secp384r1", "secp521r1", "frp256v1" }; } std::unique_ptr make_key(Botan::RandomNumberGenerator& rng, const std::string& param) const override -- cgit v1.2.3