http://git-wip-us.apache.org/repos/asf/incubator-milagro-crypto-c/blob/8d28d2c3/testVectors/fp/test_vector_BLS383.txt ---------------------------------------------------------------------- diff --git a/testVectors/fp/test_vector_BLS383.txt b/testVectors/fp/test_vector_BLS383.txt new file mode 100644 index 0000000..a52c592 --- /dev/null +++ b/testVectors/fp/test_vector_BLS383.txt @@ -0,0 +1,161 @@ +# FP ARITHMETICS - CURVE: BLS383, Modulo = 0x5565569564ab6eb5a06dadc41fea9284a0ad462cf365a511ac31b801696124f47a8c3f298a64852bda371d6485aab0ab, BIGmax = 2^383 + +#test1 +FP_1 = 0CD1AC43536662521908F0A33391651457A2FAE4FFF9A31FB0C570F22BB83E18290B71132CA9D6CC7EBD6F4E03ACF169 +FP_2 = 17C2B57E79B90E495B8155FE0D31915BBB3D015F3CB860938090E169FA18B876AC81F93FA781A424F24E489B86D8F751 +FPadd = 249461C1CD1F709B748A46A140C2F67012DFFC443CB203B33156525C25D0F68ED58D6A52D42B7AF1710BB7E98A85E8BA +FPsub = 4A744D5A3E58C2BE5DF54869464A663D3D133FB2B6A6E79DDC6647899B00AA95F715B6FD0F8CB7D366A64417027EAAC3 +FP_1nres = 0CD1AC43536662521908F0A33391651457A2FAE4FFF9A31FB0C570F22BB83E18290B71132CA9D6CC7EBD6F4E03ACF169 +FP_2nres = 17C2B57E79B90E495B8155FE0D31915BBB3D015F3CB860938090E169FA18B876AC81F93FA781A424F24E489B86D8F751 +FPmulmod = 381B4CECB9936B9354AC70977AF1998230C8D1724FB1E93FF89C1A5A8488463BCAE20DF8FA0FBAB4803E21F74552227A +FPsmallmul = 2ACB640BDD54687F59EBB89BE3C36046CBB086C50C5ABA2B3B84B1744BD147FD1FE62B96343DDED1192F3BA79F16BD6F +FPsqr = 1617CC1739AF7E054DF94542A36A1E02679833B84948217EE250D1571D28CCC14229667F8E2B4F46544E1C04B0FEA9C2 +FPreduce = 0CD1AC43536662521908F0A33391651457A2FAE4FFF9A31FB0C570F22BB83E18290B71132CA9D6CC7EBD6F4E03ACF169 +FPneg = 4893AA5211450C638764BD20EC592D70490A4B47F36C01F1FB6C470F3DA8E6DC5180CE165DBAAE5F5B79AE1681FDBF42 +FPdiv2 = 311B816C5C08E883DCBB4F33A9BDFBCC7C282088F9AFA418AE7B9479CA8CB18651CBD81E5B872DFC2C7A465944ABD10A +FPinv = 430BC4A505129A3C92628B7AACCF38AD6CB503A5C91744EAFE4883BA1DBF0C75CC0AF3190CF67BD939123F8AAC5EF054 +FPexp = 22075B57D6E833F40116B74900D3D6DE0692AF56EEBDA839DEA2B6A51CCBF9CB7405A3B2629B9AC3BF196A9FA41B8006 + +#test2 +FP_1 = 16EF958D0863EBBD0187C86FBB030D2F3B6A1B210838391556AC95F2B124030459E6A1AD6037A9711B1EC9E7B252FD58 +FP_2 = 5496949FE17024A14AD767EC30926B699E4CED00CA5A39834E8A981A86828C6B64B12661443216958009E917EF079263 +FPadd = 1620D3978528A1A8ABF18297CBAAE6143909C1F4DF2CCD86F905760BCE456A7B440B88E51A053ADAC0F1959B1BAFDF10 +FPsub = 17BE57828B9F35D1571E0E47AA5B344A3DCA744D3143A4A3B453B5D994029B8D6FC1BA75A66A1807754BFE3448F61BA0 +FP_1nres = 16EF958D0863EBBD0187C86FBB030D2F3B6A1B210838391556AC95F2B124030459E6A1AD6037A9711B1EC9E7B252FD58 +FP_2nres = 5496949FE17024A14AD767EC30926B699E4CED00CA5A39834E8A981A86828C6B64B12661443216958009E917EF079263 +FPmulmod = 0587B32DDC371912897C1408415F846C4E1B1DB141FE741A43ACD7A3364E801E8CD0A15A40A9DC70E4463BC8274C3EB0 +FPsmallmul = 3A912A578A9057F6CE7278D50E495ECF10CA82F06B66F0B20A5A6B7818A5D4428DE9D272AD6394135AC5A843EBE8841A +FPsqr = 4BF513AF53E3125DD0ACC74EF3F73E16CE36A85118657BFBD6F8B1B0BB00C542AD232A56217DDEF882286EF5E458D984 +FPreduce = 16EF958D0863EBBD0187C86FBB030D2F3B6A1B210838391556AC95F2B124030459E6A1AD6037A9711B1EC9E7B252FD58 +FPneg = 3E75C1085C4782F89EE5E55464E7855565432B0BEB2D6BFC5585220EB83D21F020A59D7C2A2CDBBABF18537CD357B353 +FPdiv2 = 0B77CAC68431F5DE80C3E437DD8186979DB50D90841C1C8AAB564AF9589201822CF350D6B01BD4B88D8F64F3D9297EAC +FPinv = 50ABAEC4EE05B307F751DF585526249B1DFC24E4E73A5EF123C0877D274C0511E5AE0F45A24D20CD320673DE694C5E99 +FPexp = 10F8959B2D1979E9E53D8D24F7993F8192D6C302D8CA11D82F312611A83E5A19FD5A7F048B42C91E1505EE873C5A40B2 + +#test3 +FP_1 = 0AFFA91F1AD9A3ACAD2642AD1747E2E04BA64A075ADE1679731E83524938D5D95CF69FDF947A3BC98281E05757FE0537 +FP_2 = 40391A780264E5C9F4400937EFFC363EF578F779BDC20556A6953145553A520DB4F3D4BA198558826689BE43DC37226A +FPadd = 4B38C3971D3E8976A1664BE50744191F411F418118A01BD019B3B4979E7327E711EA7499ADFF944BE90B9E9B343527A1 +FPsub = 202BE53C7D202C985953E73947363F25F6DA98BA9081B63478BB0A0E5D5FA8C0228F0A4F05596872F62F3F7801719378 +FP_1nres = 0AFFA91F1AD9A3ACAD2642AD1747E2E04BA64A075ADE1679731E83524938D5D95CF69FDF947A3BC98281E05757FE0537 +FP_2nres = 40391A780264E5C9F4400937EFFC363EF578F779BDC20556A6953145553A520DB4F3D4BA198558826689BE43DC37226A +FPmulmod = 50DDAF8C766362FB81F3E5FC0EA304394B9E943D0152BDC6FB9AB1D79768D1FEFAF85BD2CAF1E2E11DB64B83A0FAC737 +FPsmallmul = 189744A1A7D4F6092310ECFEC8E44A3E53D19E1C99473BACD2FF693572D735892715FF924261D0B33EDBA604EA41837B +FPsqr = 1FC6E5F5F216772156229D54A0B3051833B945C1FDA2AE71F1E0F42D66FA6928B003E2316519A0BDF436975680D849D6 +FPreduce = 0AFFA91F1AD9A3ACAD2642AD1747E2E04BA64A075ADE1679731E83524938D5D95CF69FDF947A3BC98281E05757FE0537 +FPneg = 4A65AD7649D1CB08F3476B1708A2AFA45506FC2598878E98391334AF20284F1B1D959F49F5EA496257B53D0D2DACAB74 +FPdiv2 = 30327FDA3FC2893126C9F8389B993AB27629C81A2721DDC58FA81DA9D94CFD66EBC16F848F6F607AAE5C7EDDEED45AF1 +FPinv = 0F54430A314936A057BF7A197768F337225386773DD89D252EB90965AE59DA8FA48EE00D04962F72DDAA25C89F9DE391 +FPexp = 3D419E4CFECDBEF83DF7512DE6992DD3F0302EAB9BE2EBDA6758775A447B60D3E39B8ECD42A925F3A19E7DAE5FE81E66 + +#test4 +FP_1 = 1B6EAAD4A80281594B91888D2990F2726FEACFFF8AEEA164F1EA745127BEF8B253BB06665DF1AC4BAC7C60F112A36DC6 +FP_2 = 1FC885A9AFF1EF860006045DE7913FCEF8B85F93C54D478090F62763BC073856C98B6344433B7BC60933CDDB5E4819FD +FPadd = 3B37307E57F470DF4B978CEB1122324168A32F93503BE8E582E09BB4E3C631091D4669AAA12D2811B5B02ECC70EB87C3 +FPsub = 510B7BC05CBC0088EBF931F361EA452817DFB698B906FEF60D2604EED518E55004BBE24BA51AB5B17D7FB07A3A060474 +FP_1nres = 1B6EAAD4A80281594B91888D2990F2726FEACFFF8AEEA164F1EA745127BEF8B253BB06665DF1AC4BAC7C60F112A36DC6 +FP_2nres = 1FC885A9AFF1EF860006045DE7913FCEF8B85F93C54D478090F62763BC073856C98B6344433B7BC60933CDDB5E4819FD +FPmulmod = 3F558C92CA3CBB9925770F5F0A4B6F44B992F111498A357967F9E5994DD125DDB77D95D1BCE7F2D554D03291D572E256 +FPsmallmul = 1222A88E6216C15C12664C373FE9C0EA7D244D7493215EBC6E93632751524819D5A982830C432B712E36713D296237BB +FPsqr = 3FF2EAA099CF018FD24EE57E91DC46AF9A994748D2EFC2610D66F46DD8668EE7D7254CDC775F291DCBF47A9115345678 +FPreduce = 1B6EAAD4A80281594B91888D2990F2726FEACFFF8AEEA164F1EA745127BEF8B253BB06665DF1AC4BAC7C60F112A36DC6 +FPneg = 39F6ABC0BCA8ED5C54DC2536F659A01230C2762D687703ACBA4743B041A22C4226D138C32C72D8E02DBABC73730742E5 +FPdiv2 = 0DB7556A540140ACA5C8C44694C8793937F567FFC57750B278F53A2893DF7C5929DD83332EF8D625D63E30788951B6E3 +FPinv = 37DAA63716C5505A408E7E0A3591B31EB4ECD9F65C421DC56CFB2E20650DE9BE8BE86F2AAA4F2B54CC6BD120445D6512 +FPexp = 257484847015AACADFB53EE959B94E6C1DFF34A5AFFC211A7622A312D2129B5301CA67849CFB1EC4EDB339F8B0FC5EA9 + +#test5 +FP_1 = 32F63EC7FC55ED1C10785BC658B5696BD8F0F1CC4EA9CEE6E6F4AA3D415F953532FB03F181A531FA96ADC353157E0C51 +FP_2 = 12A3CEB4886D8763454340952C538E4B18DAB88E3F27329724F34DF08A552938A1F292CD4819CF92B7908B9872CC670F +FPadd = 459A0D7C84C3747F55BB9C5B8508F7B6F1CBAA5A8DD1017E0BE7F82DCBB4BE6DD4ED96BEC9BF018D4E3E4EEB884A7360 +FPsub = 2052701373E865B8CB351B312C61DB20C016393E0F829C4FC2015C4CB70A6BFC91087124398B6267DF1D37BAA2B1A542 +FP_1nres = 32F63EC7FC55ED1C10785BC658B5696BD8F0F1CC4EA9CEE6E6F4AA3D415F953532FB03F181A531FA96ADC353157E0C51 +FP_2nres = 12A3CEB4886D8763454340952C538E4B18DAB88E3F27329724F34DF08A552938A1F292CD4819CF92B7908B9872CC670F +FPmulmod = 086B053DD680BA615388A0AB83B8215E701A22E379B58527E6A6DB99B2CD2E7F5957992D359ACAC32E2D7349C297BF00 +FPsmallmul = 52A3C2E4E402198C828F30EAD781419F5607131A51A5DBACA8960E5D7ED61B4D9910EB9F5C7D59EE9FB60E483A9707D3 +FPsqr = 375456E430C7AE307261BA1F1CF8EB8A7804B8A1F3BBD11C54AB86A9E4685324FF8977DE6E4D3B554015E5EBF1B296BA +FPreduce = 32F63EC7FC55ED1C10785BC658B5696BD8F0F1CC4EA9CEE6E6F4AA3D415F953532FB03F181A531FA96ADC353157E0C51 +FPneg = 226F17CD685581998FF551FDC7352918C7BC5460A4BBD62AC53D0DC428018FBF47913B3808BF533143895A11702CA45A +FPdiv2 = 442DCAAEB080ADE8D87304C53C4FFDF83CCF1BFCA107B9FC4993311F55605D14D6C3A18D8604DB933872705BCD945E7E +FPinv = 0182F37B786F3F02B64F2C135BDA3712ED15CBE0487D32EC29A1B133667554B6BEB2087B71FC3E9F40CF5E6E43791E6F +FPexp = 2408FC38AFFB1A8ABA16184C9C392A7CBE506F4300F1B2FE34BF8D69BD93FED3442641AD1E3723ACECCEAFFED144DDAA + +#test6 +FP_1 = 3B216BCB3F5E5A0F7AF3C13C01AC05BBC124C7994C6D5DB98A9C280259B0886F199CC6F742A513FC224BA0B6729278EF +FP_2 = 20379C2071BF888A2E1F464E40D93D73293C47B64D2AE9351758FD8AD9EF832B1C85CFCDA0455B214D28020A817829D8 +FPadd = 05F3B1564C7273E408A559C6229AB0AA49B3C922A632A1DCF5C36D8BCA3EE6A5BB96579B5885E9F1953C855C6E5FF21C +FPsub = 1AE9CFAACD9ED1854CD47AEDC0D2C84897E87FE2FF42748473432A777FC10543FD16F729A25FB8DAD5239EABF11A4F17 +FP_1nres = 3B216BCB3F5E5A0F7AF3C13C01AC05BBC124C7994C6D5DB98A9C280259B0886F199CC6F742A513FC224BA0B6729278EF +FP_2nres = 20379C2071BF888A2E1F464E40D93D73293C47B64D2AE9351758FD8AD9EF832B1C85CFCDA0455B214D28020A817829D8 +FPmulmod = 37651591279BCCB79C7C78C6A86822E5C472EAD9B9352CFF1CE3AB6822B58960D5003C1492D59607D997B31C00281A0A +FPsmallmul = 4EEE2E701DAAEC590AF379BF5138CA39C76026EF47E3CAD560EF400F089E769C20D64AAF5C17A8D239A996C557B89554 +FPsqr = 53FF335541FC4AFBEF3291E433F41E4C5933BA42EECB7832B00FE5804119E90E062C26C6ECB7B0F527B35B403C13C35F +FPreduce = 3B216BCB3F5E5A0F7AF3C13C01AC05BBC124C7994C6D5DB98A9C280259B0886F199CC6F742A513FC224BA0B6729278EF +FPneg = 1A43EACA254D14A62579EC881E3E8CC8DF887E93A6F8475821958FFF0FB09C8560EF783247BF712FB7EB7CAE131837BC +FPdiv2 = 484361305204E4628DB0B78010CB4C2030E906E31FE981659B66F001E188D6B1CA1483106684CC93FE415F0D7C1E94CD +FPinv = 10BC50723F448A5FE34225A535CE750EC80968411D0C300D83D1C6625799AAC96DD0C0B32817A1C706080BA407AD61F9 +FPexp = 38224CD878D0C4FC9E05A75A4DF6BBF64D570A5BD3A4FC5FB30DF793B42451080796841C342C685C1A7C3F632172BB41 + +#test7 +FP_1 = 27405DF5B60F8E64DF53E09D74103781712E1E00BE08259199FF0F17B7CB2B7987B7115EE1CE045B787CF8A430FEFD80 +FP_2 = 069E0AFF0E28CD2D035A3026AF822258FDBEC9BC7A21A4C9ED980391C330CA648F5799A640F7E2A62A0989F713C9F947 +FPadd = 2DDE68F4C4385B91E2AE10C4239259DA6EECE7BD3829CA5B879712A97AFBF5DE170EAB0522C5E701A286829B44C8F6C7 +FPsub = 20A252F6A7E6C137DBF9B076C48E1528736F544443E680C7AC670B85F49A6114F85F77B8A0D621B54E736EAD1D350439 +FP_1nres = 27405DF5B60F8E64DF53E09D74103781712E1E00BE08259199FF0F17B7CB2B7987B7115EE1CE045B787CF8A430FEFD80 +FP_2nres = 069E0AFF0E28CD2D035A3026AF822258FDBEC9BC7A21A4C9ED980391C330CA648F5799A640F7E2A62A0989F713C9F947 +FPmulmod = 3BA30F312616F1EF5B42A68BD9A9FFB9397FF97D8ED216197113F18A58F418A9E398CC8F6C75F9ED08DBF9BB7F862AF3 +FPsmallmul = 32EE514389EDD51A37900F1608F7E0FBE91813539EBAE369532FB6E7886B1EED62F5B10EA87A16E34C0540D7D34B2454 +FPsqr = 180A8A4297E358D773FEC3B5A48B5CD97755D331DF54A8BAA4DEFA578424A550EE933F89F4EA6DD37D439239BC2F9D67 +FPreduce = 27405DF5B60F8E64DF53E09D74103781712E1E00BE08259199FF0F17B7CB2B7987B7115EE1CE045B787CF8A430FEFD80 +FPneg = 2E24F89FAE9BE050C119CD26ABDA5B032F7F282C355D7F801232A8E9B195F97AF2D52DCAA89680D061BA24C054ABB32B +FPdiv2 = 13A02EFADB07C7326FA9F04EBA081BC0B8970F005F0412C8CCFF878BDBE595BCC3DB88AF70E7022DBC3E7C52187F7EC0 +FPinv = 223D008A49870090227182A28B9DF3D6E98AD0E342A5DF065D69224B839116CE4C1E980790AFFF03621D53F4CF947578 +FPexp = 1A86268FD0894D73317C1409736D7F57165861B704255B4D696ED98A29D788E622796851F5F0AE8508733B1DCCF09A14 + +#test8 +FP_1 = 132D1F7DDBBCC50134B347999AB5C623C0B53F454D433B441B1CD80CC3FE7E9D16C3757C529C2E66B3993EEE9CC0A219 +FP_2 = 12542E124716AEDEC10303D6041EA714486193EB5B146DEB6C16589DF80AB42A4F7100693082ACD68300D14A55BEC2C5 +FPadd = 25814D9022D373DFF5B64B6F9ED46D380916D330A857A92F873330AABC0932C7663475E5831EDB3D369A1038F27F64DE +FPsub = D8F16B94A6162273B043C396971F0F7853AB59F22ECD58AF067F6ECBF3CA72C75275132219819030986DA44701DF54 +FP_1nres = 132D1F7DDBBCC50134B347999AB5C623C0B53F454D433B441B1CD80CC3FE7E9D16C3757C529C2E66B3993EEE9CC0A219 +FP_2nres = 12542E124716AEDEC10303D6041EA714486193EB5B146DEB6C16589DF80AB42A4F7100693082ACD68300D14A55BEC2C5 +FPmulmod = 2E8BE3E1D421207FE4110C639FCEB69F5893095864F3271AD41929CBD76389C066B1D2E39BD76F6392B791BA4AE747A3 +FPsmallmul = 14F88DBFCC08D4A0CE257077CB44985C45B9EC5B1DD50685B6BD007CD52EA839EE8A18882550C5AB4F8E3A891430F3A4 +FPsqr = 28418DE26932090EB1A90B729DE7D84B4BCB4BECF6F41C6176D20D5DD36FD478785A32941A8FE194F1B87B2D78253ADF +FPreduce = 132D1F7DDBBCC50134B347999AB5C623C0B53F454D433B441B1CD80CC3FE7E9D16C3757C529C2E66B3993EEE9CC0A219 +FPneg = 4238371788EEA9B46BBA662A8534CC60DFF806E7A62269CD9114DFF4A562A65763C8C9AD37C856C5269DDE75E8EA0E92 +FPdiv2 = 34493B09A03419DB6A907AAEDD502C5430B142B92054702AE3A7480716AFD1C8C8A7DA52EE8059C946E82E299135A962 +FPinv = 36EEBBD8E0D91DE9A4424F13DAF4E70701376149BD5DA7EBFEED3F6A69A3B4E73A275634CC3EAA04DD6EFA1C7D38FE4C +FPexp = 087DF208981D54F43D1F722B8850C645CA7931A42EA2A6F3F7CB08E8E142F0B4CC6A0881E399379C1FD1515E366283BE + +#test9 +FP_1 = 496B1B5DF0E7023235972E3A8F84D1B45DFCCA7E71051CE065CF7D338E01B8CCEFDF23697FC288B674C0FDA6BBCDBF41 +FP_2 = 3350ED9E45AD864220BF02FB2D630AF576F05FD7CD7F88EBE14E03269C01E03339CF2E34182D798AC6551DA849A258CE +FPadd = 2756B266D1E919BEB5E883719CFD4A25343FE4294B1F00BA9AEBC858C0A2740BAF2212740D8B7D1560DEFDEA7FC56764 +FPsub = 161A2DBFAB397BF014D82B3F6221C6BEE70C6AA6A38593F484817A0CF1FFD899B60FF53567950F2BAE6BDFFE722B6673 +FP_1nres = 496B1B5DF0E7023235972E3A8F84D1B45DFCCA7E71051CE065CF7D338E01B8CCEFDF23697FC288B674C0FDA6BBCDBF41 +FP_2nres = 3350ED9E45AD864220BF02FB2D630AF576F05FD7CD7F88EBE14E03269C01E03339CF2E34182D798AC6551DA849A258CE +FPmulmod = 4A70B5BE31D49309595997634D9CA3D75E043A909227FA90F7524F9CEAA652F563184286CA9B0EDEA2D7761050510114 +FPsmallmul = 33045D0043AAA049147A60289BDB9CE6A675B788CF05F836988D23F84108105D8A5568D2AA752DC1BDD0FD5F28B3F332 +FPsqr = 163D0E124451F3DA7A7BB90259742FB7539C4054D17318FC89F688639C9DD99C0166FDA289A098864BB19F87930982E4 +FPreduce = 496B1B5DF0E7023235972E3A8F84D1B45DFCCA7E71051CE065CF7D338E01B8CCEFDF23697FC288B674C0FDA6BBCDBF41 +FPneg = 0BFA3B3773C46C836AD67F899065C0D042B07BAE8260883146623ACDDB5F6C278AAD1BC00AA1FC7565761FBDC9DCF16A +FPdiv2 = 4F6838F9AAC93873EB026DFF57B7B21C7F550855B23560F909009A9A7BB16EE0B535B149851386F1277C0D85A0BC37F6 +FPinv = 0E8C4287D27B4ABB705E30E6E339EEA6E6FF137810B30C6293F74902C870B5A84CC147BC5BE8E54895007B8FACB0C6B0 +FPexp = 3F3944381607CCCBEC249307ECD673BA45EBAA3A2E163170D064F5FE41507390D8CE59846F5BFA1AD846F10E050A0DA2 + +#test10 +FP_1 = 50D6E2A34A8F9900608970AE74EE7287D75C654D00BB27C824D877A533BB1B7F5235BC65E695C3FC550336EBDEAF3AD5 +FP_2 = 084DE9733BA0E3FC9886D903EAA62549F2BFD6243E18BC7EF635EDAB6DEF459EE021825646885D8FC13AA3047469D802 +FPadd = 03BF758121850E4758A29BEE3FAA054D296EF5444B6E3F356EDCAD4F38493C29B7CAFF92A2B99C603C06BC8BCD6E622C +FPsub = 4888F9300EEEB503C80297AA8A484D3DE49C8F28C2A26B492EA289F9C5CBD5E072143A0FA00D666C93C893E76A4562D3 +FP_1nres = 50D6E2A34A8F9900608970AE74EE7287D75C654D00BB27C824D877A533BB1B7F5235BC65E695C3FC550336EBDEAF3AD5 +FP_2nres = 084DE9733BA0E3FC9886D903EAA62549F2BFD6243E18BC7EF635EDAB6DEF459EE021825646885D8FC13AA3047469D802 +FPmulmod = 203704B169079FE1F80A707FCC71BC3B15C685930F266A0B968AE0905B80F35927EBD24061F875646100896CDBEA4DA3 +FPsmallmul = 27D4CF205F9515A121834AEB721152A4C3847D6D78BCC03262B5346750E4C660E72B23852450F950A6301CADFFD8164F +FPsqr = 0C2005FDDF62387607FAA01F55812215DA9C45111ECF9790EE868CE564CBA994378FF9244EAA5AE0D6467A13D4F93135 +FPreduce = 50D6E2A34A8F9900608970AE74EE7287D75C654D00BB27C824D877A533BB1B7F5235BC65E695C3FC550336EBDEAF3AD5 +FPneg = 048E73F21A1BD5B53FE43D15AAFC1FFCC950E0DFF2AA7D498759405C35A60975285682C3A3CEC12F8533E678A6FB75D6 +FPdiv2 = 531E1C9C579D83DB007B8F394A6C82863C04D5BCFA10666CE88517D34E8E2039E660FDC7B87D2494179D2A28322CF5C0 +FPinv = 15BD29235B1806035C1F03D2F066DA827A648D162AF045DE9415C575231BA1A219B2A2B30BB1F85955A2BBC34AB5522F +FPexp = 2D001DEDA92E95A8CBDB7811AFED8FE3B6AAA7934CB69EC886EE6B244A22D41F3BA82081241F5B817F454CA61CBF28CB
http://git-wip-us.apache.org/repos/asf/incubator-milagro-crypto-c/blob/8d28d2c3/testVectors/fp/test_vector_BLS461.txt ---------------------------------------------------------------------- diff --git a/testVectors/fp/test_vector_BLS461.txt b/testVectors/fp/test_vector_BLS461.txt new file mode 100644 index 0000000..b018cc7 --- /dev/null +++ b/testVectors/fp/test_vector_BLS461.txt @@ -0,0 +1,161 @@ +# FP ARITHMETICS - CURVE: BLS461, Modulus = 0x15555545554d5a555a55d69414935fbd6f1e32d8bacca47b14848b42a8dffa5c1cc00f26aa91557f00400020000555554aaaaaac0000aaaaaaab, BIGmax = 2^461 + +#test1 +FP_1 = 029A0A97D87322360C7F012C85CD275369CA7C109F8C865651F9EF06C8AAED213E425966ED9E77D35B0016C5D875CC7A4E6E34D193583632CE +FP_2 = 02EA6B87EA27302265745644E5443C29154F09EE41798BB44D2CC4ED46DB55988FBA0386AF293874291945D12A7039AA8B7829BD907A4D808177 +FPadd = 02ED059281FFA3449B80D54611CA095068B8D46A5219183AA37EBEDC4DA40085B0F845E01616D6EBFC7445E7F048AF7705C697F2620DA5B6B445 +FPsub = 126D83C802FE9D552AEDFF505BD4F0BBAD38F36689F2A54D1DA9C04468CD4FB0AE444DF96255BB82AA81BA659B6D91773980EF234119B5605C02 +FP_1nres = 029A0A97D87322360C7F012C85CD275369CA7C109F8C865651F9EF06C8AAED213E425966ED9E77D35B0016C5D875CC7A4E6E34D193583632CE +FP_2nres = 02EA6B87EA27302265745644E5443C29154F09EE41798BB44D2CC4ED46DB55988FBA0386AF293874291945D12A7039AA8B7829BD907A4D808177 +FPmulmod = 06C3DC3217BCB455CC9EFFD9C9542016130F90557355CD73B77E9D07DB53551CFCE6AEBBC8D7A87AED1072A6135CEF405D1D54671A2B62F51169 +FPsmallmul = 1A0469EE747F561C7CF60BBD3A03894221E8D8A63B7D3F5F33C35643D6AD434C6E977E054830AE418E00E3BA7499FCC7104E102FC1721DFC0C +FPsqr = 025AA2957C66BD6399ABF9F952C4192ACD451FFCB8FE5282E0552D79604A421B72758B67E1560EBB9D4F05050665B2D72C4A18981FDFB825E9BE +FPreduce = 029A0A97D87322360C7F012C85CD275369CA7C109F8C865651F9EF06C8AAED213E425966ED9E77D35B0016C5D875CC7A4E6E34D193583632CE +FPneg = 1552BB3ABD74E73324495792E80D92961BB4685CAA2D17F4BE329153A2174F6EFB81CCCD43A3B7072CE500093A2CDF88D05C3C772E6D527477DD +FPdiv2 = 014D054BEC39911B063F809642E693A9B4E53E084FC6432B28FCF783645576909F212CB376CF3BE9AD800B62EC3AE63D27371A68C9AC1B1967 +FPinv = 0679E37BD28D6AC65B66265B5E39EB341237568A1DE885B0414C640FE3923FBD952A2B24AA0DD7F538B0C51D41D3CA01CD3663FA6EB0456F827F +FPexp = 0F997A6E3A7A82AF4A1E680E0B2B909B54CA032657E127DF402FE608F985D0B251DE15B46DDAE949CF888719C2BCA5468DB80E10BCA33240513F + +#test2 +FP_1 = 5A100B0E53C8E2BFD7F6CEDA8D81D7CF7EB1DA2323E9A2149FEE54EFF234265FFCC181960D9A53E2468A57A30ED48A6F70DF64328D127A4635 +FP_2 = 06128DB780951631102382CBE0D72AFCC8CD9028C2ABE7DBF473A7C60601375FF1E745549808875F24EBC19F07EA2F6FCFD841D7F64804FA6B11 +FPadd = 066C9DC28EE8DF13CFFB799ABB64ACD4984C4202E5CFD17E0913961AF5F36B8651E406D62E1621B307324BF6AAF903FA3F49213C28D51774B146 +FPsub = 0F9CD798E30C0D070A0A4A970E49B69875CF548A1B44A64134B0D1D192D0F7228AD58B53A8966873BD9AC8D89B29FA6FEA4348383C45B82A85CF +FP_1nres = 5A100B0E53C8E2BFD7F6CEDA8D81D7CF7EB1DA2323E9A2149FEE54EFF234265FFCC181960D9A53E2468A57A30ED48A6F70DF64328D127A4635 +FP_2nres = 06128DB780951631102382CBE0D72AFCC8CD9028C2ABE7DBF473A7C60601375FF1E745549808875F24EBC19F07EA2F6FCFD841D7F64804FA6B11 +FPmulmod = 0DD61961F5E4E6336912DA6095F31C9BBF4572C36C2C2A5B32EC4C166B3C0AE88C77ECF3D35C138DE33087DE8DBC4754345F018A72B4378B458F +FPsmallmul = 0384A06E8F45D8DB7E6FA4148987126E1AF2F2855F672054CE3F4F515F76097FBFDF8F0FDC880746D6C1676C5E944D685A68B9E9F982B8C6BE12 +FPsqr = EFD767942F3013251AF253D7F73DA6BA1913D8DC3CF697A9B74665A0E9C83C7FF02D30C5AC0458402EFAC253EE97428F7E08C1BE4FF630A5BC +FPreduce = 5A100B0E53C8E2BFD7F6CEDA8D81D7CF7EB1DA2323E9A2149FEE54EFF234265FFCC181960D9A53E2468A57A30ED48A6F70DF64328D127A4635 +FPneg = 14FB453A46F991729A7DDFC53A05DDE59F9F80FE97A8BAD8FFE49CEDB8EDC635BCC34DA51483BB2B1DF975C85CF680CADB39CB47CD7398306476 +FPdiv2 = 0AD7B2A831D0919C0D16E6B1779070CA9F4E72596EF8470E94923CCBCC6917413E5E6854204F77E97143453BD18A14EFDD0DC5081946DE927870 +FPinv = 0754296B300183BDC643AAD4933C822C8B85970651E5786C361DFC14F2081972EFF2E68FBB2ACFEAC146D6A958F8CD42F40EF7B426F2F6AA4C95 +FPexp = 064B02EAFC321D3F7CEE9552B2864C621985E2376562D9A668E520FAA697154C2EEF8D9FD6AF55D40C4A52F24C4F38921388621B4FB63C91F91C + +#test3 +FP_1 = 30F401B3D2F09BB11A6DFD68E7D68AA5C1C4432558DE71A244A85DB5CB7F0100BC6423D6C6C5B77C25AE100573D64D7807E08DD4CD3BBCE2E9 +FP_2 = 03063F1CC5DCB743F4565BF1F35DA73182BEAFF23CCB640EB21592B3F828AFD9D9D272197CC786B1E6AB87C637641B5627BA7C64E401194FBA08 +FPadd = 0337331E79AFA7DFA570C9EF5C457DBC2880743562244280545A3B11ADF42EDADA8ED63D538E4C6962D135D63CD7F1A39FC25CF2B8CE550C9CF1 +FPsub = 12800A2A434393AD1719E89F8A1D8F1692214729A35A1EDE04B3A0EC6682C98343AA01310490948495BA2669CE15104C9AF80ED4F0CCCD17D38C +FP_1nres = 30F401B3D2F09BB11A6DFD68E7D68AA5C1C4432558DE71A244A85DB5CB7F0100BC6423D6C6C5B77C25AE100573D64D7807E08DD4CD3BBCE2E9 +FP_2nres = 03063F1CC5DCB743F4565BF1F35DA73182BEAFF23CCB640EB21592B3F828AFD9D9D272197CC786B1E6AB87C637641B5627BA7C64E401194FBA08 +FPmulmod = 129410A5999EF86E034C309A04C9B8A6712B06DF2BFA04A0A4624C575C2A72946F76A28EAC7D73C7B70A6C8D9F72DE185D3DC7A8226FF3446651 +FPsmallmul = 01E98811063D6614EB084BE6190E616A7991AA9F7578B07056AE93A919F2F60A075BE96663C3B92AD978CCA036865F06B04EC58A50045560DD1A +FPsqr = 07E0D366106BB35F8C60D6C4D97C2AE31CF26BA481DBBEC0A661B791B1D6B9DE752D22068099A721AADCCA7E1F8E71754B09F4345FACC85A0931 +FPreduce = 30F401B3D2F09BB11A6DFD68E7D68AA5C1C4432558DE71A244A85DB5CB7F0100BC6423D6C6C5B77C25AE100573D64D7807E08DD4CD3BBCE2E9 +FPneg = 15246143A17A69B9A93B6896ABAB8932C95C6E959573C609723FE2E4F3147B5B1C03AB02D3CA8FC7841A520FFA917F07D2A2CA1E2B336EEDC7C2 +FPdiv2 = 0AC324A38490257885B82248BEBD9B240A6FFB8DF012C1765B6499D02F55BCAE8EBE39A540AC0D9B3E32D71802BC95D16159459CEA66F333C6CA +FPinv = 126743C4E88D17DE8A84C6068F8EED88E6C16B829C1078911711E2DBD49633041017186BA6FA1F0B921AE7073346FCAEA0AE07F481B0385CF106 +FPexp = 0BD041B24263B3E61DF14127A12B217A208544E36F5E7B1E5D92150BAD723882E9A09A09DFD20E0A5B445C5AF1F4E762D6E53513F1DAB654BD4C + +#test4 +FP_1 = 01B3FA926AF604FDAAD199705972E39329A57C7C3C17AFFA984441CC8848F3D1D3135C41A4AE275DAE4D3F8C6497B724393FCFFCA094E4DAE081 +FP_2 = 0B91C1CDF068B09D4F777C72FC466BBB0A36E2E0B628AD693B4A86A86B4D16B0FE2054C7DBD14753E31CEE068E12BA7581A2554E580F61851BE2 +FPadd = 0D45BC605B5EB59AFA4915E355B94F4E33DC5F5CF2405D63D38EC874F3960A82D133B109807F6EB1916A2D92F2AA7199BAE2254AF8A4465FFC63 +FPsub = 0B778E09CFDAAEB5B5AFF39171BFD7958E8CCC7440BBA70C717E4666C5DBD77CF1B316A0736E3588CB7051A5D68A52040248255A48862E006F4A +FP_1nres = 01B3FA926AF604FDAAD199705972E39329A57C7C3C17AFFA984441CC8848F3D1D3135C41A4AE275DAE4D3F8C6497B724393FCFFCA094E4DAE081 +FP_2nres = 0B91C1CDF068B09D4F777C72FC466BBB0A36E2E0B628AD693B4A86A86B4D16B0FE2054C7DBD14753E31CEE068E12BA7581A2554E580F61851BE2 +FPmulmod = 0FB884BC024182ABAFC083041F8BDC373404F2B0017DE07C93CB2F71B23F170C6A8798E166E609FE468E59E597B5F881B337BEE3741F1CEA2CA4 +FPsmallmul = 1107C9B82D9C31E8AC2FFE637E7CE3BFA076DCDA58ECDFC9F2AA91FD52D986323EC19A906ECD89A8CF047B7BEDED276A3C7E1FDE45D0F08CC50A +FPsqr = 06F63AD94238E520DC2324E6963AD985F58D924D3A2196A7D504759BA06061F28AEFB0DDB6EBFA0EF9D535BD0A697F37FD8006F2C68CAD8823AB +FPreduce = 01B3FA926AF604FDAAD199705972E39329A57C7C3C17AFFA984441CC8848F3D1D3135C41A4AE275DAE4D3F8C6497B724393FCFFCA094E4DAE081 +FPneg = 13A15AB2EA575557AF843D23BB207C2A4578B65C7EB4F4807C4049762097068A49ACB2E505E32E2151F2C0939B6D9E31116ADAAF5F6BC5CFCA2A +FPdiv2 = 0B84A7EBE021AFA98293B802370321A84C61D7AA7B722A3AD664668798947716F7E9B5B4279FBE6E57469FD6324E863CC1F53D54504AC7C2C596 +FPinv = 013537A6D90DE62F9367C641B925A5264A22058C3F56970BDDF2D167AA1870B33D77020B79AF4BCA9675BE63F495BD5594271D5119E1E9054305 +FPexp = 10D31FA35FDC7D5D6E1EEA8BBB34898FF77A072E7E5FA76931ABA595055099465898B36F1090E543C7C847532DE3F71F7D997C85EF1AE75280F8 + +#test5 +FP_1 = 7DAC8033179E034C67EC9E2354D2952146A1B538C2EAF2AAA500F0D81BDB115D0FAFF752F44A48ED10801212F78A59D08DF4AA7FF719E75E02 +FP_2 = 559C50D74097D967320759CF87F1EAC37635256973566BFA96D94349578246F9B6CE7A404943F86A88D6157674A4CC7F08B7115DE9FE80F451 +FPadd = D348D10A5835DCB399F3F7F2DCC47FE4BCD6DAA236415EA53BDA3421735D5856C67E71933D8E4157995627896C2F264F96ABBBDDE118685253 +FPsub = 28102F5BD70629E535E54453CCE0AA5DD06C8FCF4F9486B00E27AD8EC458CA6358E17D12AB06508287A9FC9C82E58D51853D99220D1B6669B1 +FP_1nres = 7DAC8033179E034C67EC9E2354D2952146A1B538C2EAF2AAA500F0D81BDB115D0FAFF752F44A48ED10801212F78A59D08DF4AA7FF719E75E02 +FP_2nres = 559C50D74097D967320759CF87F1EAC37635256973566BFA96D94349578246F9B6CE7A404943F86A88D6157674A4CC7F08B7115DE9FE80F451 +FPmulmod = 108CF0404DECB303CF394112EED6C868834F0BE67D7DFA91062E539891127C8F13D2793F919CF0702A9626BC31171B1053911DD19C3A23C16407 +FPsmallmul = 04E8BD01FEEC2C20FC0F3E2D615039D34CC25114379D2D7AAA72096871168EADA29CDFA93D8AE6D942A500B4BDAB6782258B8EA8FFA70309AC14 +FPsqr = 06157215F9950AE9E95E4DF4D48C7DF3D2E16375C968EA13E00654A5B91ECB669ACC64914A0922E9A325D799601AE4825C7165E39B359CE51B5E +FPreduce = 7DAC8033179E034C67EC9E2354D2952146A1B538C2EAF2AAA500F0D81BDB115D0FAFF752F44A48ED10801212F78A59D08DF4AA7FF719E75E02 +FPneg = 14D7A8C52235BC520DEDE9F5F13E8D284DD791238209B98869DF8A51D0C41F4ABFB05F2F579D0B36132F800DED0DCAFB7A1CB601800990C34CA9 +FPdiv2 = 3ED640198BCF01A633F64F11AA694A90A350DA9C617579555280786C0DED88AE87D7FBA97A252476884009097BC52CE846FA553FFB8CF3AF01 +FPinv = 1042B468427A102E7D8AFC821E3958A7617B7234C54A8C67F2B4459A0B8FBCF9B70C3F1A2960EFBF7B04706ED6C0E1C02185C8455BD725A063D7 +FPexp = 0C4E25B56D7E9E51CC2453AB25376CDC2FD34C2AEE49F39BED1A5BF28C5619D76645946D9963D39DFBBAC8D9CA0DA37844352E42D7235E0FBFD3 + +#test6 +FP_1 = 072C6E58D8883E93AE2315051AB1555CD1E50E1336BF61EBBED282418D4DAFDBE4C574973B972850BD8E207DE6F01CA34CEE8A5D3A547CD76093 +FP_2 = 063C3DDAAD5B315008B50DD8C0A08CEC81A57210088E20E3876DE257B79EAB1613E4AA32FC28C1B9DEADB1CA13070082B14821B84C9423E452A2 +FPadd = 0D68AC3385E36FE3B6D822DDDB51E249538A80233F4D82CF4640649944EC5AF1F8AA1ECA37BFEA0A9C3BD247F9F71D25FE36AC1586E8A0BBB335 +FPsub = F0307E2B2D0D43A56E072C5A10C870503F9C032E31410837649FE9D5AF04C5D0E0CA643F6E6696DEE06EB3D3E91C209BA668A4EDC058F30DF1 +FP_1nres = 072C6E58D8883E93AE2315051AB1555CD1E50E1336BF61EBBED282418D4DAFDBE4C574973B972850BD8E207DE6F01CA34CEE8A5D3A547CD76093 +FP_2nres = 063C3DDAAD5B315008B50DD8C0A08CEC81A57210088E20E3876DE257B79EAB1613E4AA32FC28C1B9DEADB1CA13070082B14821B84C9423E452A2 +FPmulmod = 03F31E01716D9FD968ACAB8076399CAB874B3FD038CA958DFC507904965B989653BA531ED0E2A7921477425BB628E9B5CBF8B7F0B0018D81DD59 +FPsmallmul = 07BC4FA8756A62C4BE5D4E76CD333667E597F435F313E5C436AB74C78A68EF8299766074543392AA66CD448B05511E61215167A0474AE069C5BD +FPsqr = 0FF9F91E490138CA16610276CE12A8C544E77DB4A61A9D5D73669E8DF070DE030781BF2701F9982CF608F292BF48DF18FCAA852A546C28EA168B +FPreduce = 072C6E58D8883E93AE2315051AB1555CD1E50E1336BF61EBBED282418D4DAFDBE4C574973B972850BD8E207DE6F01CA34CEE8A5D3A547CD76093 +FPneg = 0E28E6EC7CC51BC1AC32C18EF9E20A609D3924C5840D428F55B209011B924A8037FA9A8F6EFA2D2E42B1DFA2191538B1FDBC204EC5AC2DD34A18 +FPdiv2 = 0E40E1CF16EACC74843C75CC97A25A8D2081A075F8C6033369AB86C21B16D51C00C2C1DEF3143EE7DEE7104EF37AB8FC4BCC9A849D2A93C1059F +FPinv = 04E85EDA88E41CB90FD06D999C1871FEE4DC041048FED43FA391DEC349237638B58BF035A6DD819CCD675DC3A180C377610B69938673AC12D133 +FPexp = 1019AEC907A2A850A5C115C798E5BEBA8E3CC6CA802A629E35EC7E81928D86E688F73D5DAE0CE410AB1D04BD5B4E0DD7DC091330C097D5C772FA + +#test7 +FP_1 = 4E83885E49292E1C7FB090FF6375241D718E7E3CCF108C74193890DF0915405D34CC9723E773E361AF9E250142E07FCC6CBE040D7043E5F95B +FP_2 = 0D5A2DAA1539D7338F386810B46847A1791656E9C0F08772798D5E0DBD776FE9A77757BCE2DBE747F5C9018041A30B6B5ADC74B831C026ABC8EE +FPadd = 0DA8B13273830061ABB818A1B3CBBCC59687E567FDBF97FEEDA6969E9C80852A04AC245406C35B2B57789FA542E5EBEB274932BC3F306A91C249 +FPsub = 0849AB239E5CAC4FE79D1F145F8E8D4013796A6D36AB2D950F1065C5CA719FB2D27D8400EB9CE21A6C269CC4BFA52A69BC3AF3F7DBB0C7E4DB18 +FP_1nres = 4E83885E49292E1C7FB090FF6375241D718E7E3CCF108C74193890DF0915405D34CC9723E773E361AF9E250142E07FCC6CBE040D7043E5F95B +FP_2nres = 0D5A2DAA1539D7338F386810B46847A1791656E9C0F08772798D5E0DBD776FE9A77757BCE2DBE747F5C9018041A30B6B5ADC74B831C026ABC8EE +FPmulmod = 12A0074723A5C0DD1EF62FDB17B3C996A4777B1F5597E3F575EC2666DF68EE6D947A95B2A01C74E1B15BF6A88E82B7AA3E3C8273CD535B4B2527 +FPsmallmul = 03112353AEDB9BCD1CFCE5A9F9E29369266F90EE6016A57C88FC35A8B65AD483A40FFDE7670A86E1D0DC2D720C9CC4FDFC3F6C288662A6FBBD8E +FPsqr = 5CF7303CF9D59F8150A596727775E3F93A29037465A436FEC075A94420C18291BCFD124E4DAB218CCB5CA60199FF71891ED5D06A5250AB4045 +FPreduce = 4E83885E49292E1C7FB090FF6375241D718E7E3CCF108C74193890DF0915405D34CC9723E773E361AF9E250142E07FCC6CBE040D7043E5F95B +FPneg = 1506D1BCF70431273DD62603152FEA9951ACA45A7DFD93EEA06B52B1C9D6E51BBF8B428F86A9E19B9E9061FAFEC274D57E3DECA7F29066C4B150 +FPdiv2 = 0AD1EC66D9CB41C1BB6AC39289FB6A70C647E0AB7BCDDA83C44EE1E9C3F487CE3CFA6DDEE73C64B130F7CF2280A41AEA8B8BB45806B877485203 +FPinv = 12595133D3C4F1CC14229E5A75848057DACBFA8107F9E3C6F40AB2EF5414B4E188D8813C1AC8491F321583343BB05F45F341E0F92C21A4E57DA2 +FPexp = 051511A1B774C0627D6E56B6808F8273821BD66AB11DE974926983B35973965DE8231681D6B7102AF5BFAEF344C7871B5E821A0B1E0DB930AB67 + +#test8 +FP_1 = 0909609FE89B3D18D7D1FF51749CDA686A152895E4416A9911EAE879F1BB249E6431F79A0FECF15EC281634B9940307251A2CDBABCCB27B178D6 +FP_2 = 5DEF13A5F818BFC728A2DDCBC741B578362E59E519C40B11F7BBAE8326194DF1B3457D40600074E31DC7B61872C5ADE56AF1244E752867B7FF +FPadd = 09674FB38E9355D89EFAA22F40641C1DE24B56EFC95B2EA423E2A42874E13DEC55E53D17504CF1D3A59F2B01B1B2F620370DBEDF0B40501930D5 +FPsub = 08AB718C42A3245910A95C73A8D598B2F1DEFA3BFF27A68DFFF32CCB6E950B50727EB21CCF8CF0E9DF639B9580CD6AC46C37DC966E55FF49C0D7 +FP_1nres = 0909609FE89B3D18D7D1FF51749CDA686A152895E4416A9911EAE879F1BB249E6431F79A0FECF15EC281634B9940307251A2CDBABCCB27B178D6 +FP_2nres = 5DEF13A5F818BFC728A2DDCBC741B578362E59E519C40B11F7BBAE8326194DF1B3457D40600074E31DC7B61872C5ADE56AF1244E752867B7FF +FPmulmod = 0B98FF608C7ABECA9105FC28F0CC54FEF080D949D1B61B811BD7A7CDE55F5DF96345FB68F569B5B3CE3E3507EA6A07F88302F8BE1DCED9ACCF80 +FPsmallmul = 05087129C0DAF9A304DC9EDE3BD3091E685ACA77FF5B980E611AE7B8CDCF84BF76F36F69F4FC17B7980DE073FC6C8F2205B15E9B5FECE2440DB0 +FPsqr = 0E2C2DA50B3D6D69B53894EB4C6EA8A7E2E2E1006258DFCAD2FBDE7BFC8FCAD339C1370734257D7D8F6535850C802AC9C3AB2E0D96D74F9C0B72 +FPreduce = 0909609FE89B3D18D7D1FF51749CDA686A152895E4416A9911EAE879F1BB249E6431F79A0FECF15EC281634B9940307251A2CDBABCCB27B178D6 +FPneg = 0C4BF4A56CB21D3C8283D7429FF6855505090A42D68B39E20299A2C8B724D5BDB88E178C9AA464203DBE9CD466C524E2F907DCF1433582F931D5 +FPdiv2 = 0484B04FF44D9E8C6BE8FFA8BA4E6D34350A944AF220B54C88F5743CF8DD924F3218FBCD07F678AF6140B1A5CCA0183928D166DD5E6593D8BC6B +FPinv = 1553BAEB33B0CAB3F16B07797C134B80D09DA5C072699DDB03EB4387D1EA6928D461F675BC36823F5AB9D1B238ABC76EC97E1747F5B75D316748 +FPexp = 0E55FC311552F6D51E4FC0D3E74EF0EE858331F312D2EBD7F8160017BD53E03A23C34A9ED367F20E2ED13310F1A3E100BFDB564AE6C5CEFA6E0F + +#test9 +FP_1 = 062ABEDCC4AF3FEB73579B300EF1FFF2A8D69139D83A86D04544EACC19255CFE68849A3ACFFF8B42CB14DA2C5AAEB9467D125D5D713F61A31D85 +FP_2 = 04025DEE587CB4D00B7118CFB46EE0318EE2655B583C17FDFE6796D5C9FA70CC303E01CD7EC3E8CDD29811DFEB0CE9223833489D9732BE287844 +FPadd = 0A2D1CCB1D2BF4BB7EC8B3FFC360E02437B8F69530769ECE43AC81A1E31FCDCA98C29C084EC374109DACEC0C45BBA268B545A5FB08721FCB95C9 +FPsub = 022860EE6C328B1B67E682605A831FC119F42BDE7FFE6ED246DD53F64F2AEC323846986D513BA274F87CC84C6FA1D02444DF14BFDA0CA37AA541 +FP_1nres = 062ABEDCC4AF3FEB73579B300EF1FFF2A8D69139D83A86D04544EACC19255CFE68849A3ACFFF8B42CB14DA2C5AAEB9467D125D5D713F61A31D85 +FP_2nres = 04025DEE587CB4D00B7118CFB46EE0318EE2655B583C17FDFE6796D5C9FA70CC303E01CD7EC3E8CDD29811DFEB0CE9223833489D9732BE287844 +FPmulmod = 11421FB0D426E9233EC7B2E1679A66CEDE8333B9F4E7A3E763A794B4C9DA4ADE5F9313ACA621F8DCE4FF979CCAA15EF4C31F34A8FDAAE6BF551C +FPsmallmul = 1300CA15043DCA87CCC062B86C4D3FFFBA254690FCAFFB2C8BA81573A9B5AD37DBADE7FECAD8C59DEE50857B8AC892164D62504E6C787B09D1DC +FPsqr = 0D82B0AF57EB5F3F7D47959346610406D3F796B5F0BB962C8D05C45CDE69E6201EFF7C98D5FD13A2042FE17FE318C9774AE3375795B3A3C05929 +FPreduce = 062ABEDCC4AF3FEB73579B300EF1FFF2A8D69139D83A86D04544EACC19255CFE68849A3ACFFF8B42CB14DA2C5AAEB9467D125D5D713F61A31D85 +FPneg = 0F2A9668909E1A69E6FE3B6405A15FCAC647A19EE2921DAACF3FA0768FBA9D5DB43B74EBDA91CA3C352B25F3A5569C0ECD984D4E8EC149078D26 +FPdiv2 = 0DC00A110CFE4D2066D6B8E211C2AFD80BFA6209498395A5ACE4BB076102ABAD42A254B0BD487060E5AA6D262D5A074DE3DE8404B8A00626E418 +FPinv = 057A2B6C18AF8193A4A906EF0396C443144B6A74ECEC59F40F06B35A4D8EE5ED89C290093E6ED838EDF650F3314FB3DCEE53ECEB8A6AA177D9CC +FPexp = 117EFE03456586B89C5A6A001C6B33784CC5188FDDF978B53311969DB22B1F0D465A139FDE556EDC0C4B632091AF322D037FF2762B1A0FE9F4AB + +#test10 +FP_1 = 0AAE49F9322397BACA004592919EDCDE528414A3BA99D8005E0738247C8BE56297669948CB75EC2B507A5748B900D8651C3D8F8E07CD7C8E2D4E +FP_2 = 083768FF119D155F30843706C516B54F06C9989663B51BBF505A5B2A5108A415527CFDFDADF5156FA2E545645F74CFC75D20B8F114143E2EDD0A +FPadd = 12E5B2F843C0AD19FA847C9956B5922D594DAD3A1E4EF3BFAE61934ECD948977E9E39746796B019AF35F9CAD1875A82C795E487F1BE1BABD0A58 +FPsub = 0276E0FA2086825B997C0E8BCC88278F4BBA7C0D56E4BC410DACDCFA2B83414D44E99B4B1D80D6BBAD9511E4598C089DBF1CD69CF3B93E5F5044 +FP_1nres = 0AAE49F9322397BACA004592919EDCDE528414A3BA99D8005E0738247C8BE56297669948CB75EC2B507A5748B900D8651C3D8F8E07CD7C8E2D4E +FP_2nres = 083768FF119D155F30843706C516B54F06C9989663B51BBF505A5B2A5108A415527CFDFDADF5156FA2E545645F74CFC75D20B8F114143E2EDD0A +FPmulmod = 0973F7ECF7ACBE1BA922057AC8B1CD577F59AFCBBC5100CE3274F02B7D2D9DF5DD1615A17247D80937449FDD31421A07ABB4E095FB4C975E70B3 +FPsmallmul = 2439614AE129A1205586D54953C1FC0D91D029A403399C45B1791F9117120D5A41B1169DC48E362387683739EDC948A51246304E0388386FB5 +FPsqr = 0CA800D9083C72F6B6A5785C85C8A1185D783B7A77336E9D1ED670E28716955E398D9EE793841CDACB5A8C85E6BDB042625624CA33A6514E15E6 +FPreduce = 0AAE49F9322397BACA004592919EDCDE528414A3BA99D8005E0738247C8BE56297669948CB75EC2B507A5748B900D8651C3D8F8E07CD7C8E2D4E +FPneg = 0AA70B4C2329C29A9055910182F482DF1C9A1E350032CC7AB67D531E2C5414F9855975DDDF1B6953AFC5A8D747047CF02E6D1B1DF8332E1C7D5D +FPdiv2 = 055724FC9911CBDD650022C948CF6E6F29420A51DD4CEC002F039C123E45F2B14BB34CA465BAF615A83D2BA45C806C328E1EC7C703E6BE4716A7 +FPinv = 0A49EF33A901ED9F8DFB75C44E65C03B36CCD5B7FDF20C2C25E778816274A166C529504C2613BBDFB230558A94A876E3325E180696CBB852D059 +FPexp = 13E6D27F7CCBB63DDBD2732C9F0DEAAB6BC195930E6F9F297301DF032B0B22242A7A1D600A8BEE407DBF75A0BF6550BA608FE1D6B1FF51A05799 http://git-wip-us.apache.org/repos/asf/incubator-milagro-crypto-c/blob/8d28d2c3/testVectors/fp/test_vector_BLS48.txt ---------------------------------------------------------------------- diff --git a/testVectors/fp/test_vector_BLS48.txt b/testVectors/fp/test_vector_BLS48.txt new file mode 100644 index 0000000..43c6b7d --- /dev/null +++ b/testVectors/fp/test_vector_BLS48.txt @@ -0,0 +1,161 @@ +# FP ARITHMETICS - CURVE: BLS24, Modulo = 0x0fd17d842ffcfc5b23729047a56c867152acd4420536f405da950aecd56b379b89413016a7c025a415202086876b2ec137a9870d4228402967009a661df9eef6e60ffcf6ac0b + +#test1 +FP_1 = 03524C9CFE102254D47978ECD305A26ED5ABBCE8CE4F70C841BD4EDC92D27C3457A986F4243F3805D9D5C1C6227C717D6542496ABD81D71F8D798449CD124C7C2F71F11B978E +FP_2 = 02D3371BB8A2913789875A526245734F818B41D2D92BCE0EA3806303F37B7A13EFD7990B874FE145259FE5537ED3BA09F45E9868AD05DD2FEB8AC4095F24CCF9FDD4B411D981 +FPadd = 062583B8B6B2B38C5E00D33F354B15BE5736FEBBA77B3ED6E53DB1E0864DF64847811FFFAB8F194AFF75A719A1502B8759A0E1D36A87B44F790448532C3719762D46A52D710F +FPsub = 7F1581456D911D4AF21E9A70C02F1F54207B15F523A2B99E3CEBD89F57022067D1EDE89CEF56C0B435DC72A3A8B77370E3B102107BF9EFA1EEC0406DED7F82319D3D09BE0D +FP_1nres = 03524C9CFE102254D47978ECD305A26ED5ABBCE8CE4F70C841BD4EDC92D27C3457A986F4243F3805D9D5C1C6227C717D6542496ABD81D71F8D798449CD124C7C2F71F11B978E +FP_2nres = 02D3371BB8A2913789875A526245734F818B41D2D92BCE0EA3806303F37B7A13EFD7990B874FE145259FE5537ED3BA09F45E9868AD05DD2FEB8AC4095F24CCF9FDD4B411D981 +FPmulmod = 0AA87AFC00F32813C66711AA967935E8BFDC4E55D7BAE8896620D02D3A7F2583E05344004C572935C655B9A7046E9BB2EC52FB18E23824B9343216972BA2CEB5D92D876F39C5 +FPsmallmul = 019403198CA75E9A05D998B0F35F4B71B35BB89404AC7FC6DC3AFEC411626AD45A1CE55C1AF7E4F2581950B04A0611638543D010E2C1E6E8B8BDF615C6C31EEC0E5371269376 +FPsqr = 0D4D072293AFD21497EB8A52EF5272C5D365FE825A9C8EAA9F7F25EB2F27E4112BA7C363910E69FF235A7F98E850C2654868B9B202CA855F5BB9D3FFBABF6095809D97E3B138 +FPreduce = 03524C9CFE102254D47978ECD305A26ED5ABBCE8CE4F70C841BD4EDC92D27C3457A986F4243F3805D9D5C1C6227C717D6542496ABD81D71F8D798449CD124C7C2F71F11B978E +FPneg = 0C7F30E731ECDA064EF9175AD266E4027D01175936E7833D98D7BC104298BB673197A9228380ED9E3B4A5EC064EEBD43D2673DA284A66909D987161C50E7A27AB69E0BDB147D +FPdiv2 = 01A9264E7F08112A6A3CBC766982D1376AD5DE746727B86420DEA76E49693E1A2BD4C37A121F9C02ECEAE0E3113E38BEB2A124B55EC0EB8FC6BCC224E689263E17B8F88DCBC7 +FPinv = 0FADB4EAF9D41FFC41154CEE6E58BA4EDD9F5B31280590D92C8E3A742F66E6A0A136447714606980791A99B491DFF5C269DC10BBA957F079E3AD684B96786BDF021199F02A78 +FPexp = 011948F82A84BB48C7E99E70284C270B0D631DEABBAFBF7867974CC038C037E39599293A18A8C1F0069BFB947A212126898187636A311E4D45DBCEA36335C576ECCF78CE09C6 + +#test2 +FP_1 = 07B108E9ACD20EEDA8EB192A7A6F92D48DD8724CC06FBC6AD0D0FF967EC99E67DAC8C260783A912D62D37D407FE9739B2D8B9361D4006A1158B89C945A5DE26FCCCC65E0BBF4 +FP_2 = 0E9ED7988032388FCD362F1CFF3C888A16DDE4BB708B500335AA4C2941914B52827E9415D912B8C4589BD7433DFD427E8B3983A9579FED89904C2D53148EA89E0817E1ED718A +FPadd = 067E62FDFD074B2252AEB7FFD43F94ED520982C62BC418682BE640D2EAEFB21ED406265FA98D244DA64F33FD367B8758811B8FFDE978177182042F8150F29C16EED44AD78173 +FPsub = 08E3AED55C9CD2B8FF277A55209F90BBC9A761D3551B606D75BBBE5A12A38AB0E18B5E6146E7FE0D1F57C683C9575FDDD9FB96C5BE88BCB12F6D09A763C928C8AAC480E9F675 +FP_1nres = 07B108E9ACD20EEDA8EB192A7A6F92D48DD8724CC06FBC6AD0D0FF967EC99E67DAC8C260783A912D62D37D407FE9739B2D8B9361D4006A1158B89C945A5DE26FCCCC65E0BBF4 +FP_2nres = 0E9ED7988032388FCD362F1CFF3C888A16DDE4BB708B500335AA4C2941914B52827E9415D912B8C4589BD7433DFD427E8B3983A9579FED89904C2D53148EA89E0817E1ED718A +FPmulmod = 0A65937E829D8EE3F3F1B8167D3A9020F909FA65FA77B6915458D6B91E0C2D3BA7D54306EF41210DEDAC01CCD2EF2D1BB4AA81D9B362CC281E4D8CDAFE208FD8B94044A7B3FA +FPsmallmul = 0DA463100040A3DC0B64BA8A32A9A2883FC125F76F818C14BDD5D02D9E3351A066D2D76A1349153587C2626AE171C90AE8CDA59D3F632407DB33B4330FC31C8267BC06ECA75C +FPsqr = 07FABB164D56EC5D6E8477140E59577DF91F5BE27F334146200829A45F4FE8CF8AB41E3BD150C7B23F662D82724F25397540CEB6F6AE815A3791443EEEF364B6B4639A51E94A +FPreduce = 07B108E9ACD20EEDA8EB192A7A6F92D48DD8724CC06FBC6AD0D0FF967EC99E67DAC8C260783A912D62D37D407FE9739B2D8B9361D4006A1158B89C945A5DE26FCCCC65E0BBF4 +FPneg = 0820749A832AED6D7A87771D2AFCF39CC4D461F544C7379B09C40B5656A19933AE786DB62F859476B24CA3460781BB260A1DF3AB6E27D6180E47FDD1C39C0C8719439715F017 +FPdiv2 = 03D88474D6690776D4758C953D37C96A46EC39266037DE3568687FCB3F64CF33ED6461303C1D4896B169BEA03FF4B9CD96C5C9B0EA003508AC5C4E4A2D2EF137E66632F05DFA +FPinv = 0BE2149AA9161C194CCB979C2FC2626C008F48A85E414E7BB3637380CA5F2527822A5F69355F3C6AECED93F7CC5E31A45E049DD5467CE780F7FACFA839E3DF317630CABB0C3E +FPexp = 090499B7FF8AE3356CCBC8E47083F5013718B8899F89E9F41225E643D1CE3A74481B563C7E0687DCD0DE284BCCC172A06E21C837CDD0AA58B86A6074E5E2E98DBC8420629DAF + +#test3 +FP_1 = 02C138C3DAE96ABBA70C7FEC246FD9591F4F6201ABFF5302659EB5ED09EAE1EA99C5CB206A933A92028E1C44D8DAC535FBA74CEDBC9063532086E08B94F6B5216EAD57A6574F +FP_2 = 0D4144C049F3FA49D5A0EBE3B9CC7FC5A1CC91F81435A585083AA08D46646E84417831905EC3340DFD3A43E8A62616CE24A488D0BFEC5C0A691E711A8253C1720C66A5FDB8E7 +FPadd = 30FFFFF4E068AA593ADB8838CFD2AD6E6F1FB7BAFE048193444B8D7AE418D351FCCC9A219648FBEAA83FA6F795AD42E8A24EB13A547F3422A4B73FF950879C950400AD642B +FPsub = 05517187C0F26CCCF4DE2450100FE004D02FA44B9D00A18337F9204C98F1AB01E18EC9A6B3902C281A73F8E2BA1FDD290EAC4B2A3ECC47721E6909D7309CE2A64856AE9F4A73 +FP_1nres = 02C138C3DAE96ABBA70C7FEC246FD9591F4F6201ABFF5302659EB5ED09EAE1EA99C5CB206A933A92028E1C44D8DAC535FBA74CEDBC9063532086E08B94F6B5216EAD57A6574F +FP_2nres = 0D4144C049F3FA49D5A0EBE3B9CC7FC5A1CC91F81435A585083AA08D46646E84417831905EC3340DFD3A43E8A62616CE24A488D0BFEC5C0A691E711A8253C1720C66A5FDB8E7 +FPmulmod = 0D519E247A576FCF7BCE659102FFD13E6F06F082921311231B39DFFCD945A98878B0BF21427060886B66D6EA7F5243BA2972F7F8CE0EC604CC5AAF0AAD40774D86C9A15D34FB +FPsmallmul = 0BBABA225D212EF9630A6EF1C6F1F709E66CFFCEB2C24A121D9E10558DC19B8E7878BF2D82002410046CFA29F120855A9CDF7A3C1B7BA115DE442B0DB3A924576CB56F88BD0B +FPsqr = 0D7B5B53AF1B01700BB5F0F324C3762A2884AB9193D7D39EF9ED752F86171DE27A59D83CE5A6A4DC8356F2B6D4B794AC0C2061AEAEEE804CEFC54BCF68FCC721F83BDA0C39C8 +FPreduce = 02C138C3DAE96ABBA70C7FEC246FD9591F4F6201ABFF5302659EB5ED09EAE1EA99C5CB206A933A92028E1C44D8DAC535FBA74CEDBC9063532086E08B94F6B5216EAD57A6574F +FPneg = 0D1044C05513919F7C66105B80FCAD18335D72405937A10374F654FFCB8055B0EF7B64F63D2CEB1212920441AE90698B3C023A1F8597DCD64679B9DA890339D57762A55054BC +FPdiv2 = 09495B240573338B653F8819E4EE2FE538FE1B21D89B23842019E06CEFAB0CC311837D9B8929B01B0BD71E65B022F9FB99A869FD7F5C51BE43C3BD78D978520C2A5EAA4E81AD +FPinv = 0CC553854B853FEDCE1B02BEBA2740CB5969992A95DD83EB4154CF2729520EFFEC44616996F540405292E09B822D85CC5953A947A8D3B41F9D6B863DA3BEAF6741DC89621A64 +FPexp = 08A4049CBDC52D6DBC8CA8B141817673ABF3DB9426D216F61BD3013C2054C8EF52DD52B51963335B6CB38A4FB66FAB03C15A2FB2A96C078BC05DCBE010544AA4E84ABE5A38EB + +#test4 +FP_1 = 0ECEC81226490E3E4812DBF30FAF4FAAC8A6428A7BD65BD0FDEAF3E7CBF8189C331938ABCE11DCCA54214B4AA260817C324E104A38884046CB205EF1B5EF3E9DDF0E42ED9B37 +FP_2 = 0C34338966E563B6B40FB72D4FEED627C44104A7DCBF94D4D78D3F22EB57CFF9FC3D52078C90F8A8AE2AC132378D71330A9A0EA844C8E355856F0AB033CD28A185AE6C05FE05 +FPadd = 0B317E175D317599D8B002D8BA319F613A3A72F0535EFC9FFAE3281DE1E4B0FAA6155A9CB2E2AFCEED2BEBF65282C3EE053E97E53B28E372E98ECF3BCBC278487EACB1FCED31 +FPsub = 029A9488BF63AA87940324C5BFC0798304653DE29F16C6FC265DB4C4E0A048A236DBE6A44180E421A5F68A186AD3104927B401A1F3BF5CF145B15441822215FC595FD6E79D32 +FP_1nres = 0ECEC81226490E3E4812DBF30FAF4FAAC8A6428A7BD65BD0FDEAF3E7CBF8189C331938ABCE11DCCA54214B4AA260817C324E104A38884046CB205EF1B5EF3E9DDF0E42ED9B37 +FP_2nres = 0C34338966E563B6B40FB72D4FEED627C44104A7DCBF94D4D78D3F22EB57CFF9FC3D52078C90F8A8AE2AC132378D71330A9A0EA844C8E355856F0AB033CD28A185AE6C05FE05 +FPmulmod = 0CC0AC9E34ED0EEC233D30FA4AF3DD65E9C463836C9BDEFDCDBF726FBF3A356267537DA5E56B5401E796B26E82264AD8073886AA58CE936F8930133EEEBE8958FDA9318B56B6 +FPsmallmul = 05B6670FCEF5AF3A91B584F9CC0862AFEE6B2316A77101F53BF024BA76EC01A22BB185EA26F14D228B2BCC2F95006A0F0216E36EE1E8414F503E47DA0D8F0B7C9FFEB89C03C3 +FPsqr = 08FC7BAACB7EB4B013E03AA7C278F1B014BA59B05CFE163EAAA23479FA7D05C667C3FF3595A09EED02C4FD0F0C266E7793BBA56C35B0EA78A161C120F90D8D97CEA8711A5C51 +FPreduce = 0ECEC81226490E3E4812DBF30FAF4FAAC8A6428A7BD65BD0FDEAF3E7CBF8189C331938ABCE11DCCA54214B4AA260817C324E104A38884046CB205EF1B5EF3E9DDF0E42ED9B37 +FPneg = 0102B57209B3EE1CDB5FB45495BD36C68A0691B789609834DCAA170509731EFF5627F76AD9AE48D9C0FED53BE50AAD45055B76C3099FFFE29BE03B74680AB0590701BA0910D4 +FPdiv2 = 0F5022CB2B23054CB5C2B61D5A8DEB0E0DA98B664086A7EB6C3FFF6A50B1A81BDE2D34613AE9013734A0B5E894E5D81EB4FBCBABBD58403819107CABE9F496CA628F1FF223A1 +FPinv = 05E0FF77866CD396DAA8DB871DB233107E88E4A963E66E7407B693629D0CC16A47D42ED78BFC7147E7428EC747AF1A36CFADE88EE729075D6C2580F1BC8F9F21F69322CA49D2 +FPexp = 0C5DB3CD6481E7D86C44E87BF7897D68052E1BF722A7EB443B898A5089BAE951A39B8B32E90A2AEEAF8C9684460B63C2EBEC5DA6F070FB3DBE3CC0E95FB18A10456D82330081 + +#test5 +FP_1 = 9EC83E910B66ED06F8671A5AB9BE593AACEC2D6B726C4755D1068646031A11BC30E8BB55E2069A9FF91474D9CE88DA45E3605DDBC69B4FEC79CF792A0FA10AFBA2802E5EF2 +FP_2 = 06697DCC301CA5417E39A04BCC6E7CDB06696A94ACBF3666156437DDDEE931A2A902A768B905B58CF35CAC98C754581B800312C0EF5DBD2833576CBB849ECEE7587B55D852BE +FPadd = 0708460AC1280C2E8532076627283B34411656C21831A2AD6B353E6424EC4BB4653390240EE7BC279355C10DA122E0F5C5E6731ECB2458781FD13C34AEAE6FF2541DD606B1B0 +FPsub = 0A06C7F690EBBE06AC31571633B7C7EF86F055DAC3EA29E71B01D9953C85200A9C6F7169449C76B1C1BC886299E55F7FFD89D4AA2E911E512022FD23C36AC11A8937274CB83F +FP_1nres = 9EC83E910B66ED06F8671A5AB9BE593AACEC2D6B726C4755D1068646031A11BC30E8BB55E2069A9FF91474D9CE88DA45E3605DDBC69B4FEC79CF792A0FA10AFBA2802E5EF2 +FP_2nres = 06697DCC301CA5417E39A04BCC6E7CDB06696A94ACBF3666156437DDDEE931A2A902A768B905B58CF35CAC98C754581B800312C0EF5DBD2833576CBB849ECEE7587B55D852BE +FPmulmod = 07FC29DFA135081F76675A6EEE41492B97E7D95EE0293A274FC51178BE5EA64E34BE1E0AC3650999129037B4B44AF067D5B6548FA02EC5CAB0C0B11B10D5B3BD3E0416FC184C +FPsmallmul = 0633D271AA72054245B407078B416F7C4AC139C632783AC95A2A413EBC1F04B159E917515AD4420A3FBACC9082115886BAE1C3AA95C2111F3CC21ABBA49C4A6DD45901CFB574 +FPsqr = 01236F7FE2E735270405EEA5F20BDC9F00DB8AB8E3C4D14127BA9ED329E5A47D4B3AA0C61BB0247918639F52059FF0E0FBF357813A4717C6AA2238BF5127A8109670111C1FDB +FPreduce = 9EC83E910B66ED06F8671A5AB9BE593AACEC2D6B726C4755D1068646031A11BC30E8BB55E2069A9FF91474D9CE88DA45E3605DDBC69B4FEC79CF792A0FA10AFBA2802E5EF2 +FPneg = 0F32B5459EF1956E1C7A292D4AB2C81817FFE81499C487BE84C404668F681D89CD10475B51DE1F0975270C11AD9CA5E6F1C626AF6661A4D97A86CAECF3EA4DEBEA6D7CC84D19 +FPdiv2 = 4F641F4885B376837C338D2D5CDF2C9D567616B5B93623AAE8834323018D08DE18745DAAF1034D4FFC8A3A6CE7446D22F1B02EEDE34DA7F63CE7BC9507D0857DD140172F79 +FPinv = 05A6ADA4C1E2A03D20E4C495BD15246194E8339A6FA498E70F867D985ABC361D02EB44B2D7E45FFC4C74C82FEAEF02AD444E915110E060F8AD126F5C94A300328CB2DB7C44D1 +FPexp = 0370A6BC8FC12B2D039CAE3759E93B69656E90EC4CB9745528B4EE811B6DC114AF0A9A625424154424EDBFCFF6996F0B0D157CFEF34F00B2461A0E22DEC996D3F4D6AD4D6CF9 + +#test6 +FP_1 = 0ADD28182EC19904E174EFE375BFC75B4CD1324B2B6F6DAA65E87C3020BB1AD469F9052ED685B369387B716A53E585ED73727D9E775B81EA1C2325DDCF2D323FA6E5FC342CE1 +FP_2 = 0B3FA1BE92F5089C89574EC77FB0D6A80C36C76B04ADB02EC7CC538D88E7AC460FA1726E8C3CEFCBB01F2ED2EFEE1D4CD2BD5DB07540BCCC1626812630AF2698343A2C138030 +FPadd = 064B4C5291B9A5464759AE6350041792065B25742AE629D3531FC4D0D4378F7EF0594786BB027D90D37A7FB6BC6874790E865441AA73FE8CCB490C9DE1E269E0F5102B510106 +FPsub = 0F6F03DDCBC98CC37B9031639B7B772493473F222BF8B18178B1338F6D3EA629E398C2D6F208E9419D7C631DEB629761D85EA6FB444305476CFD3F1DBC77FA9E58BBCD1758BC +FP_1nres = 0ADD28182EC19904E174EFE375BFC75B4CD1324B2B6F6DAA65E87C3020BB1AD469F9052ED685B369387B716A53E585ED73727D9E775B81EA1C2325DDCF2D323FA6E5FC342CE1 +FP_2nres = 0B3FA1BE92F5089C89574EC77FB0D6A80C36C76B04ADB02EC7CC538D88E7AC460FA1726E8C3CEFCBB01F2ED2EFEE1D4CD2BD5DB07540BCCC1626812630AF2698343A2C138030 +FPmulmod = 05B2634C86348CDB23F63EBFE3E398B66A112EE28196B1A36EC8C96534393DCB286765EA85747F7C6A4B58206CD70667A07ECB026A450E34A358EBFF1A8944457738D4517CA5 +FPsmallmul = 0DBA9FD8B3A2100DF9E1FD34B8F2A2E9101EFD6393109084DB96985446CBBEA6EC33134C72B82043B611AB001A7422BF347FBDE11CA1922CAF5BDC4563E85CB3209BEC41B888 +FPsqr = 0E869BD5F1EF66B011667BDE888A488C8DB0FB52DC79C00F84770135EC383610CA819DB6CEE3C8450016E990EE01ED038CC43A577A39A6618799E0BF2F77F2ADFE5CED4D1718 +FPreduce = 0ADD28182EC19904E174EFE375BFC75B4CD1324B2B6F6DAA65E87C3020BB1AD469F9052ED685B369387B716A53E585ED73727D9E775B81EA1C2325DDCF2D323FA6E5FC342CE1 +FPneg = 04F4556C013B635641FDA0642FACBF1605DBA1F6D9C7865B74AC8EBCB4B01CC71F482AE7D13A723ADCA4AF1C3385A8D3C437096ECACCBE3F4ADD74884ECCBCB73F2A00C27F2A +FPdiv2 = 0D5752CE2F5F4AB00273C0158D9626E64FBF0346985330D8203EC38E7B132937F99D1AA2BF22EC86A6CDC8F86DA85A57558E0255DCC1E109C191E021F693909B467AFC956C76 +FPinv = 06FBB1A29186C1593ABD4FFD3947F3778CB8947DA772F6F838DA34718768A0E082BF5B12D3448C6E8BC4407F34ED8CAFA3B00148AC6904845350DAAFCA3418567FD0BDEA1915 +FPexp = 0AF7013B79032EFD0567368F493EEEC14987302EA680A8D950B52D7EBFB49E9AAD30210461CC669DAA886FB080EDC4F14A87B79C22164C306022B4CFDC39C46E23F4962346BE + +#test7 +FP_1 = 0810943B598EF9FF3EA82596BEB9FCA7D5336CDA21DDE485DE5EC79C5CB23207A7414498F95282C73036199A15D47FB18FF2B0824F4A97B4D345572C03CD386EE76A07B9DF50 +FP_2 = 0232305AC9052181443099C6E4B1A1AB5218B17403F8F6D20D3FDD848FE5B5BBF272E52DB13E9E5D0F8FEF68A73DD87E05ACE2CD41CD82C96DCC5D8CBC81D71B3AC21511AB13 +FPadd = 0A42C49622941B8082D8BF5DA36B9E53274C1E4E25D6DB57EB9EA520EC97E7C399B429C6AA9121243FC60902BD12582F959F934F91181A7E4111B4B8C04F0F8A222C1CCB8A63 +FPsub = 05DE63E09089D87DFA778BCFDA085AFC831ABB661DE4EDB3D11EEA17CCCC7C4BB4CE5F6B4813E46A20A62A316E96A7338A45CDB50D7D14EB6578F99F474B6153ACA7F2A8343D +FP_1nres = 0810943B598EF9FF3EA82596BEB9FCA7D5336CDA21DDE485DE5EC79C5CB23207A7414498F95282C73036199A15D47FB18FF2B0824F4A97B4D345572C03CD386EE76A07B9DF50 +FP_2nres = 0232305AC9052181443099C6E4B1A1AB5218B17403F8F6D20D3FDD848FE5B5BBF272E52DB13E9E5D0F8FEF68A73DD87E05ACE2CD41CD82C96DCC5D8CBC81D71B3AC21511AB13 +FPmulmod = 0FAA643C8252C7C8E3D25EBD0C9B0AE8A406654BDBF7BCC2B057B2BD78BA67D7DA8B5B2304395CCABF16FF84695054B626D601B4B828857B316D62814F4981C16F4E9BE808EA +FPsmallmul = 018E56BC8FA4D630C154A67D38253E57B6A21B3B3898291D6ACA957B73DDDE42DA46BD8876785F93787C5D6435351329892B41D4CE20AC413DB263B9902289828BD45C715CE9 +FPsqr = 08B9141384F22292973317BE931B6BF4511CAA3D7C783078FABAB2CF062F73E8B9C233FC29E21AFD4DE1F93293A4553FE7AEBD2CF34F10DBD4AA73B0E42B357F3A281A9A46A2 +FPreduce = 0810943B598EF9FF3EA82596BEB9FCA7D5336CDA21DDE485DE5EC79C5CB23207A7414498F95282C73036199A15D47FB18FF2B0824F4A97B4D345572C03CD386EE76A07B9DF50 +FPneg = 07C0E948D66E025BE4CA6AB0E6B289C97D796767E3590F7FFC36435078B90593E1FFEB7DAE6DA2DCE4EA06EC7196AF0FA7B6D68AF2DDA87493BB433A1A2CB687FEA5F53CCCBB +FPdiv2 = 04084A1DACC77CFF9F5412CB5F5CFE53EA99B66D10EEF242EF2F63CE2E591903D3A0A24C7CA94163981B0CCD0AEA3FD8C7F9584127A54BDA69A2AB9601E69C3773B503DCEFA8 +FPinv = 0DA7E98DFD57661E33C633ACC8E5FCAA081EBEF881EAA703C3FFCA892D6580DEE9405DE2D2D19475A1B0E6497BCEBEAD87DC914F6C0D7E4A8E7BDE45A18C29E7C01A6FE8977E +FPexp = 094DB6E4E2C5C4CE998EC44C4C92181FB3737D1899899CFFE92662DB1DCA79C8E7254A8F303F1DA6F0ADB041B8FFFD9BD91C1B0545B538E18BE0F7DB7DA0CF4DE8682B0D2BFA + +#test8 +FP_1 = 052D2071C4131A0BED8078C5545AEDFD02A42EEC30DC23213ABD3B35B3863623DB900D862C1028AC1FF40D26814E7DFFC3542CF12FDBE895A19BC2725AD13F26ED29C71E3B30 +FP_2 = 0C944E4BB7CDA4A8D0B4F47C335E36CF8A208E78C1667E1ABD6E6F208D77571DD10DC552F3213C2BD51C3B1C364601A84D9A253F610F9FC2A3FF3BDD79B681DC7A6C91FD0325 +FPadd = 01EFF1394BE3C2599AC2DCF9E24C9E5B3A17E922ED0BAD361D969F696B9255A6235CA2C277713F33DFF027BC302950E6D944CB234EC3482EDE9A63E9B68DD20C81865C24924A +FPsub = 086A4FAA3C4271BE403E1490C6693D9ECB3074B574AC990C57E3D701FB7A16A193C37849E0AF12245FF7F290D273AB18AD638EBF10F488FC649D20FAFF14AC4158CD3217E416 +FP_1nres = 052D2071C4131A0BED8078C5545AEDFD02A42EEC30DC23213ABD3B35B3863623DB900D862C1028AC1FF40D26814E7DFFC3542CF12FDBE895A19BC2725AD13F26ED29C71E3B30 +FP_2nres = 0C944E4BB7CDA4A8D0B4F47C335E36CF8A208E78C1667E1ABD6E6F208D77571DD10DC552F3213C2BD51C3B1C364601A84D9A253F610F9FC2A3FF3BDD79B681DC7A6C91FD0325 +FPmulmod = 09638D87831782AFC1930475F6EB52B3E591637F6AAA9F058F8BD20A6416FB1EC4BC6613AE9E9444D774CC156E5EEC024503F76BA400B7684B982F029442FA7D5BAA2554C126 +FPsmallmul = 044ECBE518C80F65DCAD06DE5B47B88E22635873D8F4833ABBA52F5282FC7693F7DCF6F9C16125CD002821ED76CF5FB9FA4D2C44181E555C1B13C945323EAAA09171D04A4BBF +FPsqr = 03EAD200A482544F806689BB415A7D8B52E135996B83EB339D603DE1869C9D7CA278FBDC4BB760B543E74195C2D74C1B0064F058B9F10667377892B207CB71FB73D688C8C48A +FPreduce = 052D2071C4131A0BED8078C5545AEDFD02A42EEC30DC23213ABD3B35B3863623DB900D862C1028AC1FF40D26814E7DFFC3542CF12FDBE895A19BC2725AD13F26ED29C71E3B30 +FPneg = 0AA45D126BE9E24F35F21782511198745008A555D45AD0E49FD7CFB721E50177ADB122907BAFFCF7F52C1360061CB0C174555A1C124C5793C564D7F3C328AFCFF8E635D870DB +FPdiv2 = 02969038E2098D05F6C03C62AA2D76FE81521776186E11909D5E9D9AD9C31B11EDC806C3160814560FFA069340A73EFFE1AA167897EDF44AD0CDE1392D689F937694E38F1D98 +FPinv = 075DC8BCD9762D10E208D9BF3A9C7E03F04ECB2FC8ADA97B2705AE128FE827DD4E7787175DE17CE75843C8CC60068B386D1FEBF8DF940D167FE41397C5776C409B6948C1DB0B +FPexp = 0DBA2B4C3F564912F87A47183DA871F1F871C6833BA897A69F8EC003F841A0DDADDE83453C0BF66F32C5DE520B9DD96E7D8F1A7D5CDF3E28992EA24BA47E82EB6A00934EB10A + +#test9 +FP_1 = 0B663A43056B2F6392AB920EBC574F89D2181216C6E0B0B699B9AB3E2721CCFFAD25A9C64AA36A59D29DEB4BC38287FA6E76084D4C4ADE26A96D798E70B9DA92FE4B445D8056 +FP_2 = 7DDFDF1CB03449D788E645B4BCE8A6D9A5832E8C419201AFD1DDD3C0A95FEC88B492070627C24C2B5FA352EFC6CBBF1983A089313A8A65025F2F9505996911B62F536DB916 +FPadd = 0BE41A22221B63AD6A34785471143830ABBD9545532242B8498B8911E7CB2CEC35DA3BCD50CB2CA5FDFD8E9EB34953B987F9A8D67D85688BABCCA923765343A4B47A97CB396C +FPsub = 0AE85A63E8BAFB19BB22ABC9079A66E2F8728EE83A9F1EB4E9E7CD6A66786D13247117BF447BA80DA73E47F8D3BBBC3B54F267C41B1053C1A70E49F96B207181481BF0EFC740 +FP_1nres = 0B663A43056B2F6392AB920EBC574F89D2181216C6E0B0B699B9AB3E2721CCFFAD25A9C64AA36A59D29DEB4BC38287FA6E76084D4C4ADE26A96D798E70B9DA92FE4B445D8056 +FP_2nres = 7DDFDF1CB03449D788E645B4BCE8A6D9A5832E8C419201AFD1DDD3C0A95FEC88B492070627C24C2B5FA352EFC6CBBF1983A089313A8A65025F2F9505996911B62F536DB916 +FPmulmod = 083753585CCD0BAA3DA96DFD4C2CC529EF8DB26F6343525A1F4AF88A4761F502CBC63A6F398E0A6590C3B3ACC96EDFD9237A4642DB121ADE78A909FA2DDE287E931BB97F69C5 +FPsmallmul = 0343D800E644F365C291C29DD5716E48F236E715A0463AF9072D63F3B1637CBC02B0512054212005A64A4D47EF2B087FCAF9A1A82BD2EC60CD4286C5956D00FDA480C0E84F0F +FPsqr = 0F6793DA7AECA1720D19C4C8B5C08D41B9CC0CF0B2EFBC2E91530D943FD285B4D7C0B0067516F81B5A4DEA6C5F579DF2F6B7A8898DAFC13E6A16453D4125094700F7BB92F9D3 +FPreduce = 0B663A43056B2F6392AB920EBC574F89D2181216C6E0B0B699B9AB3E2721CCFFAD25A9C64AA36A59D29DEB4BC38287FA6E76084D4C4ADE26A96D798E70B9DA92FE4B445D8056 +FPneg = 046B43412A91CCF790C6FE38E91536E78094C22B3E56434F40DB5FAEAE496A9BDC1B86505D1CBB4A4282353AC3E8A6C6C9337EBFF5DD6202BD9320D7AD401463E7C4B8992BB5 +FPdiv2 = 05B31D2182B597B1C955C9075E2BA7C4E90C090B6370585B4CDCD59F1390E67FD692D4E32551B52CE94EF5A5E1C143FD373B0426A6256F1354B6BCC7385CED497F25A22EC02B +FPinv = 02FFC6B1E7CA5C591E24BEC39290CDD59BD491EE172D7460F1EB50216B55226274D9CBE86C7DCDD6B1D2022CA1ACB00D98CACECDB4968E87D0494F2B04717FC98591E5603F5C +FPexp = 02C2B2BA0448F6BCBD0A769D68D357251C1FB75F01A32FA6A96B93B64F2B1687991EE84B71F682822D187CF389EC4EC123C91ECE755F91EDC40B398E8C53B83D4216ABB2C80D + +#test10 +FP_1 = 0EB50A10A71788E4BCF8B48D23AD3D581A64C81DA989EC5C94EE6BEDC683D032A4DA38E3959C4312DE4311581CF0C0931E8C16176C9E5639BEC4763CF70FDA66E21EC5E89B0D +FP_2 = 05499BDE29D4F357BADEAE31BDA0356709E283D0CB4089AFB23E1606D9F24B32AB21738D77EFBC4A3E83C0EEC361A235B430EA14C2DF7011F97BE5225A92D64526E8AF2EBFD4 +FPadd = 042D286AA0EF7FE15464D2773BE0EC4DD19A77AC6F9382066C977707CB0AE3C9C6BA7C5A65CBD9B907A6B1C058E734079B13791EED558622513FC0F933A8C1B522F77820AED6 +FPsub = 096B6E327D42958D021A065B660D07F11082444CDE4962ACE2B055E6EC9184FFF9B8C5561DAC86C89FBF5069598F1E5D6A5B2C02A9BEE627C548911A9C7D0421BB3616B9DB39 +FP_1nres = 0EB50A10A71788E4BCF8B48D23AD3D581A64C81DA989EC5C94EE6BEDC683D032A4DA38E3959C4312DE4311581CF0C0931E8C16176C9E5639BEC4763CF70FDA66E21EC5E89B0D +FP_2nres = 05499BDE29D4F357BADEAE31BDA0356709E283D0CB4089AFB23E1606D9F24B32AB21738D77EFBC4A3E83C0EEC361A235B430EA14C2DF7011F97BE5225A92D64526E8AF2EBFD4 +FPmulmod = 09023174396B841EFDCC58BDC61997BC72D1DF27639B73C8447CAE6F4DFD3A6C8D7D92531F268A7877CD30BE359FF4F6FF309AC1CB8C364CC6870D1460F55E5386964658A87D +FPsmallmul = 04B4FB00D70679BB22AFFAFE93F3AB751FDC5AD67074A7692212D4F640612D829D3B8817F2594BF7F07D88B65EA2E0F43C831D72EAC51CCCD4A730CA98D52156BEA3D66A021F +FPsqr = 0C5A04B4B4C47570854B44CA6E378C63FB263B81A854CE8358982303F0E8592789D1D95715AFF04AE04FB5753F99DC0635CFEB9F2FB5D886858E5816A1411C89471935D6DF12 +FPreduce = 0EB50A10A71788E4BCF8B48D23AD3D581A64C81DA989EC5C94EE6BEDC683D032A4DA38E3959C4312DE4311581CF0C0931E8C16176C9E5639BEC4763CF70FDA66E21EC5E89B0D +FPneg = 011C737388E573766679DBBA81BF491938480C245BAD07A945A69EFF0EE76768E466F7331223E29136DD0F2E6A7A6E2E191D70F5D589E9EFA83C242926EA149003F1370E10FE +FPdiv2 = 0F4343CA6B8A429FF035A26A648CE1E4B688CE2FD760703137C1BB6D4DF783E7170DB47D1EAE345B79B198EF522DF7AA2B1ACE9257634B3192E288518A84E4AEE417616FA38C +FPinv = 0E15E6DFBFD0C33C3F7387AB8973E443FFAC31174266A98723BEAC4F7D79C8647322E131F177FB4CB4D4C0FB199683330DA8A12E99EB36FD5F8073F25264A3F15F68782B3B41 +FPexp = 09CC5D59781B686B6EAF22D6B9E8DAEB9F6DFF7648267404574C3188F10233F0358C0DF93CC9FC8DD5188D56F5273DB26874A8061966CF9836557108C14FCC503377059910DD http://git-wip-us.apache.org/repos/asf/incubator-milagro-crypto-c/blob/8d28d2c3/testVectors/fp/test_vector_BN254.txt ---------------------------------------------------------------------- diff --git a/testVectors/fp/test_vector_BN254.txt b/testVectors/fp/test_vector_BN254.txt new file mode 100644 index 0000000..fe3c6f0 --- /dev/null +++ b/testVectors/fp/test_vector_BN254.txt @@ -0,0 +1,161 @@ +# FP ARITHMETICS - CURVE: BN254_T, Modulo = 2523648240000001ba344d80000000086121000000000013a700000000000013, BIGmax: 2^254 + +#test1 +FP_1 = 04 +FP_2 = 0164D24F +FPadd = 0164D253 +FPsub = 2523648240000001BA344D80000000086121000000000013A6FFFFFFFE9B2DC8 +FP_1nres = 04 +FP_2nres = 0164D24F +FPmulmod = 0593493C +FPsmallmul = 28 +FPsqr = 10 +FPreduce = 04 +FPneg = 2523648240000001BA344D80000000086121000000000013A70000000000000F +FPdiv2 = 02 +FPinv = 0948D920900000006E8D1360000000021848400000000004E9C0000000000005 +FPexp = 09E15FD021782BF3899722994C8148486BEBF3CD2923D2964FB59BBF83CD285A + +#test2 +FP_1 = 984E +FP_2 = 068B8CD5CC3A43 +FPadd = 068B8CD5CCD291 +FPsub = 2523648240000001BA344D80000000086121000000000013A6F974732A345E1E +FP_1nres = 984E +FP_2nres = 068B8CD5CC3A43 +FPmulmod = 03E4DA23DA66D1886A +FPsmallmul = 05F30C +FPsqr = 5A9CB7C4 +FPreduce = 984E +FPneg = 2523648240000001BA344D80000000086121000000000013A6FFFFFFFFFF67C5 +FPdiv2 = 4C27 +FPinv = 0E6A0EEB8D073590F928CFBFF79885F469E0966A6459FA4735EC9C79CEF77A4C +FPexp = 046201D0A77E59DE24DEFA31509C1654B749F8AB39A9154AEEB45DBCE733AF38 + +#test3 +FP_1 = 135CC6987EF9BB4A45 +FP_2 = 1E986B0CD93984F54876 +FPadd = 1EABC7D371B87EB092BB +FPsub = 2523648240000001BA344D80000000086120FFFFFFFFE18E98B9BF4574C601E2 +FP_1nres = 135CC6987EF9BB4A45 +FP_2nres = 1E986B0CD93984F54876 +FPmulmod = 025066748935B2801C6D75B79B99AA7140A3CE +FPsmallmul = C19FC1F4F5C150E6B2 +FPsqr = 0176E719FA84948CF8DFAAE8EB6BD059F699 +FPreduce = 135CC6987EF9BB4A45 +FPneg = 2523648240000001BA344D800000000861210000000000004A3967810644B5CE +FPdiv2 = 1291B24120000000DD1A26C000000004309080000000001381E34C3F7CDDA52C +FPinv = 079408E1D5C3527615CB230EA5E64686A3D822DBBB445FE933155FF124B603B7 +FPexp = 0FC77764525B568E6798E361F77E62E3040378922CC8B49988637CDBE1FB6BBE + +#test4 +FP_1 = 96DC8DF9EC19C5D5E81B +FP_2 = 12D733858FCCB04527499D5471 +FPadd = 12D7341C6C5AAA31410F733C8C +FPsub = 2523648240000001BA344D80000000086120FFED28CD11606849A6F27C3893BD +FP_1nres = 96DC8DF9EC19C5D5E81B +FP_2nres = 12D733858FCCB04527499D5471 +FPmulmod = 0B1A5393751B795F1D04D6030A5CE3B3B7A2C68F234FEB +FPsmallmul = 05E49D8BC33901BA5B110E +FPsqr = 58E7346534F942343B76958DE322073B9D5EF2D9 +FPreduce = 96DC8DF9EC19C5D5E81B +FPneg = 2523648240000001BA344D80000000086120FFFFFFFF6937190613E63A2A17F8 +FPdiv2 = 1291B24120000000DD1A26C0000000043090800000004B781A7CF60CE2EAF417 +FPinv = 2482E9FEE32F5A72731D0503AF95A99FC2336E2596FB69061A14FF02BFEE39D4 +FPexp = 01C70AF411E329E2BCA17D56A92E87BD0D4212C22499F173D7A96CCC98215257 + +#test5 +FP_1 = 29DFC49754E80ADD444735DCF0E2C5 +FP_2 = 4361E0D1F2B787A8D476431007F0D4BC +FPadd = 438BC0968A0C6FB3B1BA8A45E4E1B781 +FPsub = 2523648240000001BA344D80000000081DE8FEF2A49D6075AFCE0425D5000E1C +FP_1nres = 29DFC49754E80ADD444735DCF0E2C5 +FP_2nres = 4361E0D1F2B787A8D476431007F0D4BC +FPmulmod = 0B0593033BF75D98965E809C6D8D8F423B80ECC3F04878C9DC59DDB861ACAC +FPsmallmul = 01A2BDADE951106CA4AAC81AA168DBB2 +FPsqr = 06D970908FD0533663E47E5918E0AEABC313FD02FAC772DE13FE92406B99 +FPreduce = 29DFC49754E80ADD444735DCF0E2C5 +FPneg = 2523648240000001BA344D800000000860F7203B68AB1808C9BBB8CA230F1D4E +FPdiv2 = 1291B24120000000DD1A26C00000000430A56FE24BAA740F4222239AEE78716C +FPinv = 043424CE44035EA0FA754C2E818AB0F26778795F728A20D8690D9A542F391658 +FPexp = 0C7922FB0DC1EE256DA042CE75976621A5CBF59A624E1F15281F061F2282F03A + +#test6 +FP_1 = 012F6C4C1177810C +FP_2 = 368B9B48A3C8C2B501710C4A5D4659000E6E28 +FPadd = 368B9B48A3C8C2B501710C4B8CB2A51185EF34 +FPsub = 2523648240000001BA344D7FFFC9746D187D373D4AFE8F075DD225F3116912F7 +FP_1nres = 012F6C4C1177810C +FP_2nres = 368B9B48A3C8C2B501710C4A5D4659000E6E28 +FPmulmod = 40A64FE5A754FBAF6A38560985EF4464C09A954BB51922C751E0 +FPsmallmul = 0BDA3AF8AEAB0A78 +FPsqr = 0167A189E19E3AAF6FD60CD2351890 +FPreduce = 012F6C4C1177810C +FPneg = 2523648240000001BA344D80000000086121000000000013A5D093B3EE887F07 +FPdiv2 = 97B62608BBC086 +FPinv = 1CC0FF32C42153CFA59B92DE86088C9471E1B6AACE7D3D1675A0A3FF2AA4A04E +FPexp = 0F10B0D2D09800E9B4EC4BC9F67F201E6C35441E5FCF51EECEFF05D9E1FAE1F7 + +#test7 +FP_1 = 569A1EBBCBD557482377C3CB130808 +FP_2 = 02460A6FF7C60CF7E62269730FA499EF38FA1634866264 +FPadd = 02460A6FF7C60CF83CBC882EDB79F1375C71D9FF996A6C +FPsub = 2523648240000001BA320775900839FB699177B548BC30D0FFEA7DAD968CA5B7 +FP_1nres = 569A1EBBCBD557482377C3CB130808 +FP_2nres = 02460A6FF7C60CF7E62269730FA499EF38FA1634866264 +FPmulmod = 1A0BC6E0E4A0BF424F424063D7D50810BF218A5E159249BF22AA01C4AE104CE8 +FPsmallmul = 0362053355F65568D162ADA5EEBE5050 +FPsqr = 1D4BE96F2A9520DAE70D998EA805006C8F1438C89DB363BCDC56E1708040 +FPreduce = 569A1EBBCBD557482377C3CB130808 +FPneg = 2523648240000001BA344D800000000860CA65E144342ABC5EDC883C34ECF80B +FPdiv2 = 2B4D0F5DE5EAABA411BBE1E5898404 +FPinv = 138461EC81F8CF5E2D3A76ED6D187BFCF9D5C347F6250452B76985DCF5407D9D +FPexp = 201702795BC3A278021AE876B427F3DB7E20507C4B1F950D49D1FC96A172F60A + +#test8 +FP_1 = 06C2072D868A2771383918C0A273EA732D6A0AB605EBF5 +FP_2 = E651303E01BB2BBC6C763B8F05B6E87C78DB61A348478E5615 +FPadd = E651370008E8B24693E773C81E778AF0634E8F0D52FD94420A +FPsub = 252364823FFFFF1B690AD185725ACDC35C1DAA1309B9F7853ECBC6C26E7795F3 +FP_1nres = 06C2072D868A2771383918C0A273EA732D6A0AB605EBF5 +FP_2nres = E651303E01BB2BBC6C763B8F05B6E87C78DB61A348478E5615 +FPmulmod = 10011DD62CD30D291556A1F153090787A645C101C8DFF6862F43F35918E20F79 +FPsmallmul = 439447C741658A6C323AF7865887287FC6246B1C3B3792 +FPsqr = 245B099163E0B4C0A1C33619D19C2E48520E3EFEAEC0D2EE130B5F70B6F5C6E3 +FPreduce = 06C2072D868A2771383918C0A273EA732D6A0AB605EBF5 +FPneg = 2523648240000001BA2D8B78D27975E0EFE8C6E73F5D8C2933D295F549FA141E +FPdiv2 = 1291B24120000000DD1D87C396C34517E92C9C8C605139FF0D16B5055B02F604 +FPinv = 0A9E8CF0E395A1476434527909C9607B6D0387549268F66E0D123A01DF9E4A21 +FPexp = 011D4F77AB3224D6DD1E016AE5CBF9F2B0451CA2A8FD1E91CA7A20854D7525FE + +#test9 +FP_1 = 01F5E9306BB1F89E4E76352D2B589F +FP_2 = 013CB58B9E15D01545B5B657743DE1C7AF9AA805F109CD30119B0C9A3E +FPadd = 013CB58B9E15D01545B5B657743DE3BD98CB13B7E9A81BA646C837F2DD +FPsub = 25236481034A7463A464383A4A49A89423412E3995C3AC1B3B814623921EBE74 +FP_1nres = 01F5E9306BB1F89E4E76352D2B589F +FP_2nres = 013CB58B9E15D01545B5B657743DE1C7AF9AA805F109CD30119B0C9A3E +FPmulmod = 2228A52AFF6AE505F546C3069765B6C2442788544AE2612937755F87DB52ACF2 +FPsmallmul = 139B1BE434F3B62F109E13C3B17636 +FPsqr = 03D80A8BEEB3C9A23AC26ACDDE3C892C590C2FAA8DF6818A54CA17B2C1 +FPreduce = 01F5E9306BB1F89E4E76352D2B589F +FPneg = 2523648240000001BA344D8000000008611F0A16CF944E1B08B189CAD2D4A774 +FPdiv2 = 1291B24120000000DD1A26C00000000430917AF49835D90622A73B1A9695AC59 +FPinv = 0B3E1204E9C8665211BBB6E73A6889BB37748580EBC54EF1138168E0D531CD6E +FPexp = 1EF31E72A62B794478ED6D5693B2FADF7966FFEC23A38247F97C82BE3B3ECB51 + +#test10 +FP_1 = 34 +FP_2 = 3C6B618F42CB9C1FF444CA38BCD50888B97A1891D7B8B56455443410A15CEB49 +FPadd = 1747FD0D02CB9C1E3A107CB8BCD5088058591891D7B8B550AE443410A15CEB6A +FPsub = 0DDB67753D3463E38023D0C7432AF78808C7E76E28474AC2F8BBCBEF5EA31511 +FP_1nres = 34 +FP_2nres = 1747FD0D02CB9C1E3A107CB8BCD5088058591891D7B8B550AE443410A15CEB36 +FPmulmod = 1632D65C915BB5EC84CFA5865B45B905CDF8FD9FD184D1EE85DA9360C6DFC498 +FPsmallmul = 0208 +FPsqr = 0A90 +FPreduce = 34 +FPneg = 2523648240000001BA344D80000000086121000000000013A6FFFFFFFFFFFFDF +FPdiv2 = 1A +FPinv = 179189A16D89D89EA279CEB89D89D8A2DB2D8EC4EC4EC4F8C784EC4EC4EC4ED1 +#FPexp = 15F9F387C238C9105D3526C4977629635C6A8EB0160DA8E3886C70423C79ADD2 http://git-wip-us.apache.org/repos/asf/incubator-milagro-crypto-c/blob/8d28d2c3/testVectors/fp/test_vector_BN254CX.txt ---------------------------------------------------------------------- diff --git a/testVectors/fp/test_vector_BN254CX.txt b/testVectors/fp/test_vector_BN254CX.txt new file mode 100644 index 0000000..ba56c79 --- /dev/null +++ b/testVectors/fp/test_vector_BN254CX.txt @@ -0,0 +1,161 @@ +# FP ARITHMETICS - CURVE: BN254_CX, Modulo = 0x2400000008702a0db0bddf647a6366d3243fd6ee18093ee1be6623ef5c1b55b3, BIGmax: 2^256 + +#test1 +FP_1 = 03 +FP_2 = F63C49 +FPadd = F63C4C +FPsub = 2400000008702A0DB0BDDF647A6366D3243FD6EE18093EE1BE6623EF5B25196D +FP_1nres = 03 +FP_2nres = F63C49 +FPmulmod = 02E2B4DB +FPsmallmul = 1E +FPsqr = 09 +FPreduce = 03 +FPneg = 2400000008702A0DB0BDDF647A6366D3243FD6EE18093EE1BE6623EF5C1B55B0 +FPdiv2 = 1200000004381506D85EEFB23D31B369921FEB770C049F70DF3311F7AE0DAADB +FPinv = 1800000005A01C09207E94EDA6ECEF376D7FE49EBAB0D4967EEEC29F92BCE3CD +FPexp = 15EC1729458B6C747A3FD2C2AD53FA592D9E026C2F53625870FAFCE7ECC2CD6F + +#test2 +FP_1 = 0FDEE90CC8BB84 +FP_2 = 044FD88584AB3E +FPadd = 142EC1924D66C2 +FPsub = 0B8F1087441046 +FP_1nres = 0FDEE90CC8BB84 +FP_2nres = 044FD88584AB3E +FPmulmod = 446EDA79C04AD87C4771EE95F8 +FPsmallmul = 9EB51A7FD75328 +FPsqr = FBE16885DA64B9B541E79A1C10 +FPreduce = 0FDEE90CC8BB84 +FPneg = 2400000008702A0DB0BDDF647A6366D3243FD6EE18093EE1BE5645064F529A2F +FPdiv2 = 07EF7486645DC2 +FPinv = 027425A032B48E8C1D60F34246339399713F1CBB4A78322F00D5AF7923299AC9 +FPexp = 0CAD30B8796651706CEC2628BDD4E56228E1794B805B4F378B4C6BD1E9F4289B + +#test3 +FP_1 = 0926BA03CD7CE07559 +FP_2 = 06D13E62643925C6E811 +FPadd = 06DA651C6806A2A75D6A +FPsub = 2400000008702A0DB0BDDF647A6366D3243FD6EE18093819A6BDC383B334E2FB +FP_1nres = 0926BA03CD7CE07559 +FP_2nres = 06D13E62643925C6E811 +FPmulmod = 3E6334D960FD11844DA9BFAA6532551672E9 +FPsmallmul = 5B83442606E0C4957A +FPsqr = 53BEF004BD4F82CF21707A3D05C98A78F1 +FPreduce = 0926BA03CD7CE07559 +FPneg = 2400000008702A0DB0BDDF647A6366D3243FD6EE18093ED897AC2021DF3AE05A +FPdiv2 = 1200000004381506D85EEFB23D31B369921FEB770C049F75729013DE6C7DE586 +FPinv = 19E77B8E2F6F0521470220ED6A4C53B08F8A9048BBC2107421BB0FEDBD642C55 +FPexp = 18FEC80C2F12C12FCEF009BCC5598E9A9697B2A3AE7D7D1BDFDA6CA8F2965DA0 + +#test4 +FP_1 = 3A +FP_2 = 4C6D1E701AECF662AF947612CE +FPadd = 4C6D1E701AECF662AF94761308 +FPsub = 2400000008702A0DB0BDDF647A6366D3243FD6A1AAEACEC6D16FC13FC7A5431F +FP_1nres = 3A +FP_2nres = 4C6D1E701AECF662AF947612CE +FPmulmod = 1150B8E56619AFD25BC7A2C042AC +FPsmallmul = 0244 +FPsqr = 0D24 +FPreduce = 3A +FPneg = 2400000008702A0DB0BDDF647A6366D3243FD6EE18093EE1BE6623EF5C1B5579 +FPdiv2 = 1D +FPinv = 23611A7B9E5C93426B7CCE4CAD3E60A35D00F21EF44FB4F855995847EC2C84C6 +FPexp = 0B9A0C28A52AF2CB38F36673EA1371B188E3B2E8907708A470874E46F7FAFFA7 + +#test5 +FP_1 = 662AA485C6 +FP_2 = 8D85E34D88C997924869F71B3BAB01CC +FPadd = 8D85E34D88C997924869F781664F8792 +FPsub = 2400000008702A0DB0BDDF647A6366D296B9F3A08F3FA74F75FC2D3A4B14D9AD +FP_1nres = 662AA485C6 +FP_2nres = 8D85E34D88C997924869F71B3BAB01CC +FPmulmod = 387AEB7BE8DB142E547B7A76099AB544309CE25FC8 +FPsmallmul = 03FDAA6D39BC +FPsqr = 28C60234FF68A3975524 +FPreduce = 662AA485C6 +FPneg = 2400000008702A0DB0BDDF647A6366D3243FD6EE18093EE1BE6623893176CFED +FPdiv2 = 33155242E3 +FPinv = 1925880FCD45734F8F6AD2C590FA7435ACDEA67102BA6005E52C361821DC4F3E +FPexp = 1759AD139FC86045CF4912402E5B9C4F62321DC45C47A8F0A71E329B0EFCB73C + +#test6 +FP_1 = 01B72A1E9F9D343ADCAE7BBEFCF7F5FFA646354E +FP_2 = 035BA7AEA924F3FD4A94BE3BEFF23B69323EDF0B +FPadd = 0512D1CD48C22838274339FAECEA3168D8851459 +FPsub = 2400000008702A0DB0BDDF6478BEE9431AB8172BAA22FC64CB6BDE85D022ABF6 +FP_1nres = 01B72A1E9F9D343ADCAE7BBEFCF7F5FFA646354E +FP_2nres = 035BA7AEA924F3FD4A94BE3BEFF23B69323EDF0B +FPmulmod = 18A372B94476F2F92A5BA7380D551CD2A028040295374E9BEAFBEEF2373EAA33 +FPsmallmul = 1127A5323C240A4C9ED0D575E1AF9BFC7EBE150C +FPsqr = 1E437838C7B6B63D4FCBCAD4AB626A777761676B9D21CE3EBDBFF880D5426EC7 +FPreduce = 01B72A1E9F9D343ADCAE7BBEFCF7F5FFA646354E +FPneg = 2400000008702A0DB0BDDF6478AC3CB484A2A2B33B5AC322C16E2DEFB5D52065 +FPdiv2 = DB950F4FCE9A1D6E573DDF7E7BFAFFD3231AA7 +FPinv = 0BD12F0A134E7AA18FE4F5DF23E440ECD5A2C08710F657B97047B7B814880BD4 +FPexp = 1A618E707597662CDD92C5E16731C6C470D13EA1737419D3A2D3B1A1B7E14F89 + +#test7 +FP_1 = 615A00E0DE74F102D2 +FP_2 = 055A3D0C45FE032AF5E1A0A36776961334AD0F94BAD786 +FPadd = 055A3D0C45FE032AF5E1A0A36776F76D358DEE09ABDA58 +FPsub = 2400000008702A0DB0B885276E1D68CFF949F54D74A1C8AD053257BE3C5180FF +FP_1nres = 615A00E0DE74F102D2 +FP_2nres = 055A3D0C45FE032AF5E1A0A36776961334AD0F94BAD786 +FPmulmod = 020912DFD071F81BF35AC0B0F825C77BA0ED4BE111F97575B83BE9B31419D7EC +FPsmallmul = 03CD8408C8B0916A1C34 +FPsqr = 2505544F06B1CE63A714745BB1AC9F6BF444 +FPreduce = 615A00E0DE74F102D2 +FPneg = 2400000008702A0DB0BDDF647A6366D3243FD6EE18093E8064654310E72A52E1 +FPdiv2 = 30AD00706F3A788169 +FPinv = 093D8F1E78B5D38C8965371D56B35388F42C2E481C9C42D6C8A06D0213F6F171 +FPexp = 12F2EC3B7B5C2716F870359B4AD7B7F0854263955660A0BDB5293D0DB0EF7A30 + +#test8 +FP_1 = 03B69B6A04FF4307CF52726509C21A91E0BEAB674CCBB1A322A7 +FP_2 = 1AC3D3C722ABCAD9CD8A508A6559EDBC444B87FA22BB813B116D +FPadd = 1E7A6F3127AB0DE19CDCC2EF6F1C084E250A33616F8732DE3414 +FPsub = 24000000087013007860C1B7F291689B461A7B5644DEDB54E1D34DFF8C8366ED +FP_1nres = 03B69B6A04FF4307CF52726509C21A91E0BEAB674CCBB1A322A7 +FP_2nres = 1AC3D3C722ABCAD9CD8A508A6559EDBC444B87FA22BB813B116D +FPmulmod = 124042C2E296B75944354EE5F85DDD7C55D7F1095D1BE65C54A1E47E9E98DE41 +FPsmallmul = 2522122431F89E4E193877F2619509B2C772B208FFF4F05F5A86 +FPsqr = 082F6111A3143E78787035DE51B081CD09A98C7378FDDE00630041C6202449C0 +FPreduce = 03B69B6A04FF4307CF52726509C21A91E0BEAB674CCBB1A322A7 +FPneg = 24000000087026571553DA65375B9780B1DACD2BFD775E2312FED723AA78330C +FPdiv2 = 12000000043816E22613F231DEB59B12CB527058194D8FD034E6B85D86DF3C2D +FPinv = 18A5A211E6C85C16229ACF0734F0E19BDACC95AC2464C26B3DEC07BF7C5BAB4B +FPexp = 1D738D2AB989242CA5B286D08309FB96F105B57CA46CB875D446E2B7366E0054 + +#test9 +FP_1 = 1F +FP_2 = 71AF553802AD36AFC6A37C8860B6C0B4E67E8102744E99756732D7D925 +FPadd = 71AF553802AD36AFC6A37C8860B6C0B4E67E8102744E99756732D7D944 +FPsub = 23FFFF8E591AF20B03872F9DD6E6DE726D7F220799883C6D6FCCAE8829437CAD +FP_1nres = 1F +FP_2nres = 71AF553802AD36AFC6A37C8860B6C0B4E67E8102744E99756732D7D925 +FPmulmod = 0DC43B51C852F99F490DCC1483B62155E7E9519F4C158495377F28234B7B +FPsmallmul = 0136 +FPsqr = 03C1 +FPreduce = 1F +FPneg = 2400000008702A0DB0BDDF647A6366D3243FD6EE18093EE1BE6623EF5C1B5594 +FPdiv2 = 1200000004381506D85EEFB23D31B369921FEB770C049F70DF3311F7AE0DAAE9 +FPinv = 0F18C6318FECF8DC736865F0545B3BA2DDA7289564EB1A5EAAAEF64B9A3D02E8 +FPexp = 1B9D2A6192A9C1033DD7D6044F3CC379C7568AFB4091239A9DB058A4033DF3D3 + +#test10 +FP_1 = 0C6C248404156027BDBFA9 +FP_2 = 5FA5A0C32A6BED59681ED08FAF3D7A527C6E2D835BCE5F44409A8CEBCBF15DD5 +FPadd = 17A5A0C3198B993E06A311C6BA76ACAC33EE7FA72BC84DA547D25A6D3B787218 +FPsub = 0C5A5F3CEEE490CFAA1ACD9DBFECBA26F0515746EC59C9857E9BF442701E62ED +FP_1nres = 0C6C248404156027BDBFA9 +FP_2nres = 17A5A0C3198B993E06A311C6BA76ACAC33EE7FA72BBBE180C3CE450D13BAB26F +FPmulmod = 215BD9F03141612758F00621CF997E54C20D447486AEBBDCA11D6347B8C63C1E +FPsmallmul = 7C396D2828D5C18D697C9A +FPsqr = 9A511B34FAD847147914B255BF3B34D5CA0D079D91 +FPreduce = 0C6C248404156027BDBFA9 +FPneg = 2400000008702A0DB0BDDF647A6366D3243FD6EE17FCD2BD3A620E8F345D960A +FPdiv2 = 1200000004381506D85EEFB23D31B369921FEB770C0AD58321351CA7C1EC8AAE +FPinv = 0845BE9CC228B1734F917DE19461FBEFC422CA9DE9C65DEC628E6525B2498708 +#FPexp = 10057B3193D789DE7BA1976B147F24ED514D18EB4EE408B898F73DE8EA49F50E http://git-wip-us.apache.org/repos/asf/incubator-milagro-crypto-c/blob/8d28d2c3/testVectors/fp/test_vector_BRAINPOOL.txt ---------------------------------------------------------------------- diff --git a/testVectors/fp/test_vector_BRAINPOOL.txt b/testVectors/fp/test_vector_BRAINPOOL.txt new file mode 100644 index 0000000..f728836 --- /dev/null +++ b/testVectors/fp/test_vector_BRAINPOOL.txt @@ -0,0 +1,162 @@ +# FP ARITHMETICS - CURVE: BRAINPOOL, Modulo = a9fb57dba1eea9bc3e660a909d838d726e3bf623d52620282013481d1f6e5377; BIGmax = 2^256 + +#test1 +FP_1 = 0FA670 +FP_2 = 03701D11 +FPadd = 037FC381 +FPsub = A9FB57DBA1EEA9BC3E660A909D838D726E3BF623D52620282013481D1C0DDCD6 +FP_1nres = 0FA670 +FP_2nres = 03701D11 +FPmulmod = 35CDE7E4BD70 +FPsmallmul = 9C8060 +FPsqr = F4ED557100 +FPreduce = 0FA670 +FPneg = A9FB57DBA1EEA9BC3E660A909D838D726E3BF623D52620282013481D1F5EAD07 +FPdiv2 = 07D338 +FPinv = 116589A84C95C1199FA78ABFCB4EAF149E4303A47438AA0D5B0F385517245735 +FPexp = 74C5E0128715C18282B09FAD13EC1834B41FF5156CC39EF92F98520C07C4EF13 + +#test2 +FP_1 = 03654DA9 +FP_2 = 0BF515A12E0473 +FPadd = 0BF515A493521C +FPsub = A9FB57DBA1EEA9BC3E660A909D838D726E3BF623D52620282007530781A59CAD +FP_1nres = 03654DA9 +FP_2nres = 0BF515A12E0473 +FPmulmod = 289A93086DF7591686EB +FPsmallmul = 21F5089A +FPsqr = 0B87E854E91991 +FPreduce = 03654DA9 +FPneg = A9FB57DBA1EEA9BC3E660A909D838D726E3BF623D52620282013481D1C0905CE +FPdiv2 = 54FDABEDD0F754DE1F3305484EC1C6B9371DFB11EA9310141009A40E9169D090 +FPinv = 87B97DD0C5F4C4E8EBD665D79CE2F3734DAD0DC027283F69FB4535668BBE882E +FPexp = 78BDD2012988D078DB18A504E2FF2A8559306045FBBF660DAB2908BBF8FC0CFB + +#test3 +FP_1 = 425D +FP_2 = 0F591F75D847FF4C6946 +FPadd = 0F591F75D847FF4CABA3 +FPsub = A9FB57DBA1EEA9BC3E660A909D838D726E3BF623D52610CF009D6FD520222C8E +FP_1nres = 425D +FP_2nres = 0F591F75D847FF4C6946 +FPmulmod = 03FA8D7CCF9221F971E64A6E +FPsmallmul = 0297A2 +FPsqr = 113415C9 +FPreduce = 425D +FPneg = A9FB57DBA1EEA9BC3E660A909D838D726E3BF623D52620282013481D1F6E111A +FPdiv2 = 54FDABEDD0F754DE1F3305484EC1C6B9371DFB11EA9310141009A40E8FB74AEA +FPinv = 4C6E687724EB23DC803BA7A823BED9E34DA38ED4E851330F869070101BCCC89A +FPexp = 3685C285CDDD7A5D065939CC2D89CC56D9782C4C6BA6B315C04CB2671AF4AFF2 + +#test4 +FP_1 = 31059D +FP_2 = 45EBE5B2950BFF7BE60E9EC1AA +FPadd = 45EBE5B2950BFF7BE60ECFC747 +FPsub = A9FB57DBA1EEA9BC3E660A909D838D726E3BF5DDE9406D931413CC371100976A +FP_1nres = 31059D +FP_2nres = 45EBE5B2950BFF7BE60E9EC1AA +FPmulmod = 0D63AF7456E2BA8B102346C322AF1742 +FPsmallmul = 01EA3822 +FPsqr = 096326398249 +FPreduce = 31059D +FPneg = A9FB57DBA1EEA9BC3E660A909D838D726E3BF623D52620282013481D1F3D4DDA +FPdiv2 = 54FDABEDD0F754DE1F3305484EC1C6B9371DFB11EA9310141009A40E8FCFAC8A +FPinv = 4E05D801B5CFF86AACAB7DF43CBC667475187A8E962B9F3B60F9C160DF09E949 +FPexp = 7C0623ED1CA12F272CB142987E80157EBACDDEA31E07904F89D4A0C6035872DF + +#test5 +FP_1 = 06F196 +FP_2 = AB239D71C951D5B76418FD89AF0C7946 +FPadd = AB239D71C951D5B76418FD89AF136ADC +FPsub = A9FB57DBA1EEA9BC3E660A909D838D71C31858B20BD44A70BBFA4A937068CBC7 +FP_1nres = 06F196 +FP_2nres = AB239D71C951D5B76418FD89AF0C7946 +FPmulmod = 04A4567EC1171D027137461E8D46C2271DF504 +FPsmallmul = 456FDC +FPsqr = 303703C3E4 +FPreduce = 06F196 +FPneg = A9FB57DBA1EEA9BC3E660A909D838D726E3BF623D52620282013481D1F6761E1 +FPdiv2 = 0378CB +FPinv = 17C6D2DA3BDDEDBC5B6534F8EBF7BED5630B8A3459733C892A94716C14BAB44E +FPexp = 9C1968BB40F982F79210FD7F29D32BBA262F486C9ED6ED57CB78C0788223E2F7 + +#test6 +FP_1 = 0C7FA8680626B8F32953A529737B811DC8 +FP_2 = 0397A28652B1DD1F13EF32C669D7DEAAB9FCF107 +FPadd = 0397A292D25A45253AA825EFBD7D081E357E0ECF +FPsub = A9FB57DBA1EEA9BC3E660A9099EBEAF89B32810AE7EFE08B09E092E5E0F28038 +FP_1nres = 0C7FA8680626B8F32953A529737B811DC8 +FP_2nres = 0397A28652B1DD1F13EF32C669D7DEAAB9FCF107 +FPmulmod = 10DFEBCC4D2D65EE5FB95CD6929C25E26309BC537C4F1F9E5A37304D6C04E915 +FPsmallmul = 7CFC94103D83397F9D44739E82D30B29D0 +FPsqr = 2DB89FF4C8044FB0D3243FAECD14AEAC594DD7D18B0ED4A22F3CF2B15CC04E03 +FPreduce = 0C7FA8680626B8F32953A529737B811DC8 +FPneg = A9FB57DBA1EEA9BC3E660A909D838D65EE938E1DAE6D2CFECC6E1EA9A3ED35AF +FPdiv2 = 063FD43403135C7994A9D294B9BDC08EE4 +FPinv = 36C1BD559CA0246D3FC40E9135F9C536132E482BCE4B2251322720FB4FFB8BEC +FPexp = 78AFFCB1BF044724B26A2227F579FDB00F2BE0008DBB033369727551C5941F7F + +#test7 +FP_1 = 016536B660AC6B +FP_2 = 0BDB5D25474875D4309E9D0B9F993CE5144FA4052F9CD3 +FPadd = 0BDB5D25474875D4309E9D0B9F993CE515B4DABB90493E +FPsub = A9FB57DBA1EEA9BC3E5A2F33783C44FC9A0B5786C98686EB3B005DAFD09F630F +FP_1nres = 016536B660AC6B +FP_2nres = 0BDB5D25474875D4309E9D0B9F993CE5144FA4052F9CD3 +FPmulmod = 108B719D10BCDB86FBF9F70D258067E08B7DB4D66E5BEE9BE4F9645031 +FPsmallmul = 0DF4231FC6BC2E +FPsqr = 01F271A45B1398C4CDE85FF4B9 +FPreduce = 016536B660AC6B +FPneg = A9FB57DBA1EEA9BC3E660A909D838D726E3BF623D52620282011E2E6690DA70C +FPdiv2 = 54FDABEDD0F754DE1F3305484EC1C6B9371DFB11EA931014100A56A9EAE77FF1 +FPinv = 2BA4423357D355B75BB0C6BC12BCAC077EEBF1196A166120BB0E6328E0226EC3 +FPexp = 4E98A167539AE617449C95318E5C4E99090D438362F839AF9BC53867FD9AB203 + +#test8 +FP_1 = 0607B70163C95D4654B544666E1A521A7456 +FP_2 = 09BEC2598918D3C5BE0C0CE3C17AA964FF705AC6F0CBFD0B29FC +FPadd = 09BEC2598918D3C5C413C3E5254406AB54259F2D5EE64F259E52 +FPsub = A9FB57DBA1EE9FFD7C0C8177C9BDD56E185998728907756D09B2C56B747D9DD1 +FP_1nres = 0607B70163C95D4654B544666E1A521A7456 +FP_2nres = 09BEC2598918D3C5BE0C0CE3C17AA964FF705AC6F0CBFD0B29FC +FPmulmod = 4A156DAE13C7F4CE74A2BED23882A2936C285B1105D32561D67134C3E3FFD2A0 +FPsmallmul = 3C4D260DE5DDA4BF4F14AC004D0735088B5C +FPsqr = 4186E68E14D5FE46E9213FD57F4A1F9DE7394446E6C0864AD90698C06E82F4A5 +FPreduce = 0607B70163C95D4654B544666E1A521A7456 +FPneg = A9FB57DBA1EEA9BC3E660A909D83876AB73A925A77DFCB72DBACDA02CD53DF21 +FPdiv2 = 0303DB80B1E4AEA32A5AA233370D290D3A2B +FPinv = 06B966B43D66CDB743D22A3EDA25AD71D64EB77A065CAF976BADEAD69650B269 +FPexp = 1F95E64E918A44E4A7380A98FB4E20BF89B06C0C5E184502CA00E2FFCB14A9D3 + +#test9 +FP_1 = 2AB2D76DDD0C2DB080D0D9895BCE44EA41DBC858EB62 +FP_2 = 32692AC739661DE7E3359E5A63BE0B5008A11C065368CB35AE83B5BF28 +FPadd = 32692AC739661E12960D0C376FEBBBD0D97AA56221ADB5778A4C0EAA8A +FPsub = A9FB57A938C3E282D8484D603F53101ADDE126EC0D9375A2FC32544A64117FB1 +FP_1nres = 2AB2D76DDD0C2DB080D0D9895BCE44EA41DBC858EB62 +FP_2nres = 32692AC739661DE7E3359E5A63BE0B5008A11C065368CB35AE83B5BF28 +FPmulmod = 5A4A18F241B1D792736E630A1C24DF2B1D6C59FAFD5070A416CE92881180F7B3 +FPsmallmul = 01AAFC6A4AA279C8E508287F5D960EB1269295D37931D4 +FPsqr = 0FEC05F562203EF3C677B961226F195ADB29F7B33EE9D8734D2F5C38A0CD85BA +FPreduce = 2AB2D76DDD0C2DB080D0D9895BCE44EA41DBC858EB62 +FPneg = A9FB57DBA1EEA9BC3E65DFDDC615B066408B7552FB9CC459DB29064157156815 +FPdiv2 = 15596BB6EE8616D840686CC4ADE7227520EDE42C75B1 +FPinv = 0BF231A48CDC56191C39B88E87987009B2E0A4371ED2B1878DCDC4A8E88DED2A +FPexp = 80DAF250193EA58108BA24731C7FEBBF9798275FAA1C267115BB052A74CF2548 + +#test10 +FP_1 = 8C12EB0B0ECA7CD25E13026DF0A72782A9357A412BFD553790225BE26D33DB +FP_2 = 107257E9C5112CE0AC188FD5D2C2ED0259D9A482F42C7EBACB95E0A293136E2D +FPadd = 10FE6AD4D01FF75D7E76A2D840B39429DC82D9FD35587C10032602FE7580A208 +FPsub = 9A1512DCE7EC475864AB8DBD38B14797970B871B22259EC28C0D89D66EC81925 +FP_1nres = 8C12EB0B0ECA7CD25E13026DF0A72782A9357A412BFD553790225BE26D33DB +FP_2nres = 107257E9C5112CE0AC188FD5D2C2ED0259D9A482F42C7EBACB95E0A293136E2D +FPmulmod = 611E1462863D178DE74410C7B018FC89D2A39DB52102CE0082527AFA30A6C102 +FPsmallmul = 0578BD2E6E93E8E037ACBE184B66878B1A9C16C68BB7E5542BA15796D844068E +FPsqr = A7C17CC533A80BA92BD7965313A588DFBE05112FF927838F2AEC7DB50DB9D21F +FPreduce = 8C12EB0B0ECA7CD25E13026DF0A72782A9357A412BFD553790225BE26D33DB +FPneg = A96F44F096DFDF3F6C07F78E2F92E64AEB92C0A993FA22D2E88325C13D011F9C +FPdiv2 = 5543B563567EBA1C88620EC985BA1A4CF87295CF0B290EBEABD1B53C80EDC3A9 +FPinv = 12C36C79BF51C60D745753932016A34C0AC3938A300068C29EB2EF72F9E3F64C +FPexp = 2EF7F4A4BA2526E8A9284F96113415713A378F75FF96E75EF668596EAE49C570 +
