Skip to content

Commit

Permalink
added rnd req in mldsa model (#97)
Browse files Browse the repository at this point in the history
* added rnd req in mldsa model

* MICROSOFT AUTOMATED PIPELINE: Stamp 'user/dev/ekarabulut/sign_rnd_check' with updated timestamp and hash after successful run
  • Loading branch information
ekarabu authored Feb 14, 2025
1 parent d3e1773 commit b3bdbde
Show file tree
Hide file tree
Showing 6 changed files with 28 additions and 3 deletions.
2 changes: 1 addition & 1 deletion .github/workflow_metadata/pr_hash
Original file line number Diff line number Diff line change
@@ -1 +1 @@
4a4d97961a85ac61560682a39d78511b3f8e91fc2a3afcac0be73d8741793cd800a1c9bb80de43e2bcfb2402c2f70aa4
4db3fd3b22ece99cf58f6772a5f648a0a2148934194873fdcc376e07b0872c4402a3f1cff4b9ae944c177fae067563ff
2 changes: 1 addition & 1 deletion .github/workflow_metadata/pr_timestamp
Original file line number Diff line number Diff line change
@@ -1 +1 @@
1739497023
1739554821

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
01
00002BB2
75ACDE0EACE30FA91B1B8646F77B0847101EC7A8765E1B73282EB654713B9E827FCBB36446C5F499CFDCA3C8589819E5AD3FF6376EE4B665739A594B0C8D7BA1D47C8D3D19625D3976481E7A64ACF51E98FB3C49B88F5AD5E69B9EF8775CAD289A14ACE4E97D576E2422ED00F2B4B2AA78EAE180662E4A951D95DA21A7286A7F1FF7926129C6A89ACB458883A3523883C65FBE12B7F431489E0C74F4D2758A6FE00B0468FD4940EF1AAD952F3DC87AE36F16807056A9F510B8B4B11704C08E70441A0BC7F28D50F3EE62E91C0AD401AD94AE4482725B5CBF02509CA70CDA486679733B4ED231E627F295DBBFBA9C83C3C352382EE8CA94CB7B42F7E04A8B2A73B185A921DB09FE497741BB3F0BB94CC0F4D597B54CDDD3DADEE844244F452CD7B01E5D95F54499A194A155976D7D07B627BB8B5EEE6D62B80C4D1276A4F9EAF072AA9BA7E440EA905F3DFD32E49E64323675A8E7725322132C3360C64E42D212A8290ABC49189D6E6068E9F828227A9FDC36520ECE8812C1D2661414960A19A8D79CF4317EB86A312A3722219BC08BA21F62B267505B61484D396527227A74609A7899B9AA6581035CBBDF0A66BDAE0E5845EAAB22ADE5327D6E7C18EFAC40B60A3097BF7EA1DD4E2AF0382AD9007CD78CE298CB63094D8E26D2A23B60671864C4A53962F150C4F7A1BC177ED8C4877D5C6E9016E6BCB7147B8F70C64ECC1D5DFFD32195432C179E4FB8A315FE298E833B9831146EA24C6995F4A927F3012E975A3EC47C7B8B5F7E2BD31000399EDE270F3B5D905D0F38F8A9019B1EC76BE1102777F6AA0BF7120E909ADCB516D262A3AB0D24362DEC270D0287380D4C51090146370249A5314189D1C6D559236EC5122C98C5A47A35EB6B01DDD7FCC23081A6BE63CD204BCC68E8AF5D023E2AFCE8B9271C66D435FF2B392868DCE38D489ABCD0747059B4DC52A79452895A2D611577C8E623D6251A6284DC877D2A14276D6714445F3ECF119958FF02729FCB43BC10E2B48B89BA0B34886F09C825497BAB2777AF8D103723172882B156B0C0065912F8B663D34ACF48697B05D8755C8F9D439532F5B7EC42152D957FE1A22422A4FB2F55AD0163FA376AF9116575F0BCEA0333C494EF8532FC9BB2D4DE8884C4EF4259B031D6EB0A0BE9EF34F92FC97B05A47F3E0F2C6B78780F5C01E45A5F8A7D03D3CBC1821ED7D046EAD0FF0CEC355D4122787B579F13724A7656D5B7C8838FFB3BC82CEC226FE31695C7891B1D7F15A83D8786B05E36DC30E9B84D424666AB3B4E8994826AF35DC458A6A8A22346B48DACBFA0643C53093AB8773863A60E4D79C87B99CEFC1945B8AF2DF06C468578C9DDEF4E8894C1A816598B0FDB05652EFA71FA1E8CDF5F3B914E02C213EF005EE5FE5054A51531AEFBEF1CD167FEDAC65E5EAB38910C6AED659A460C269FCE345E95083AA83AD40EF94873F623C65753FE21FB52F299B262EF3D9F6035272297819846A24690E05399C122E838C406DCBAF7553BDB6CCA92050A385C0A841DCFF5574CD2950B70D74E3DCD4C9E945518AC1B3ABE7C81E7ED1ACB324660452FF2FF7DAD9A864E24C76457648AAA355872F58F6EC7D73624B783C97C8B82B05AFACF4E67599E1F2973666CACC5282832D4E76718B7AAD14E0CAFD65BE9DF341B39A2FB0E14D1542A4360D49E50E129377245430DDF207AC3FC85E0D66D582CCE97FE80941EDB58BD3CDEE82056D5F718220D2436D5AE7A08747B67CD71CFC035D0298BBE146E592AFAC00D2B23A4ED70C2A83061A0C6E3FE64CB9412FEAA4429612EB6A01A48EA457A69BB23AB5FC48F91DD27688D34DB250B94C40E7B6E42F91AFFB508A2CA90C5F9F0D32F516569C43F3F0A7788B4F27512EDC9C02F45759BCD9EF87B339551F1AEE172EFA5D4CAA82A184D5ED5F2453158E731BDB53282B23E0CE950B8E8C7747BC223F1E1FC375F92F135EE7347EC0D09789C3FC9DBCE744B249E5677A81D1B10886A20C8D8B958E9C19DF8B0A7BDB62DEAF45B2D3BF737B4036CF1BA77655C9D20BA3021920BF9F21B944A58A70A766F2CE3BD2E6858CEEFC4FB6102F96DC66A62A25927DF37B400F0F00CB73FDEA6A5E0DC870B249587A2E82F84EAA3C5A6F2E7334DCEE9810B253CEEEE2220C27BEBA6B5ECFB5D4654BD6C9188AFFB17477A06FF01B0E9A374C47BD06A65E972144C45C919DA641D7847DC471657ABB5FD8E0302908DE3B80DAF4CFF1B3B2A88B67311F15086ACBD7EEABF99C74254B16B9F9ABEF6CEA0645CE04597218F69A99BE27CC0163365A43B50A9EA64CBE76E99164BFB6AC5A2398C69D7A4A0A4A813C05B38FE6C45C1279750537955AE58260DD7D8744D77CA8FF99A4AFDB1940217C7A81E531EF1D1A8DD46D1DBC590B746886EFDAE7215FCBFA9C4CED438A70A1B79B81DE53F81537EC508078C9BE61E0A45D8A10B3852ADD9D9BEF2014E305B2FF6042A186E46794C91CDAE5093F250B49EAD166E9A0EA6D81721622BEA5EF95E7A9A85E874B79D5881C1E97A12F29132AEB502B45964AE757F98D346AF2904731D4D1786ED0CD09DAF80AE5C7C5B40AB76FA6BA4DE0EA0D14C573F3DCF78C8C9E9F6165557306314229F2A68057E22466D500BEC727AA3449A346FC76F2D33533F7AFB516BFE79F17344266E9C46140EF6100C9D5B25102ACBBE0FD425DBB9246F6C577C04071943913F0849496C91D8121863C95003E06C47F1C9ADA03A5E4BD903C99C673BBF6DE70CD366976071C7C75D9A14673C6F9F5BD0585FA841DCB91F0005BB697D6D8D1C974958BA60E7003C2CC36792ECC77C43C16ECEF41B0BC2F453347668FCCE066E6383DC06AEC7143C183CDF014B3B63B018AC34A3DB2FC9A9F9335E272B6FB5C9585B0C557C2E41AC6A89B87FC9D71D9B4497066AE22D272A765D2C26540B9F1B443442F01DBA260E7E0CA0534FC6BF09DCCE167632A53A23A4386AC2AF3D1E72B2452EEA3B57FC4EC36DB92BC2D3931B7A73D3A3AB9938B84FD7C25B94D375F6ED7A03E80AC93A17A9C98A5CBCDB9FDBE9417B8B39663EF91751374FF9150B55574FB47721DF5F38886565ACAE3AE6BDB5155421420705C8821BF48329F06A444914D5B9D07DB84FD31AC0258FB2D8B927AEDCC6040F5E6C1A58A0E1E70598F087C44CF9B923DB99C3275A8BD9895BAF228F565C4FC6304284384116E25A898FC00D29F1F0ACFDEA389806F132699F3DAFA2257EB82275A8792C0B041256ED66E026DDBEAE871512E8D94B8864E31F320E5A5B66F575C25678E716A5EA41D30E48DD89AAC2D1C8287F45AC6FE0CE597BFE90FE1E5F88C41FBD136A5A8F48C790D90363565D7294AE26CAA6FB101D57EBFB056F2DABD385F11474567C53ADBD2CA053743CAF1192FE7FD3C2B2648313BD02B1A45CDE9D07F67B62D74268939DB5E2A2C74E8E8579CD794349B6C7AF1B02F0896CD9F46CF906DC618CB191A88FE61C81B82DE97C0D30159CACC198DA942FB3E4550DC181BAF2F97F7CF065F63D1F89D3A9608CDDDAB0D68607B7FEFE9E948691C6CD32EA8E58EDF7423F97B0FBF849E9C9C4F78C8C0DA2AC2B7C569871D5FFDD1EB9FCC7359C4113D29CBC9C9E66644AF717EB98833972A166698521E4089F754DE8015FC1980C519A63077EFDD318B4BAD7DDD287B29288538141555896ACE2C4BA7903564DFDD6B5D8403936314B33C0C24BDA074C4C6D2A47D37C1CDFEB6215398B7A4BC6571BD7094A3288E006FE1DD3DC4402572EB5F4331344BCE77E91457AB37FD536DA521A8255E81EA7217C83555A6911905545629910ED8FFDEBDA8FA3E79BBDF5CF9A7FAB879DC4688390E0FC77CE538C8384A58E9FF84B2D3CA1416427561679AE0BA1937C782C4E03D25EC9722EDD851431CA66A22F2C852A0BFE370ED876AE3975EC1091D4159B45CCDAA1E86D7CF686D8E3CBAA07A7498AA23E7C5EEEC28CE96B179E53DF9283871FA9A93E8C4EE7C358B99F7C1295EDA5662FF64C2C7FEF4511CAF185EB74EC032ADF869798685C8A7B82161996936ED5A4FF86E3EE141A72C3DCA9C8E172B5DB2773F68D43C91FCC63294CC52D2FE18A735FA0496FB0B858C44AEFF8B30C24B5AE0F921D11570F258B894F02BE899FFC1B7CD069AE866FDCCE76815E6BB5C23A71EFA67309F67A65BA8E14F096CA3B77540F7168E870F30503826EC773931BAD42A0F92CCD0B1ABDEB9CA1C8AAD1DD472018EC1642D3657FF972B74FB06E00DFF8E4B3E5489932C05D765EA9482931A7B8537A08F06496A902A15C1E8DA3E4F8744AB4E5B005CF6E925AE28F7AEDF572C105DA05FFDC0B0AF37665969DF55D15935603C78B933001EE82471E768DE800E476794CDCE0019DC18428D1FDD4B3E65834DC8711652CBD715AC79C61056FD3190E94FE1B4F647B8E29F1493C6D5D44D7BC1075F2AAA53993DF78E2538ECF4F8E41D14A226411C728B40BE5F4F8F5FDDB7549DF6FB97C47CCB17BD334C8146834B71CA2C29C806C1D6B7D9F7B4EF06D0870E72C12C495E38A70F1ABEB293B8D2A535C5FA0557B5F6937DE21081A860A56145A4AC976348C1CF566F51E2550730E5B6138DF0CC736D43AFDA5369A566609B87766B3F692A36D44CE5025ED7AF54F969244C63B405BA8F41BEE5E4AEEA87B5883CC97751E529C231E69A0C4926E0D341DA2908A6D70972E30A83E485BFA1AD5D4B26C1EA32E0655471E0F01BAA894221ACD2998D519DBE9CFB7E66EEAE3B01D77711786F19C575846105C6729AC0E574C88EAF973BE13C138D544EF0564D1A1DBC618D62A458C1DF196CBE60050CE36EB870999DF892E046BC32FE1544164CA73A0CED91A0FB72690AF1DD33D6B9B1605E22EA220F731D3541BD7501BE8F05E284BF0F2C7F897EC357FA7A56D16F171FFCC5B22712269AE528592505CF31DF518514B22CB3EB2281F691E456DB6E6818D0700F2CDAD48691C0F4A589F3944E0CA6A2CABA0EB85A12341C621F83D374499E59B48D596A6D2947D80869C80DDC1CBFB40A7E50D2743D10245BA93EBD650279BCAD1C58F0C86D40AC529E6BEADF2C9AE2148E01136803A2506EA2798CC8AB80CF1B06ED868D7CFC5DBE37983871D7D63194586FAF135755C082EC872B3DF18E5B8BDF2401A2D982F465CCD75BA7757C3508937C609E85EEFF6F73984AB8500E743FF0AAD50403F7FDD5C2030AB9CD3EAC3867D371C1633A5B3DDD4E9D8E0642B8188DD8E53738E82D62B7480E13A014237919F7C2FD4F8814AE06831B6EEB23E29A83CFCD89228855BDD6631DE32E04AA364A41A38D4B29DFEB6318025EAB157140CDB8738F803601172B4ECA29399EDAD0DC50D2B27305A88200876473760C30C10E508910F8788FD19B4131D44EBD0D2B85C5F65D971DA6096CA910F04169585FF59AF773A9DCD0B3934263F14ED43A67ACD129309329633450324CB03A40D12D52F6D1464FF217CC9BBA6FBBE4A7B436BA2B77032F05DD76FE9F2B8733C00EBC71427D35CF3E1F72ED8A9C1CBF063A0E179DE421B9C404DFA1EE957CEBADCA70F1E232C71CC3EDA8598AE898F7FF6490BECCAF228B5AFAAA74BDA552CE2A5CD3A1C260327AE38FBE870EB11FF424A78A99002DD58C2C32817A4C1D9032C6B9AD4695D0C0CC3DAE745600F969304F843DB1543A89C0D863F92C41B7D696BC7EC75682B392E9276565B43A8C26BCFE5DB86FC1B6A36BA33956416E0C20C1857DFD2217D0C5D16B740AFF8C0816083B12C922CF60DF3C14C0D5F8F68C266503D23E4058ADE32A8D732568453DD0AC07522D1E89D8B55B0EADD5DAAD7A6D194E1D4C47E1D3182FD0FF89B79E5A6BDF8F0F0B3CDD8335A223CDAE031313DE1C53447AEB24D5F0ED150E5BD2B866AAA65C648A7886F6F08BB45DFCC6AC8C67CF76C88FBCE394FCA2E8F847AAC013A97ED72EB81FF4852C52672B887A684717078C12FE04EB7A2DF707FDB53D9C63692B0441152441CD68DE5B8ACE446D8BAF90AC7B3890A05D4979FF78AEFB91A1C8443B2E682B05A21E95DD8561680387A2A14FE826BDF2C4D149F023744C47E72AFECFDF3390821E1D79119C50E6BFDC1598DC7241354AA94308BA77CDD31E988D1ACEC5BE7047174CB5C550C251CCC147EE3DD032A4D1F228FD43BD3BE17A1364CDB1FBBFFB1BCD64EF94450F8A4E4FE9FFC1080360FAD3C88EFF26080541079D393A53EC1C689128F8162D0AD49FB7E8CAF03998079D0010323D5371F42F3B9C01AE7FF883293C1A125D06DFF7B7117F26FDB7EEBC51D4C2AFC4801858E093227471079CB36E582A8A4B8F7CFBA4811E59BF9400846A7261F4E3EB46AA852C6BE6D4A3DE1F5CF06E10F0D46290659B1EF0DC974309A7D403795D703DA7CC69387D11BB26EC647BDF675479EF6A95771CA51789987CBA5CABB3F69E5160A95072A335D95A1072C368B95BCCEF5FAFB008BB1D013143F4292A2BD22E2FA33727E899CC1092D556270838498CFEE6C909BC0D1D7000000000000000000000000000000000000000000000000050F131A1D232D33
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
// #define MLEN 64
#define MLEN 65536
#define M_PRIME 1
// #define RND_SIGN 1

#ifndef PREHASH
#define PREHASH 0
Expand All @@ -35,8 +36,10 @@ void sizeTToByteArray(size_t value, uint8_t* array);
size_t byteArrayToSizeT(uint8_t* array);
void create_message_prime(uint8_t *PHM, uint8_t *M_prime);

#ifndef RND_SIGN
const uint8_t rnd[32] = {0};
#endif

const uint8_t rnd[32] = {0};

void create_message_prime(uint8_t *PHM, uint8_t *M_prime) {
#if PREHASH == 1
Expand Down Expand Up @@ -158,6 +161,10 @@ int main(int argc, char *argv[]) {

uint8_t pk[CRYPTO_PUBLICKEYBYTES];
uint8_t sk[CRYPTO_SECRETKEYBYTES];
#ifdef RND_SIGN
uint8_t rnd[SEEDBYTES];
#endif

uint8_t external_seed[SEEDBYTES];
uint8_t m[MLEN + CRYPTO_BYTES] = {0};
uint8_t m2[MLEN + CRYPTO_BYTES];
Expand Down Expand Up @@ -224,8 +231,18 @@ int main(int argc, char *argv[]) {
mlen = byteArrayToSizeT(mlen_array);
printf("message lenght is %04X\n", (unsigned int)mlen);
readFile(input_file, m, mlen);

char m_hex[2 * MLEN + 1];
byteArrayToHexString(m, mlen, m_hex);
printf("m_hex is %s\n", m_hex);
#endif
readFile(input_file, sk, CRYPTO_SECRETKEYBYTES);
#ifdef RND_SIGN
readFile(input_file, rnd, SEEDBYTES);
char rnd_hex[2 * SEEDBYTES + 1];
byteArrayToHexString(rnd, SEEDBYTES, rnd_hex);
printf("rnd_hex is %s\n", rnd_hex);
#endif

crypto_sign(sm, &smlen, m, rnd, mlen, sk);

Expand Down
Binary file not shown.

0 comments on commit b3bdbde

Please sign in to comment.