Files
Project_CTR/ctrtool/deps/libtoolchain/test/RsaPssUtil.cpp
T
2022-03-12 16:00:33 +08:00

143 lines
22 KiB
C++

#include "RsaPssUtil.h"
#include <tc/cli/FormatUtil.h>
void RsaPssUtil::generateRsaPssTestVectors_Custom(std::vector<RsaPssUtil::TestVector>& test_list, size_t key_size, RsaPssUtil::HashAlgo hash_algo)
{
std::array<RsaPssUtil::TestVector, 2> tests;
// test 0
tests[0].test_name = "test 1";
// test 1
tests[1].test_name = "test 2";
// set keys
auto modulus = tc::ByteData();
auto privexp = tc::ByteData();
switch (key_size)
{
case (1024):
modulus = tc::cli::FormatUtil::hexStringToBytes("A2A451678C1DFDB0A505DEC45FD34815054AEF603D8169B79743D8562D7F197021BBE7C9D07F67590E8B6720A6DB8C04CC52EAB90554F8F5CE903A820F9C50F7C09265DEEB5F2BFD8FC19A0A4BB6CD52129393AE09459BE75A8FCDA7C74D1CAF6506D121AD13B3CC595F0382EF896FA7569C223D330C1B4B0B4ECF4ADE8B18D3");
privexp = tc::cli::FormatUtil::hexStringToBytes("1E397113501BA6B0740A623A96203A6E059CC65D5930BA87AEA9A20369D30BD425C0B8B36D76AFAB0223EFD7468AD83B70091CABA38D05F3101F0770721C37837731039681CD536307AD3232C753485CCA60FC243E9CB2A388A79F2E8EA6CC13B912BAD042DAE58C72516D0AFDDB73579EBF095874DF2CF33129AB7BEA0121B1");
break;
case (2048):
modulus = tc::cli::FormatUtil::hexStringToBytes("DEBE4D3F6AA0C4B0F7B90FB132FF8ABAA98DE69FBDE58AABF0494E6C7327859A5C3638DA1236B2C23D92175AD1A74C72E30AEB539CC947CBE5ECB080ED45391FFA3DB93227EFF30804660782CF56E740DA584F677D96714823C6B1C31E719A2D479314A1E7A493D72909043580058C3AE8A17187140D0A6B60054435A1CBC01BE7DF0991ABF254F37713BD93F02B9906610809C5BCB88883B91D0ED86BD2C68AF5661FAE8B9DBEB2C3D90AEE85BBA9A350D29E2E6188696ECCB465B2313DEE088F3352C4D94BA91B36F3FFF2F918292A6A1429CD22E5A317B0BE9684A8B25F55CA38F9BAE9A6EA3CB48F618A71547D832C2E9CBAC97D2769010F5CD03526352D");
privexp = tc::cli::FormatUtil::hexStringToBytes("268F784D05B70E45FAA4B178423565FD599404BC5BC20CA72662726EA8E2CB28C554E7B3ACDA8648C522F0E31A8F65573041F82A51E6B084B669AAC6AF0CC04E6E625818BC3C386D0761E863F763FA85CA26E69C2A6C2C714A2C4022E0B6D6F386C40A1ADB40AD0D5EFFBE184AF0EAED59CF751966D9B9178C986CCE0214054E1CC0801CF5AABDBE1C7DB8CE9B043AE024A18723E3AB7A68F8806993DD6B872A05BC827CC9CD33E77AEDF7B828A635EE9C99A525204FF09EB8F440825C73C072AAC2AE9882E1B29318434CD6B556A2753451173442BD65082DC4CBB9318F5A8B7FF9AF84CB9F030259CF84039F63675574C16A7027828C2C7845E1841DA63B6B");
break;
case (4096):
modulus = tc::cli::FormatUtil::hexStringToBytes("92654BE390E6DA06A826A8CA54760ED3C2D4F424318C4EA4C0741A98EF13B9DAC07F6BFB5FB8F24889B47556FCCF53492BBAC6F4E3BECEC4F906723ECBC36BAEAFB050DE30A393B7AAADAF45CE258CD1859A708DB22642AD0062EF65BCFACA3519516576A877C431417BA19EE7981BA99FE2818DEDD0A8508080AF9E79D88F1B1B90CE61F8B600D9A919B4B7B2083A88CA536CAF67C2C09A2533DEEA647BA9B5EFE8660E086DF20D6EC5AAA2B7A668B9E8E5D276AD5EE697DA95DDE79A8E53CB2B1DC28268D132B413516ACD191423AC76C7EAD37301411382FE5FB68D2096A74F0811148A87FB3C285893032736CBF5901220C7B7BE04A5E215B0F0FF8076059839EED2E492E86BDE7D6E5206A635B67A62CFF261BC686B45C7E02F485CF7BF8800027A830AE1195E3895EBBDA47612B5E42198BAB3CE3E4837FBD4DABAE199390C7BBBCB9420C2E5173AA21597CA3537B9CC5FAFBEE4D72CB232F8796B525F031B6E9F0F9CDBCDFAD839270ABF8935FED7BF53ACF841091F6B53FE545F251F4754CCE3BC0426828F7473607CBE14DACDED705B800FA93389463DAA23FE187329CB13F00849273797EE5D5936C1CB0336A571964897CAAACE540BE2910B0127F6A2B54708329A4465E4780AC0FAFD25CF6C90857ED01A18370B42CB37DEE3D07D2336F16CA537AFF2A3E312178E89ED5850551328E49294A122F2013C50E7BF");
privexp = tc::cli::FormatUtil::hexStringToBytes("2CE9E40300C13A91C143FF13F81EB244D8A8F1F02ABD63A15B2423C6D8CE81FE3181C654BC54E70C472734BAC7DC29AEB0BA6070E070794A682648A5A8691F9FDBE9E99D89699E17C2C6FF97987BDFBCA6533005E0EAA9191F9DBAD9C9455E05356BCA07C1FEE093C605D29B886D1BCB8A307953DC6AE040B67404AD47AF9F940EFC79BD080B7AAE4C9984DEB8C19A87BE1F23209B625E29CC9121EA6282A81A17ED02667AC29478F78BB062B49A5AD5F2B493C1F245C3D441ED29C3F5208667B6262EB748C629DAA2749FA225F80E4BCAB36201966E83932364BC63AADF9D28DE6FD8A1A730B9ED0669CA4CB4DAB46F75D081FB140DB9AA54F717AE908CCE684913E078F1FC71032C50CE3A4175DC1E7337C6BB1AF998EADB2713A8D6B3AA66ABBF8FDF9C2783A046C782576F60A7AAAB38E25253A9235C9C94FDAB51380A427C9B604F6373744D23D7213CF1ABC561F4914F7EBFE92EA354FDDA251ACC4F55FF55A9A1F2A0D63654F44CD3A0CD9DACE8B93F47EB542EF825590779F191628EC6FCDDCB419FD89CCBA16E1131E15E0AD730446F993AC9AF9283494A53074CC84BD856D47FA8A682A6728B9F1F60EF283DA4533501FA36C276F5E2438A7A675B871DE92E325DA4E5F0CC5795AE36743BDF209F08C47D91F85F0280988267C71FC9B05F5C34BC5BFAADB1B006C5E18DA769CDD6F88CB0AFFAB0F7CC8E027DF6B5");
break;
default:
return;
}
for (size_t i = 0; i < tests.size(); i++)
{
tests[i].key_modulus = modulus;
tests[i].key_private_exponent = privexp;
}
if (key_size == 1024 && hash_algo == HashAlgo::SHA1)
{
tests[0].salt = tc::cli::FormatUtil::hexStringToBytes("6AD3C408F3565C97F0BEC62FF728921967287AB8");
tests[0].message_digest = tc::cli::FormatUtil::hexStringToBytes("0B54234C25D22747C81C7365B04996AB3D96EBEF");
tests[0].signature = tc::cli::FormatUtil::hexStringToBytes("88FF134C0A0DA7FE0DEBF63C60D62DA524E98B73D8E905178258D7B645AC4CF5615165465C053A2596DD189F1DB4B7686BC36AA3F39AE67B19D3D36B64F96E7B45E0D2B4F36064D2E8EAD04CBF3F4153A0E630F4610973F625F9911A29F6C629062173810272B4B1C6C256757779C4DEE495306D798B61DACC2CB34A662368BB");
tests[1].salt = tc::cli::FormatUtil::hexStringToBytes("6575F1C16518DA498E3DFD4BC06F6E30C91E5CD4");
tests[1].message_digest = tc::cli::FormatUtil::hexStringToBytes("62737496A3A99DB6808296117E3CE796201C84B7");
tests[1].signature = tc::cli::FormatUtil::hexStringToBytes("049979E126E716538234962160FCED53A9B43A2AC2404679A1C3738E111F47488F881DA8A1A9BE25C7A8322EE40E19841FB0D38915300A4CF32EBA383ECA99A47DE95F12F3495F052B2EB575DC3D78FA6FB64EB986D7DDBB9C41CA4BD558543CA249D2A34A1EABA1A6584896C6C1F5D2E717BFECD1E172E34AFF25980841996B");
}
else if (key_size == 1024 && hash_algo == HashAlgo::SHA256)
{
tests[0].salt = tc::cli::FormatUtil::hexStringToBytes("EF01E25B33F6BF37B0BA88893672F640E200A2F6D2107AACCA4708F8891D682B");
tests[0].message_digest = tc::cli::FormatUtil::hexStringToBytes("A2386D7FF4EF41BAD87D62CA8BAA1563AAFDF8013ED6B3668BFC1E7616D86CAC");
tests[0].signature = tc::cli::FormatUtil::hexStringToBytes("8267259B830A93F5C2D711FF005F7B46C0078E4F5558BC85FB4FB2517CECAD518B8AFC387BD9050A21397E456815A46ADEAC23F636C648B65943B51DF316DEA4C30B9F255801FFBB3EEA660DF7317F5F010FA0F3437ECC1F0140BEE08A50263588523C05F248E30FF14BEAF73E74842BECFB458FE892D833D341711D24F7FB86");
tests[1].salt = tc::cli::FormatUtil::hexStringToBytes("927EF7CC082FC43B7B012C38FC602369F67C8B770DDD3F4025FDC448601EE397");
tests[1].message_digest = tc::cli::FormatUtil::hexStringToBytes("0D9E93AE17D944B14BE6F382A64341AFE7B33BE21774654ECF9FB8D3CE036E86");
tests[1].signature = tc::cli::FormatUtil::hexStringToBytes("05DBFEE535D4C2613B838D70DD6E571F221C3CDF5ED6BF7B6DCD875DBB46731A14DDE3681DE4F9A90662154607EEF50E181EDB19AD08648678FC853FBF7053F237E3BD544BF6D0D1C6A87CAEEE3E00D39484BF2BA69F83300582C879F547B7B67DD6DBAE0D7D16FBC4BCC21E0DB001DC4C0395FEAFA89C1B9B36A5CD80E5F2DD");
}
else if (key_size == 1024 && hash_algo == HashAlgo::SHA512)
{
tests[0].salt = tc::cli::FormatUtil::hexStringToBytes("1990E6A72D59A4A855B9DBA69590B6225624C1353ED09AB5669346A0F3E51F760F1FEAE0A291912C7D83A3410375CE4AF7BEEBB6C7C0EFB4CEE507317B68");
tests[0].message_digest = tc::cli::FormatUtil::hexStringToBytes("1F5E7340F40C9B424E8112451133D56DC4EF2221083C96CDC4669BD4AE328659D4872AB16B4720EAEE67637EED14A637664AA92831DC0DE43AC659BB738FBD99");
tests[0].signature = tc::cli::FormatUtil::hexStringToBytes("3C36282DDA02032D6BFD6856F950EAF0ECEA968A78CAB93E8A0DA0ED6CEF2A63EF2FB4A32CB100FD5FA4B9BEC648CE518DD6F65562E0C356C1D0E5F4B179032DD775DD18F0D598232B33E96B6E59E1453F3345EB3C9228C0CBFBD56FE4B6317C46ABF00976EE212257A39483373D5466BE9594FFD3FA8AA4421ACEA7D35CCDB2");
tests[1].salt = tc::cli::FormatUtil::hexStringToBytes("7C69FE4F0010847B11BD0B309A13DD8708F731B36B5913A2982055E89A48D58BBB42645D4CEB47B9D27BA0B138D0F5ED648EF11608C33AA1F3511C4D366A");
tests[1].message_digest = tc::cli::FormatUtil::hexStringToBytes("709BA2DD10CFD1ED5D3B2833B6B42664ED9684DFA239520D842598A75BED777BB7D5D71E7D7A5E5658C925AB96C8ED99CFAE1E46A33C4736655CB3BC3EB23B6B");
tests[1].signature = tc::cli::FormatUtil::hexStringToBytes("9E2573124931E89DD9F4CCF040B46BFDAA397C9C7C7273B1E74AF978E48EC28FB5639257416A790AA07090B63887F4934A4ED646754576784A4C11EEBD9C361CDC960FB1C8C026E1C18367357ECEA2C29319CCF8B93F0B13E5AC7BE26B038031CCFF7C1938BF56D59C6FA0D7B59FA14C421BECB04146EDD9B2EC5C003137B5FF");
}
else if (key_size == 2048 && hash_algo == HashAlgo::SHA1)
{
tests[0].salt = tc::cli::FormatUtil::hexStringToBytes("01B1B2F300B75AEB4163217DACB60F64E34C4B66");
tests[0].message_digest = tc::cli::FormatUtil::hexStringToBytes("0B54234C25D22747C81C7365B04996AB3D96EBEF");
tests[0].signature = tc::cli::FormatUtil::hexStringToBytes("355C0CC734D72EEC991BE4ED7B01756180EAA2A99BAEE6658EFFA644429D2707723B5C01119751C5C6B23A42BB344D7FA14F385816C5C17369C002859BAAC2A5775D45E005F613BBFFDD0FAD4018DBCACE2811B5BAAFC5F99A4C4279FBAC661661488F0B78C2A70C1235D75DC276838561136EFE2D22C0277D718AC6F12EF7C7B79658B5EB591F5B0BDC8C4FB27A6824C50EA4FF19E570B09BB2B56865421653C678DEC6E9215B7FD3C0D8EF95745C34DA1CFFE388B56D6CDE27D106DD12C8746DD2230B37FA0C31782C37DB4ABE84132E2AE3D0F76D3EEA34AC5E160C4F61D280B73989929FDEEA78FB1809FD9EBA4B5AEF48B0F15DDF06BB0F49EF68863688");
tests[1].salt = tc::cli::FormatUtil::hexStringToBytes("77133B22F3404DF71350374D6FBEF778FDCF8B7F");
tests[1].message_digest = tc::cli::FormatUtil::hexStringToBytes("62737496A3A99DB6808296117E3CE796201C84B7");
tests[1].signature = tc::cli::FormatUtil::hexStringToBytes("09D88EEF86C014F0B0E200FC6C018FA02E5DD0576DEFF828617A1F97B5B7CAA39A8B4F3E8248B13FD3FDC4638629585040E1F54D49690092FC36A857FE64DD4093CFF44F658A6183AAEFAE6D4442DD5199AF15DB791DE3B33BE7C3C3D04ECEAF7F8A085885C1EB71AB05D268354A8E9228128048B3B33A49C8BA5704DDC2CCEFB47EC553990B3978C1D06FFD741153341739E2CC39633AE9883236E5D2AAD0D3A84D345C80A2A474700A4E7831EDEBC50C055FD97698C3F489A0D679173D96C57BDC6B43B21160759DB80CA90EEE0752FD1B756796FB32E03B0CFB81B9E8014BBBA64E4A6BEB1592D734962587C7315499BB8148EE73D48C8015E52A7FFB7DA1");
}
else if (key_size == 2048 && hash_algo == HashAlgo::SHA256)
{
tests[0].salt = tc::cli::FormatUtil::hexStringToBytes("F8975F369ACC0AA1DBFC213BADBBE48DC706872349A69D361F13602868314443");
tests[0].message_digest = tc::cli::FormatUtil::hexStringToBytes("A2386D7FF4EF41BAD87D62CA8BAA1563AAFDF8013ED6B3668BFC1E7616D86CAC");
tests[0].signature = tc::cli::FormatUtil::hexStringToBytes("355C0CC734D72EEC991BE4ED7B01756180EAA2A99BAEE6658EFFA644429D2707723B5C01119751C5C6B23A42BB344D7FA14F385816C5C17369C002859BAAC2A5775D45E005F613BBFFDD0FAD4018DBCACE2811B5BAAFC5F99A4C4279FBAC661661488F0B78C2A70C1235D75DC276838561136EFE2D22C0277D718AC6F12EF7C7B79658B5EB591F5B0BDC8C4FB27A6824C50EA4FF19E570B09BB2B56865421653C678DEC6E9215B7FD3C0D8EF95745C34DA1CFFE388B56D6CDE27D106DD12C8746DD2230B37FA0C31782C37DB4ABE84132E2AE3D0F76D3EEA34AC5E160C4F61D280B73989929FDEEA78FB1809FD9EBA4B5AEF48B0F15DDF06BB0F49EF68863688");
tests[1].salt = tc::cli::FormatUtil::hexStringToBytes("ACF998221C624F853BC3A3FC4EDCF25B4B5B637A18DE521443EAB1D58BBE27E8");
tests[1].message_digest = tc::cli::FormatUtil::hexStringToBytes("0D9E93AE17D944B14BE6F382A64341AFE7B33BE21774654ECF9FB8D3CE036E86");
tests[1].signature = tc::cli::FormatUtil::hexStringToBytes("09D88EEF86C014F0B0E200FC6C018FA02E5DD0576DEFF828617A1F97B5B7CAA39A8B4F3E8248B13FD3FDC4638629585040E1F54D49690092FC36A857FE64DD4093CFF44F658A6183AAEFAE6D4442DD5199AF15DB791DE3B33BE7C3C3D04ECEAF7F8A085885C1EB71AB05D268354A8E9228128048B3B33A49C8BA5704DDC2CCEFB47EC553990B3978C1D06FFD741153341739E2CC39633AE9883236E5D2AAD0D3A84D345C80A2A474700A4E7831EDEBC50C055FD97698C3F489A0D679173D96C57BDC6B43B21160759DB80CA90EEE0752FD1B756796FB32E03B0CFB81B9E8014BBBA64E4A6BEB1592D734962587C7315499BB8148EE73D48C8015E52A7FFB7DA1");
}
else if (key_size == 2048 && hash_algo == HashAlgo::SHA512)
{
tests[0].salt = tc::cli::FormatUtil::hexStringToBytes("EA98D82C923787FDC2CF52A1F4F33921CF6DC0F5740693CAB2EA3A37FA908B377C6FFA7EAA744486836EE6757307260612E2BE53F196D6D35A7300EB4DE63171");
tests[0].message_digest = tc::cli::FormatUtil::hexStringToBytes("1F5E7340F40C9B424E8112451133D56DC4EF2221083C96CDC4669BD4AE328659D4872AB16B4720EAEE67637EED14A637664AA92831DC0DE43AC659BB738FBD99");
tests[0].signature = tc::cli::FormatUtil::hexStringToBytes("C526E0FADBE7F4DB02E45F67914C0E1C121C5EC576AA691E2DB5DE1035A092E079DF434F0F49F2FE8D9D4E0C10EB188DC5F6F555CD122AD9E0C98D2FF5FD7C0B0F6DEB93E1752ED90BFC731ACB41FF5E1274B735FB5A0DB381968B3DEA21BB22055D0D67B78CBFEF1A3ADA77F2B8CA991786CC576CD1880D5824E1C1A15AB4F8FED7F1959A6C707448F776B3E4D9E53090B15241475AF1F16A2D5279982F1C25F2C0B056BEFE8A695C4FDB105FCFC54F5F2F4D4F028DB070468A20276BBA262A6CBE4F20723CA548FB4DA07E3E008B5BF71654E59D4F24C985B5EAAF93FF72A1CDC207457AF88FC1905EB05628E88859CEE615CA01F9275423E634B27F045CB9");
tests[1].salt = tc::cli::FormatUtil::hexStringToBytes("068D7064B137ECEC7F6C3580900B64E857865E3ED20F5DF7CC56189330B18F5EFBC3A713A0BF74264BAC125353A3A0F6AA38EFCE65EE5CF1638A61A1B5565BCB");
tests[1].message_digest = tc::cli::FormatUtil::hexStringToBytes("709BA2DD10CFD1ED5D3B2833B6B42664ED9684DFA239520D842598A75BED777BB7D5D71E7D7A5E5658C925AB96C8ED99CFAE1E46A33C4736655CB3BC3EB23B6B");
tests[1].signature = tc::cli::FormatUtil::hexStringToBytes("07E9A6F65AC5F39CFB3F74FC3A5F95938FDCD0AF55EF501C9592B12551B9DE394B88E18ACC48453D64E9CB3C079332F4AB150D954945AE52652EC221738A333AEEAEB480198DC2473A1113F490E72714BF2F0AE38EB45EEF2D37F005747C7B45962BF803718004D150CA497F472BA497FC79105E61C512FA77F2D54D3085583BEC9406DE5DB94AF05C426CD147FB8EF67020C6B30E06F2B1044B2362958F12933E19E8AD718422E89F0054D1868428B3493966671B951949099F70FF8B11494E385E274B75BD666F7AC64A0BC5D05AC7BF5EDDD5CC635FFC125B92FD07BF20916CB83DC09B71469C2363D80AA4A407BAA4AB38909DFDE9A5D5C12B2EC040DE5F");
}
else if (key_size == 4096 && hash_algo == HashAlgo::SHA1)
{
tests[0].salt = tc::cli::FormatUtil::hexStringToBytes("C139B807BEB43849D4ECFC284C94900AFAB597B4");
tests[0].message_digest = tc::cli::FormatUtil::hexStringToBytes("0B54234C25D22747C81C7365B04996AB3D96EBEF");
tests[0].signature = tc::cli::FormatUtil::hexStringToBytes("294BBB3537C59CD4222FCF7D3DE244F0DABCA547CBEFEFB4C6275439E48A73F48A4BD4DFCB4E176C4448C44C95AA0915488F5C286CF558BA3916E45CBD785F6798A658977418BDD9241D55EE633A95B34A876A60663CCC71ACDA935A0CA97DFB3B3545AC49AF432C26CE9765E0952BE1F9042F97441019572ADA4A17AE45A44ADFF3FD385A762886092A066DBEA60ACBCC86070C261A89FB59D6533E14B8CB2BB7F33E01DF511661066EFAD3FA1FD3DC2C3B79878B18BF863B8CC5423D4A18CF273396190B92E181B8A63B6114C09453AD9D827CF0B142D476120FED5A8705C1FAF7667D794849670832B85AEC87ACD9841E8E7224668081587602287BE31863A93BD151C0D40D949B40CAB8F748D962FE84419C7D1770B3754B313657136251DBAD597E3E6BA61764A3F22372EC6114083081916C7AD2EBC0970CBFC264509BFE3A02A07EE03BFA3CAFB7643937EEA7B247A4F9EAF47DF13BB8DDDD635B26F7AD1339008145DD5C18381813E2108D84707D8A8EA5E8D2A7F7675FB6BC28452A4AF33D4A21F53CC1C08458220026311D8E8D2AFA37D4C4E2981164F84D33B04B99D1F18C060A0C9067F854721F4DA4DB2D6C5AFB7FDA354598071D579AEBCF5F12FE1322FBAEC6CA57556C3490634D4D4BAA7908B573444AC689C21ADD10478D8A09410D2EB1892A0A74D63F617A9185321A06345655AABD0EA04E0BBDA7C579");
tests[1].salt = tc::cli::FormatUtil::hexStringToBytes("34E011F064EF219D0A01EF20BE64FDC2EE945799");
tests[1].message_digest = tc::cli::FormatUtil::hexStringToBytes("62737496A3A99DB6808296117E3CE796201C84B7");
tests[1].signature = tc::cli::FormatUtil::hexStringToBytes("33C06415E53760E9812EABD077C9E50323DDC367E8361D4600030A34402CBAF53F4EAFAB0874A85EA5FE0EE6E0F56B71B87BCB838491AF04DEA64A0FFB2AEE5E49F777C364FB82C3FADEC94A396ADB67E207E6E5F2DBF9792F7036B37FD11095A293EF97BEA35AE8AB6FF5ADF631FCA1A8003BBF65F8F0B1E7756FA12792FDCC1F273C4AD0B36FBD6DFADF91C4C764AA3D9B2D374F646E7380C5919D9F245499CFB8BDE069844B9086D0E97B16E792519FFC41BBE657DC1A4888F1707C2E7A4EDFAA1F7BD0BA13E8164B75D7F180306462457AAD787396FD0DAB3CAD3BAEB974EA856B87D06E7B1B4C977DDC65A95EC483835F2F6BE0413DBDA0CCC78D5ABBE4FBD87CF5E5D7F8D5386C1E6ADCAB0EC277244C117BFC35B37CFFD41F08434A64AB862677351A6A27224D848C397EC83ED0BC6DDC4D5D2AD800311AFA5C2AB5E45AC6E6F2E99EE7538D4125AE389873EB2823AC19DCCEBA45A3D992BD5AC5ED63CAC6434D8B6EA875E7AE73BEAAF8BCD495EC12E6220604CA0617EBAA94AD9B95FAF0FFDF20925F27E928D60BCF0E59D9F5D49EC0FF854E7F7E5C580B572A9021D8EAE6D9ED3FF68D02B7BC357C2E465BCCE4B4391316C19F0050CAB8093ECA12C68365795561CC14F1448FB0AC83A365C75D3E4FA7D1FF4A73DCC5D226593EF899CA6E90C4FE42CA81CD98F7BADCB43927E83B3DF859A8C4E94CB1046A21C762");
}
else if (key_size == 4096 && hash_algo == HashAlgo::SHA256)
{
tests[0].salt = tc::cli::FormatUtil::hexStringToBytes("E01A8BDC3B51D0E4C4A92835AF2AE468D409F73233051F548EDCE0B8590FEEA2");
tests[0].message_digest = tc::cli::FormatUtil::hexStringToBytes("A2386D7FF4EF41BAD87D62CA8BAA1563AAFDF8013ED6B3668BFC1E7616D86CAC");
tests[0].signature = tc::cli::FormatUtil::hexStringToBytes("1E9F68491378B9B4E2F5BC126BC8E0781ACADD18E07F0C96B6592ED069E3F864BE208004FBE3070073192BC3651EE50C67FDB5E2466606938C0A103F7AB973D9104C5F373B37FD9D81090EE248E5ACAAEE051BB672CD58979ABC3138A11E73684F1F3EDBD96DB2B59564B0DA7175A4E222F5F13AFEBFA1013EE6FF1E6A1C19F19350EA1A7AE0CCD34054D4FD62ACD1474B1B8A276AACD60C370F3198E3711CE00DDE58D1B124262CDC198BFCB074EA897EB3B7D78E3C62BBFFEAFEC736C405030C94DA7828BE27EABD72334512DCC50F54B967C0D68BBAAA3AEE805802943493650C18D6CCAA3ECBCC0B34DEBB053BE8DACC6C1B384EF1827384B95A79BDB454C5FF692BA26119267BFB75D830E1BB363C156C15BDF9F878D511CECDE3EFBE6D09F1FADB0346D0997992735548B0F753760C19B20FBB062CA84AFC1E38E629E5ED1782FB1172996EADD2A4E9B6EEDFDB3C54CB292F233312C6AA3D8F3826D0E2236196F33CDB02B49000C473F126CACCAA3E13DC8B0274F58DE2B80DE57C05A43EE7F9EDCCB41D86337479487E5CCC4F1DCB6F9AB3166773E02380329C62CD43DED51FE4D0C7D7F4249FD3B15571DA87F51A76AA06CE716C001EA619AC611265758E7AF6290AC09AEA14F54D9141CA81A833EB925F4DFB2AF07D2E400154E160FBF062315D2B82A345A34AB45E26D36ED46AE5AB23FF74FA6E66CEF6D43B50A6");
tests[1].salt = tc::cli::FormatUtil::hexStringToBytes("C89C80F4960432187ADAE12F706D0AE8AB2E2B61A8C97827451B303245C6A3D6");
tests[1].message_digest = tc::cli::FormatUtil::hexStringToBytes("0D9E93AE17D944B14BE6F382A64341AFE7B33BE21774654ECF9FB8D3CE036E86");
tests[1].signature = tc::cli::FormatUtil::hexStringToBytes("6AE6CE7C125E00AA027BF902A09F1C51D6F7328A24E537BF07781D90DA390A505508D0DA6270F00A088BD5C66FE48CF1B049EE70F53BB683187CBB7FF67CAFBD1A39AB890A6B92E245398529627DF1DFA168644F5368D6D99A7313058402DE06A33CFAB360CB78887B6D80839CFDBAC4832DAB2C2BFD929D362E1535BD27C84EB4777E1D9015AFFA50DFB5A3C96B0D96BB9A09D47AD92F9AD666758344DE984C1E2ACA0B42618EE73F0AA654D466D1481CA41FB91EE211309C51E77F63CE955C3EBDA37D75D762D5F56A433836EEB2425534958E06AD74157F7808B70F626A2E953B547DAC8E8650F06E9D2DEAA5279CB7D7DC7AC3534928DD626AB77CB97F22AC3FF4ACBDE5EC2E60EE346F26B2E598DE5F00FA884B76627CCA24010FC65AD14B2E433099A0005B4B00A350E554E959A4DD4026D9ADDAE7297AF65B852CD1DEA1A9425EB2CEBF09BC60C0EE01E48CAF730E1FFA7FE190528103DABB735D5A0B04C2CDC01DA99512FC6615090D97D0A94A1988D7178430C27D77758DCF8A77BAAA958DE834EB5BC56786DF21304D58812DB187CC4ED8836B92F6F3440D02E949E356508273CF1F91DB3C056E8BA2A78ECED059E03EF8CA2B906504CDA98CE74B2B5AD4E25BA20D8C24B34C521BC10796C9BE840ED1811FB29936F575A33776322536F7EF449B75C363DA6FF6B45B7A471176638766C1F930DBE464027E48712F");
}
else if (key_size == 4096 && hash_algo == HashAlgo::SHA512)
{
tests[0].salt = tc::cli::FormatUtil::hexStringToBytes("6B87C931844386E1EA9DD45F2AF92EC91F2E44A55FFCF80EB0FAF11A41C832FCA87939A0408C0A36A052A7D9ADC1311DB71789EA5F3E8C12F0716ADBB5FD3C67");
tests[0].message_digest = tc::cli::FormatUtil::hexStringToBytes("1F5E7340F40C9B424E8112451133D56DC4EF2221083C96CDC4669BD4AE328659D4872AB16B4720EAEE67637EED14A637664AA92831DC0DE43AC659BB738FBD99");
tests[0].signature = tc::cli::FormatUtil::hexStringToBytes("0CBF1D7BA11072DA92D6D1EB9C9484F848A70F6D3909E98BF323F342033EED440E85963B0298BA7EB003148A1FF92F2698C4EEC0B26445C5A5F1ABA10DC8C1601D9A0C6C935A5E031C8FE1EBBEFE3C81DA36EAEFB85B65033C33E1E2113B3BCB410A96A37F131C0F4E945BBC222900CE628EC2A92BD58B303DE171EAF518AF9C9460183FF1039C00F7D98308DC97272F8711A882920AB1502EA88B92BB905A58CC4059EE9BBB53006BAA0E4B04D51A6CFEE65AF3351EC4E2707CF35C57DC12351FCC95DE736B96CAC0C2DEB4275C2598E62D2A2AAAFFBF68F2CA5D247EEB818FD00BD58883F669F0D8E3877A77AA7391EFD5C69D8CB828CADEC7D60D4C589A882B9646DA32EC58BE2AE9A3C78E5821664903637F8A8837ABC55C874284B54BB3485AEE9094DBCC46822A8D6DF929D2DB01CC225CAC775AFF31DAFF0E64AE65CB57E9C24E89173C32F384553884CB0F46DEEB9233985A0B9E6F9B1B8421C20A5F29EE7AA54EF8AF134D754E98429F7EBE36B56686798964A3E2A258DC05D35097F825A630FE4695EB23CCADBC59A433F6104A7E55565D1A427E8B6E4ADE1780E8888C86EBCCE6EC950EB0BAFE3946423FE5CFF04707F245F51C7DF5C3AFC1542EC93D30D6402AF0F3CE43ECC9F0B338014F0941058AA69DECF9BFE7EA3CE3667AA434EDE1F1FC5596AC7BE326F4F4F37BD106E377093FD20B6A13D27EE50E161B");
tests[1].salt = tc::cli::FormatUtil::hexStringToBytes("0E5B60B7C6EE9DAC18ED464A4268C296C55B787D298FD23337E9D39077AC60266637D5B03338A0B752C631150EA9655AE71EC42779EF2B6119D31EAB19E33DAB");
tests[1].message_digest = tc::cli::FormatUtil::hexStringToBytes("709BA2DD10CFD1ED5D3B2833B6B42664ED9684DFA239520D842598A75BED777BB7D5D71E7D7A5E5658C925AB96C8ED99CFAE1E46A33C4736655CB3BC3EB23B6B");
tests[1].signature = tc::cli::FormatUtil::hexStringToBytes("853EF4AA99E0492D0CFD6F11653FA10164738BAD6A3CE53DA037FACEBFFD79E2350BF5F45729B262D8B5EFA769E0155D7B2AF1A837D84674269055BA69F042F6B2FDA4161D066EBDEDCDF989EE768A91C9653AD11157EAB98C0848BCE5F2052CCBFE5A67CB2621A5070219619BAE3E79333536384700AF1B9462F77904F30465107D0DAE9E40ADE7DE7167F8E29F6B8C8DF04B84781D5855BB22D3BECEDC7DEE545CEBA094028043FBD228F33D2656C4D74630DB2BF124E739AE3630BAF07855E72AF9488CD8036875805F0F6390C6C315D9A4BC65B935C0C172A0B871EAB66373D1293B37B3A95BE334A9C31B93D7F4C12397674BA59088B873973B22428C1ED8720C0488DE41FF072165B34CEE65EC78B39B141A9559395BC0EE42A81FBFADD1EAF6878F83F4BB0CA9B4AC72F900437597B32AD7878BB8921E61F0F3A522513A80BB58142EA2E16C58BC0AFF2DB30DC9475FBDE2D68BE3FD34BD9EAF35691BE40016893E86D34AD2B0423C7BE6116ECB1BB7EBF951F9E18C86626E1C106978F26DC6C8C9D4C97040634E9FEA87E6AC7F3BFB1AB585DE424F5F508BB9A01C27B5AF50768B03A37D430777A17EB34E5EFFB271034A5893213618B1022782F456A4AC006452C8D8C88B295C325C891A07D6242F2790B3E746935DCE19916594C764302A8444A859B8371B4119058BD41040B9A7032FC2B5110218A3AF78822ED1");
}
else
{
// no case for provided key size and hash
return;
}
// copy populated tests to output
for (size_t i = 0; i < tests.size(); i++)
{
test_list.push_back(tests[i]);
}
}