]> git.ipfire.org Git - thirdparty/nettle.git/commitdiff
Fix slh-dsa-sha2-128s bugs.
authorNiels Möller <nisse@lysator.liu.se>
Sat, 5 Jul 2025 20:16:02 +0000 (22:16 +0200)
committerNiels Möller <nisse@lysator.liu.se>
Sat, 5 Jul 2025 20:16:02 +0000 (22:16 +0200)
slh-dsa-sha2-128s.c
slh-sha256.c
testsuite/Makefile.in
testsuite/slh-dsa-sha2-128s-tc162.msg [new file with mode: 0644]
testsuite/slh-dsa-sha2-128s-tc162.sig [new file with mode: 0644]
testsuite/slh-dsa-test.c

index 25db823cc0c1a08a1807457ed3f16540e2d4e7fe..bdfe8c1b6edced37187ffb296d13d27f306235ab 100644 (file)
@@ -47,7 +47,7 @@ slh_dsa_sha2_128s_root (const uint8_t *public_seed, const uint8_t *private_seed,
                        uint8_t *root)
 {
   uint8_t scratch[(XMSS_H + 1)*_SLH_DSA_128_SIZE];
-  _xmss_gen (&_slh_hash_shake, public_seed, private_seed,
+  _xmss_gen (&_slh_hash_sha256, public_seed, private_seed,
             &_slh_dsa_128s_params.xmss, scratch, root);
 }
 
@@ -71,7 +71,7 @@ slh_dsa_sha2_128s_sign (const uint8_t *pub, const uint8_t *priv,
                         pub, priv + _SLH_DSA_128_SIZE, length, msg,
                         signature, sizeof (digest), digest);
   _slh_dsa_sign (&_slh_dsa_128s_params, &_slh_hash_sha256,
-                pub, priv, digest, signature);
+                pub, priv, digest, signature + _SLH_DSA_128_SIZE);
 }
 
 int
@@ -83,5 +83,5 @@ slh_dsa_sha2_128s_verify (const uint8_t *pub,
   _slh_dsa_pure_digest (&_slh_hash_sha256,
                        pub, length, msg, signature, sizeof (digest), digest);
   return _slh_dsa_verify (&_slh_dsa_128s_params, &_slh_hash_sha256,
-                         pub, digest, signature);
+                         pub, digest, signature + _SLH_DSA_128_SIZE);
 }
index cc6da355f3cd64c20f63d3decf7cc28011265fc2..6c96e8e4e1c5776d6d0e74ee2d3ec620cf1dc7d0 100644 (file)
@@ -146,6 +146,8 @@ slh_sha256_msg_digest (const uint8_t *randomizer, const uint8_t *pub,
   for (i = 0; digest_size > 0; i++)
     {
       uint32_t i_be = bswap32_if_le (i);
+      sha256_update (&ctx, _SLH_DSA_128_SIZE, randomizer);
+      sha256_update (&ctx, _SLH_DSA_128_SIZE, pub);
       sha256_update (&ctx, sizeof (inner), inner);
       sha256_update (&ctx, sizeof (i_be), (const uint8_t *) &i_be);
       if (digest_size < SHA256_DIGEST_SIZE)
index 3914ec4baa653b9753f6ac9e7d73e95d9fa08a6d..076ac6a93b49e44cdff27f0c4169ad3148ac077c 100644 (file)
@@ -97,7 +97,8 @@ DISTFILES = $(SOURCES) $(CXX_SOURCES) Makefile.in \
            $(TS_SH) $(TS_SC_NETTLE) $(TS_SC_HOGWEED) sc-valgrind.sh testutils.h sha3.awk \
            gold-bug.txt slh-dsa-shake-128s.ref slh-dsa-shake-128f.ref \
            slh-dsa-shake-128f-tc64.msg slh-dsa-shake-128f-tc64.sig \
-           slh-dsa-shake-128s-tc215.msg slh-dsa-shake-128s-tc215.sig
+           slh-dsa-shake-128s-tc215.msg slh-dsa-shake-128s-tc215.sig \
+           slh-dsa-sha2-128s-tc162.msg slh-dsa-sha2-128s-tc162.sig
 
 all: $(EXTRA_TARGETS)
 
diff --git a/testsuite/slh-dsa-sha2-128s-tc162.msg b/testsuite/slh-dsa-sha2-128s-tc162.msg
new file mode 100644 (file)
index 0000000..d1ae81c
--- /dev/null
@@ -0,0 +1,180 @@
+C0666252089B9E46 9F0EE398B8C1BD89 AEB63EBCB794BC68 DE8738A93804DF48
+E8CF6CF936ABE1DD DB02178F0064F8E0 6EA827A79E6EE02C 5F98FDEA797948B7
+9EE4FDB1A12C31D5 5EDD2B98C11C01DC 71B12381BC7D2CE6 800D2667813FBA07
+9AD9AB01406A9192 2AE324CB54603A86 007F2A3481E3904A E53D1C33BF5BB982
+A880F8FBA2015B9C E6A5644CC712239C 41E5C33AC2638893 D44E039C0677388F
+2FECDD78FD7B6BC4 B9EC9709766598E8 D923ABF7EBE86F85 F9F6760EC514897E
+AEDBB160FBFDBFEC DDAE2331E981894B 5DC9B08FF5E66AE1 4CD876BD674973DC
+1E808AFFB0F5B18A B3A1DE55CABB5E6F B3DE5739F1A7FF39 DA6256AC88728DBB
+04EDED47F13C2AB4 02A237F5204543A2 85FE2FF50477C90C C87C3CDAAAB32CEA
+96FE9A0E5EE36EE2 D35CB0BBB4C7B516 3D0060B45D23BA9F FB4C2A5F1FFE10B2
+5DECBCD65C80A3E6 B38D18BE16C558F3 DB5BD9BA6689D652 D4F68F02C92170EC
+1AC7800DBA917216 BBC73E34768F958A 4EF4818FEA2B7ADD F97768CE965EADF2
+C18F4DAC50A7E75D EBC3E6E067D0C93D C526607614327C68 74D1B4A2EE5DDAA1
+A8A60440CC5BB0AF 6B95C16794EEAFAD 19562C71005599C6 D01A08015652F2AC
+2B7ACE177EE393F1 9760CCADF84C827C D20BF4E10A051B76 BD82235F4D470F37
+42BAB4166A81B90D 3837761CCC5749F3 7A554966893567DF 90399837F0CC290D
+7C98044140FCD11B 717E1671E4ACB056 BA142C76558CCF47 FCF4133C9D2A8C4F
+A85BC87CAD0308A6 CB9EF3597C63D3A4 7535627D1BD16945 14B14548A29DBA64
+D893D5B851258C1C 914748BFD2E4F941 3CB6D9578F64E27E 1419A1392099ED14
+5DC53D75A5105A4F 8DF1E2FD507D5FB6 EB65E28FB2182A15 097AC8AB74190D73
+45983C329AE4A71E 468B6FB97AECF8DD C516532E0D32AC9A F7D75A4C2FA0DBFD
+AB5CEA485B24CC3F 93F0C25EB321ED64 C7F84B4F16B8D02F E1985666243B0F08
+EA22DB6850BFD510 666AE6DE618E324E 3E7F883EA8C62086 C53B08303532A97A
+CE24EDE6702BE34F 36F416363F956AE9 C88C98CEB6DD2CD7 094B94340F0C057C
+A12673CC77FBDBD6 4D3E1CD59E29D259 6F173D3AAE4AA142 F064E14B02318E52
+C9B45F11EED90105 C7471857201D3CEB 9796659D5FCE3001 3762A67901A21E66
+963CF2DA1469F0D4 B59C09DF4BD8A596 DEE3EE2097248FBC 8F747ADEAEB7A2D1
+266430C5B41ACE85 B7FCC2EE8BBF75B2 415530A37444CBC6 01A7F5E2EEA8D178
+8A959FC18AE6EC0E 87626562EB906485 566886802F2C66C5 25BBACA02955E71D
+5FAD7FEF45CB1BC8 D560D0DA0AF181AE 471F38D5C5312609 85E48CA6AFC16F57
+3D70536C3EACA58E 3E4CB15636EBAAB2 615B6299AD248EB3 1ABE9BEA5A5A1587
+B707C6B4A4E209AA B9E5FA54E441C720 CEE700C549265E03 25F84F48565E7439
+A19697FE0C789A61 21ABC00B28B4AB6A 06F248CE93B61D4E 05D32D3E442B557A
+F1220890ABCE1316 B6937B677564D753 369373ACD8655CA9 2643CD208F50F49C
+1236700007E1FE7A 9E2134EF604492D3 F3BC8F39C768B061 220F71AA49B138EA
+83DCAB0837CB0FC5 CD3B1589C67FB998 ED16D2C73B7879BD 3EA7CB16A7CBB6B3
+AAFB6F1ADC80EAC5 84CAB14126EF09EE 261975FF65E2E5F2 F68788219193907E
+7C3B78CF6DE0B163 1637A9216A6F45C7 C95DAA374A33EF22 CBDCFA8EE400FD2D
+EC1CB06CB6D24BD1 51BF335404B0CFF1 156C228EC17C9A2D A82EA2B9B203234A
+8CAED239605B34EB EB6CB4E46097516D 95AC91074B8ADBBE 5511C7EABE373D05
+A494EC561E659EA7 746D199D3AF03F6F 1960F0EF08C8DE78 04F09EFE02A85905
+09EFD59F076BCE86 9C99CF2903E0AFF4 10CA93173C47F579 34F3C1ECEB3A4144
+961C7DE9E54F3AAD 782D36FD42126CC5 DD8A3943EDF02187 D9BAEF411846B3D3
+97123B6FA68C7F4A 0E80085DCECE3323 35D9339F0ED856D2 8B23766499482D80
+8A05CC7535A29F10 2A481C43C2ADAA4F 1E898A46C73ED864 887112459CA9922A
+C3CA0A791E52ACC0 20FADEE73DDE439E 69130D2B73F14B95 7EEAC8E263C00B08
+2F5921054B14622C B5FE3812D4574E50 537506A8B1C184E5 D0568D807E62BE58
+0DB23E8C2E96146F BBBFEDF8D71BEB0C 6B4644221818BA6D E6509C60841EEBA2
+F60F2DBF63BA9798 981EC16C2F6A366C B6129F6A05B5683B 72A146C52FAC8E7D
+2C1D630E87A21E0B B149D780542D0F2C 16CB0C139B18C059 1EB56181C548E270
+9F159A3F974D37C3 253B82C50F86F0D4 230B0E111C2D92C6 5CFA5CBF65434633
+0FE7074401323824 DC29402DDF1D547A 74C7C50B7CF157A6 599B72CF7214EC66
+6962E36300659BE8 178A0274D4EC62CE CACED451AAAF95F2 4B08AA9D1B50AEDF
+9D141A42EC1E4848 186FBB11E3A2AE03 398D1F21F38A7A83 A4CF8249AEB458D3
+9CE61782F09B5CEA EFC7DC24333AC1CE 51585173234AC5B5 970ADE48083810F5
+94EE4CA570005C8A 01436CB83F118D82 188B81BFA9ECC2E8 8B88834C265D2D5B
+801C36C1BCDA59D3 17FB60E533503D1A 5604A636939111CA AF097FCAD4748661
+289F097D2CE487BF C21550BBB771F10B 5257C0ACBF56FA8A 9963A544991CE868
+B71857245C907217 B1668D8E1BAB2E55 4D19E6BDDC3D7980 C3660D9FFC39254F
+A36C67E5C73E2539 149CEA39D7BEF0A7 02A27DBF6B8CD41F FD1E6381C987B49C
+A0644C0C5230F8CA D85249B05D779F27 E8D626B0D5C5B4F0 78BA16BF09FD8B5D
+4D47B176E5D87E28 5352841F7C4CD913 DE6C7F55E401E451 DA32E5D1594B1D5D
+72C5FD378B7E9367 2B0BB2B9178F235D 8B6F0B265AFD234A 7E3CF4793FAA3306
+0C9CAE9FAA6583EA 92D952084C638ECF AC257B8C5129F921 65A79C0E6826407E
+13FE1DA55ECF8206 FC5D4F541F89F21B 4B5D9F8029470529 410D6F2D6C7F47E2
+2D72923E7EDA2C4C A5A4D456533B2ED4 D5088EB0086EF1A5 3D9C7F8B1B28AAD1
+B4A38F4D5EC724DA 0DA8EF1AED42C6C1 988A561750FC85BC BFF006A3B43AF494
+BEC29919FCC75F2B 20DFAD8E2BB09643 3F34C510BD69934D BD8B14BDF344BABB
+371ACA838605F55E 9B1380E44A4348D4 ADFAE86EF52BAF88 45201FF225FA3FA0
+C3F7D17385443E27 A3BB3B6CF2D86EDC 7D3AB833E57EB208 8E50C7C42D9919D7
+8072BCB81FC60F66 2ECDEDA8343DD90D E54D8B3FD1C01280 AFF13A94AA6CF590
+6370AACBE6532909 798AF4F8FE62FAC8 E4723122297D472B 3DA30B49CF88F122
+C5EB0A2E06BD7F16 70B4BD19EC5023BB 3A091D9B8FBB7C6D 9EB188666999BD36
+A3E148221D34D201 0DC1DDA5EBE6DDC6 0975E38DBF94040E 0E2763D9BF8DD74E
+5AA8FFCA172C301E 97DD3094C98A9501 8A48F341E718DFA3 AB604F4D5369DF3E
+55A72F80E8680FFC B6CBA59F38B06E5D 75B6429ECC2DF589 29E7322629E6E93C
+7C694438E70AB8CD E7BF6EDDA1088BDD 8678343CA65BA799 DF178BA035F6BC25
+A847A7C38EF5D6A9 F2E9FA73C6D5A0B4 88681DE60B928324 2DD22DBDB3AAB6E1
+3334B242BC1346A3 5F40CE297FD46B0D D43E4BECD8F0595B 8A64D7D49935E9C1
+137A4831E275F2D3 55F6D665ED0D8804 A6C6F39D6CCA5C7C 6695B8AFE69B9A36
+A5BC3708D912D4C8 DCB7B6356CC0F142 13BE6F336B8F7D4B 822144B63ECF8A0C
+2B4326DE509CC216 FA5F2CE915DF9DAA 4CF67E71A7C579CC 9A88A49C28CE2708
+A0CB14096B3D3992 3017F8E55B18D327 BD6C8566D72BD83F 4D921C8A2FF32DF2
+448801E8075B17D1 5D569D7F05C65EB7 12D48F55C16C90A2 B41B65820F96E8CD
+96FDABBACFE6FB4D C246D268CD8C5BB2 152C2117C0C4F0F0 42D1CE02A8D91830
+BE6A0C607873E433 EB5019B15CD27383 1E0D5C28C6A638A2 5D242DB41AE79DDC
+F82F3B411079BF71 54E7BEF9674E1470 85E9EA45B5105FF9 AC1CD938E5391BAA
+4981007143F96C09 52113926A0E4BE37 5D13ED3692E65DF9 A17E3A7C8212828D
+0E5FDD2686718373 1F7D2B12090177E6 985C4B67C62A0926 A787E3C66C8B867E
+23422718CA5793A8 7AB4609C0D048084 45A7080891A6D036 77A87D1A1AFE277F
+1938168A86BC8DA1 64DC0E976080CF24 A1FDC5940B9FB73A CCADD458F9F88489
+4CC11CDC2821820A 3B14A748E09DE44C 0076129F87734136 143FAB08C6C8B50C
+25EF3545CDCF9BB3 9C4C084CD5CC7978 B69B21AE04AA7881 06EAACC4D51E5643
+607D155A159AE822 25174900F54720C1 0480271D0C16893B 494BDFB5F2C0CBE6
+4CFD94F58D7DF8DD B92DC48EE5C1CCE6 9F9E85A005A341F5 72A3D70E78A150E9
+A52FC2C22DBF5F89 212CC14D0BFCDE21 5A585742AA71150F BFC2B4ED071A0A7B
+7BD08AC3E3263EF6 E130121AB300B727 90DF29831DCBBA30 F2A5E86CB540BA33
+46744EC2236E0083 DB740E65A108B4A8 2E6A2DC14E51F0CA 93AD32E3A91A6AEF
+95B42267A9E592BE A177D40D964DDE25 899286203050E769 DCF8A8B52CA1FAB0
+81A4B2802D3E3BB5 8A5E1235BACCC23B 635F85A4CAEC9448 344FA5E59A1D1CB3
+AC8FD9588941840F 36510CC5991CB882 DD43D24955A73F5B FD3BC1B14D720697
+23AB52734EA07F35 A8DB4B09489284F5 01F357A1B4405FFF 0228F908772CEA82
+5A54571D12BA7535 E4878AB4A64284F6 4439DE38F460EC7B C9642DC4D563BD32
+90F14BCC89C92FDF 2B4B01A1BC286330 EDCE6C345F7B73A6 21E1E74199A080E6
+2846DD097271C5B1 6D3DB367070E5DB0 A5C765564AE5796D FBBE3E4E7A9C1CDE
+B309AF19D808F752 24B71AD8E96E6560 2F61DEB67F34EFD8 5FB6126AC4E96888
+169CD66C6E8C1183 7DE58A3ABDD9240D 290337E325337B8A 761DA6EA8C7537AF
+F1D8B20D7C8E6367 4403E9FABE65F506 A09FDFFC985960C8 AA52FBD1F4568766
+E0499FB3DFC5AD09 00D03C85FC25DC71 EF9A4113DC17F891 8C91D22997633781
+89E5209BD7E5A1E2 B3BB1490EAEC5A7C 7C93352CD7104C00 E5779980A760C414
+61277256A2590525 C718242818DD0825 12798A5C7899A8FB 3CC2F4DD0A68FBD7
+E42D6EF3126DF606 F0AEC5800C89C2D9 54A4E9A238A942CF 1B85C3985FF5D38C
+9930B2DBB75DCAFB 1BC206BA68C48100 5A54D2DEF5940796 082551DC6912C8F6
+692D448D891D2E27 82DE363F404AF46C 612DAA28EC3CBADE BD3CF9E5844CDA52
+0146055D30E32D05 7DBE1BB073C4D201 0BD6294365CA3C6E 8A7570B723ABE59E
+8EAA04134C00428B 7010F228AB45542D F31D916AEB69FD06 59525D736E9E166F
+E7C7F5C8F2C61F9D 4115AD62D096C0E7 E9DE55391BCD6584 72F6D96B9D83A01E
+72C3BF6C2D3E0C48 56AD3850EE6FFD33 BDFAF70FBC8833A7 332306FE0F764A79
+659BD2CDC97EE2E1 EE12C24E7498A779 F5E8E1E7FD06BA45 9089EA0F1FFA5B19
+FBACE996E9F21B9F E1F41577CDC4301D 3226F96A8F46264F 31BBC0E51DC4D603
+899012A4B6DA9FEE 52712D2356EC0051 6E07D4F6FEE5AA0E 519F7088E16E100F
+186B63CE159E2507 1CF74F395577EFA2 43A1532DD3EE6FED 5F2843DBE1BCE5A2
+AA829B458F44F2C2 35A8E46DD3093795 7B5244C711BB92B3 B1F21308615BAF01
+6423428C0D6AF488 6865E966A120E072 30A53690BD4AC5ED 0EA8AF83CD5B271E
+0E868EB37B673AB1 E30112D7A8A15B61 76E063897ABD87F3 D6BEF3481CD78A7A
+3C9207FD82575394 2EB04E453E9CAC02 F0CC5B57D664B016 83110BCFFB696231
+46507455A34C2DD2 383AED2BD30B04E2 8DEEB17E09D1CBB0 E7AB49AF2A8BCE1B
+DB2250437F3AF1A2 4A6528A11498C1CD C0355AC9843D5397 93F38F94EE783760
+DB01C394D8C518E7 B836BC5D685FA376 3F372761ECA91D9E B729089721A9D806
+C29100B80E0004E8 974673A2DC0AC09C 8AB13DC67FFAF2DC BAD195DDAEAF2E2B
+D8996829FB2E277D FEA65CDE86D7704C 06B64650D4B1A02A BAFCE6367E028FF3
+25F9794D57C653D1 0112771F25ADD8A0 0713DF3DA3532552 E6BFF04EFF299075
+C5818C5F777860E6 F4EAA3FA0386EAAB 4AE55F0E785575B1 58F1C5B7AC47BBA5
+0D7BA50F58238667 22589219047E44AC 779C96BBCE9DF16B 91E482FEDF823E87
+03A87847326247E0 A12DAB6AC00795DB EFA53AEBCEBF4E85 C3D771A0042795CE
+C253209A5A3351B1 88647A1D23B44303 858725745001DA24 43D27B8414D0451B
+4BCF1E030A1B6315 198BEDA9E391583E 5C86704A42E09DE1 572BB5BD486B3C75
+0E5EAE7BF39F89F6 D26854EDE3324FF9 90C4EF51455479F9 4A12A39411357D6E
+78D0DB328AE8034B D7B69FBCD9E7F3FA BFC7F3C6DAB545EA 903964F6EA60AC71
+242ED5D62C0FC083 8AC9068B3F0A33AE 088DF5BEA6A29D4E A708414B6B8D15DE
+41DEC70D96FC88B4 8599687704ECF3D2 85CF84FF3EEE4FEB 3B6BD2B5C4451DF3
+400B7832DDB87E8C 8D34ACF68DD9B97A BE0691888155E9BA 10A4C6148816E931
+90F650BE66B1D816 58055528A8609002 7F5BCBAD77ADE991 C9DEE3B6CFD792E3
+5C55561EDB39D589 B308366AE7B298F4 5A95EB1AFA4587E7 142BF73C3B8C1F8F
+6F3CDA4154EA976B 76C6F2FE94FDBCC1 1B1F42EE66012037 96AB0872A54C50A6
+07CB68A373B4139C 83511C1A7D1D921D 9D9C898B32265AD8 E04EF568871ABC93
+E1701C271A5A5DA4 AA7415C0DA01868C 13908D62E0311624 F283FED158BD1198
+11F71C03AAA6AD2B FE69BC484B4C5BDE 204E2699B3CE8AFD 73C7CEC8855C0D67
+BC600D35E0A6DB3A 2940306A2E89EBC0 4B832E6624CEF91F 2CFCA985E0D76B2F
+D4EBD1370DA7624E B44B67ACEDB7FA1C 4CAF9FF18CE1528E 971ADC42F58F8591
+ED1E2228A53870EB 74BB48775D913909 3F9E156568594EF6 14776F7D92D70AFC
+C2C43D27C039BB62 15084ADBD8660607 986F1AFF8C47552B 46E362619A85F4BF
+9620DD6398D27859 9DA1ADBE8595D976 D80A038797A11D9F 27D6FA39935904C2
+C6CF71B1DCDF119C F6B1A0A9E77D0141 1CF5BA9E47BB8F08 D2BA42AA6E6F0B3E
+4B943C87D7F66B93 A94A4226A9EF596A 8069A99E974F5602 5648A74872BBE639
+D74A9941E882ABC5 9452EE9EBEE6507A 02B56555A9E388E4 D5240982BCFFE597
+E9000CF9695C1FE5 BF528120342C2760 CA64485752D039E4 43029D08686A1815
+7223CAE5461ADE4B 0DB826E2C7CCE773 2C71ECD41557BBB3 E5531447A82C9DE5
+3549EC1C9F53D2B7 385EAF0E841F3858 4A463506504D5F5F 3F6A3918D116A9BC
+C6AA02002432B961 783C2174B7FB1D1F 6CE65E52E9649037 49114E58B54AF45A
+D26609A23EA43EA8 981E6AE084A8708E C2EE62C5717C23D0 4C40A462DB5180E2
+1DA61D2789E00ECE ABCFCF0D34DC78ED 7329AA362D1100F0 8E93834C73EA7867
+2C9FBDFD96E3B86D 258FD7716DB163CF 8D174C53B9AC82DA A3B40B414E335E83
+413CBE97AC0505C0 7D64E3AFEBA4A499 D4D180D16DB9A3EB 3769039CA435D208
+3FC216114A38A10D E9B90D5D98B944A6 50AF76203B9D4558 4E09D04E13EE798A
+C17B682F4BF5484B F2BB6FB212F2F507 B8168B1DBF9383A7 F26207938393C959
+6C1F4F8DC0FCBDDB CD36B4BF4537BA55 9D53E2DD48E6A911 08292C09D01582A6
+7BB5EACC47925B9A F4D30469A58CD11E 6BD7A9063A440E57 EB961F1B97B1AED1
+9F594B1756252C46 591C22573D95A828 45C3BB7FE72200C6 CC41F174D9B5B716
+2A41FF4DB416E226 5790283A0BDB98DD 0BF9D14EC8D9139F A6002D394B84D782
+572D32D673B32116 128359FAC1A6C6FA 7A3DF8B0370E445D 187200D62DF4A9B0
+8BE9E1D2D6131B04 A9085D0C362B11A7 D65A2DF534626B38 0008E98EB7CB1E70
+908F26D24E9D55A8 332D13A247456601 01B8A14B653A3FB1 BB2F6F2BBB4F31BD
+AAA5519C2D136077 A6932F7414276870 34A4DEE988C915E2 2C53E5AE15FC3B63
+A227C9AFB59AA6DF A12A147B1C6C05A1 DE8527F7B2D3E473 550737D3F202A2BB
+0E4CE119C846F55B 9C90BC6D3D6BE963 26D8B0B7B74AAF83 4192F6ABF642705E
+9752E606D02C7A8F 3CDF41625626064C B22D166261390DF5 52B14543D5323BDE
+F2139443B79C913D 3B11F1C53F023487 D5CCDD312062722B 959EA26169B6A02D
+A481648BADDC1890 5F37C5D365A293F5 12AFFA7660DF5F57 9F411FCF2CF07401
+E55668D3F74736CF 423D1080BA126DB4 6ECF
diff --git a/testsuite/slh-dsa-sha2-128s-tc162.sig b/testsuite/slh-dsa-sha2-128s-tc162.sig
new file mode 100644 (file)
index 0000000..ab7736c
--- /dev/null
@@ -0,0 +1,246 @@
+1BAC90AB7E6D50F9 567F015164EF5B14 1262DE517969EDC6 938943BAD9123BA5
+A31236E9C99E6470 CC1BFC44EDCED879 EFE625C50F8D2CD1 17192B84A7FE9A3A
+5753806774ED59A7 C91A63A96888EF51 91FAC1E293017DCB 40BE1F48C538EFAD
+2C058342505A906E 7577227F2B003B59 7D7DEEE3BCDEA929 2550CDCDADDEE7C5
+F38322295FCB0E98 DAA4BDF4F250B877 14108432B2DF23F5 EF7AFFBBBD71677F
+39F8923531BB6033 2E78DA03DCAFA853 95B82FA4699DC4B1 952EC8BF58E6ECF6
+A40591AB1CA423BD C9C6C63128ABC968 B61C88590F5FA3BD A9654BACA75EE119
+2D9E77649F4AB344 D9E1643983A41B75 1E093A402B23C434 B99B1692D8525AA0
+6250F199CE369F32 35D5E2521176BDA3 A3E514AF3B69899C 7DCE41FB6FFB4ECC
+B4335FBC71E1316A 1CB9C112EF62A7D2 61DE37BA47115C1B 5A9576C33697EE24
+AA218E113376275D E3D87E9107F8E4F1 0AC21334A03203BF 1729944C4F3F2249
+2A3FDBD9620259FC 44008AF6507AE751 6421E228031637C9 1A1969922A4FEA0A
+A005E08EB26740A3 F39778B207A4D0A8 3ABF211D5A311FC3 F96529A587A9EE9D
+2CBD484D210AE9CE 401873A4E8CA4F91 C006416964138A2F B08A53AD58E1B7A2
+7EE2E0A40F2E5F92 F365838E67D2823D 3D60957909D78552 000E4AC78288E665
+A3CC97B4C9E7DDF1 4067E63916D305D8 A0ADE48E1069FD65 23D5D4BDCEAF9752
+5DD0169BAEC2C53B D58C56CCFC7116EB 79BD6C420962B266 7BDBD4B27857DFB6
+513145E0336B5A4D 4976FAC5568A64C1 2BD2844F7250ABEF 88196B1FF02646B4
+3478A613A58377E8 35DC19660D7CAC97 B5B581E1D99414CB 2211D2AD205EB40D
+77AB4EBDB8A8E36A F955FC62D6BA5BA3 438AC55ED7910ABD F45170ADA52143A5
+6E2D4199904187C7 B51A073A6AC896C0 E030A1F0701EB853 22AB7152B2B08E9C
+C39A9C4BF104E86A 71E82B487E2ED3BC 235C3EA274F4FE4D B4E8CC9DBCBD5B80
+77EA4859D7F81E1B 4C4C2539EB587009 8197C71DE4FA9A92 FF54733F4C6BD383
+5A2922A9858BCBF7 92D6ED77204B7298 6983F0F88324EE99 D8A3F110BD94D7BF
+AD2F89D8FB192D74 6DF1E4FA1384ED8C B1B2411DFD3FE886 FABF3CEFDE776F02
+51AC889AC6596F37 7277C1E74C6939A7 A675DAB42CB9AEF3 70CE078D19061778
+D1098D783F6619C4 E199128504BA2F02 BB142CCE9B079720 5FED1516882E2F35
+FC6D4B2875CD5F65 2B5338620D1356B2 588AA9A3A71E4C88 8174E402B626EA96
+49734F157A17BEEE 0651694FEBFF3203 C37703931304D1F9 5B4A993ADFB332AE
+34834BF942C03593 B54D9BB3BFF31C85 2B5E8F72538E29EE 4507AE0F5260494D
+C53A814B655002A0 8A5EC8513922DC22 DE3D85B7E381B795 60D806861DDD0392
+4A5C7972ADD7B12D ECE20533A77F90C5 D2D8FCE4CCF833F5 7509D29850A93DB1
+416A145EAA6C910D E596282A7CBEAA91 1DE582078B6BDFDA 0678C4AD31ED76FA
+F04D770D5A60F730 C6B5B27DAC7E9939 270C239EDE4FFC5F 21ECAD060274AF57
+4FACF24A951B1E24 AB0D60B90FFDB90F 9539016128761143 6E3F73BE9F11069C
+01E67CF8E48B1CD4 556AAC7BA1CD7E7C 038A1DCC7E1C0FB0 AC9505998AAD9AB7
+4359DA64A3A8BCBD 229F61AEF207A546 F1190D798B2AF941 ABD7BE06F60F4062
+91F14AD2EB0BDDF0 C5225FF9DC75D5B2 E762A4A7CA07227C 0641AB6D2B58759C
+93838D3AD7E2502D B56CE75471CAEFA4 3EFE435A75056FAB 3A4107C58C2530D7
+F78A58EAB6AF1AEB 4622F42DAB230C09 F31A9EBFFD910A75 AEAE9CA9A6559DC7
+925666D2C63EF2F2 0ECACD3AC4745F1C 4AA0064E6EE3AC40 C8C1B6B98A9980AD
+9F41ABAE9F9D7D2D 52BA0B39041AA909 AE045878738ABDE7 87A1630AEAF22D2A
+73EEDA1DD3733356 D09D256759B298DB 98A300E21E8FD13D CB1B81D725E38FC8
+74EBB53D58D7943A C0F20907B4A1603F 7FFCE22339CECEF6 0ACCFA91394BCC49
+5A9A2DE88F999CBC DF14EE756781C5BF 68FCA81C28CE968E 07BA84C8A615AD31
+0215B4ADAEFC0706 B16A88EC127B9F70 F739770D0D53FDEB 9D376BFA7CF0F629
+9800ADA7A9C697C4 716872C5FCA02734 E0FA7D8872389A31 4E1EFBF7C449BF37
+A90AC2A16A6FEBA6 0FA21327A1B95C9E A134E38625B9F9A9 B7BB60751F79DF2C
+5B4DEBA4CE74586A 4D66782F75DDE07C 22ADC8FB01C3A83B 7CFCD53C988FF90C
+59B3505FA7733DBE EBCD72EDAF815431 D21499D650D90804 24CAB6C01CFEFA1D
+1754352CEC5875F6 5D80C5EB8F5D4734 3502824C6CB84F0C 50AFEEA2DAF72E16
+B79146BBCBB3B151 1EE327DDEDC4AE0E 88FA0A184AE23ADD 39CC5014AAEF247F
+B2DC846C088EA44E 5C066140AD9BFA32 DA47E4DC294AFE11 E9C949DFE29C3672
+BB8A8C6E37C49474 7AE3B8D551C602A7 C971835FCCEB582B F6DEE85A998BB1AC
+08A040D8BF90F7DC 4922269DBF441841 85111B922F751013 AD4A902EE2F853CD
+F4FE50CAE3A742A3 5E5CD3753AA709D7 C7BDD3538F0075D3 D18B90919F5E40BD
+B8020B22A9E32D2E 8FB254692DB0D1B4 D4BA9781C2E50DD9 EDD75059B203157A
+938FE233FB967DD6 D568EFCE66EF2DC4 B2B3FF0CFF6ED510 1B146FC828E56980
+CC2E0EB510F13CFE 62DD896AA66C3D7E A34FCC88DED688FD 4918E8EA9F4D5EEB
+E22F837164834B5E 979FD4D0B2D97AA6 101AEBE4521B9E3A 9200B8231476A37C
+45D3D4B20EDEF0CB 9E049B671ADAA9DB A965AA210DC6CDB9 5BA12CF335CE9619
+BC90C0E5A9C147DF A8F2BEC0DD07A3F0 D9D1004ABABAD4AC CD9BAB1C11C3E474
+457F258DBD544D9D 835AC4BA9FB2A153 9C6EA6469F2A8D38 21672554188D3652
+205EBD1EB55E8704 380FA78B732AA01B 3AB096DCC063DF73 9E67B309F616D570
+A08B6756F6DF7CB0 9EF95A720C6CDF65 E210845D065858B3 58451554AEDCB6D7
+4F5FC441643027DB F90449087A0F61E9 AEFC09C95BBFE3D1 6E1A4C8F2D5DE2BD
+D1242854229D0978 EAEE295504AE72DC 310B8E64D8AC0CE9 1EF46E4050B12F71
+F5953EAF80A320DE A58B99FEA38567DA EFEEEF66AC16BA1B 3E8F39AFEA623CB6
+3CC99E9D7ADBF575 DAA61B355BC85104 276436C9A7C6B306 D1937D34084F0645
+A2D62C08339773E7 CF8DA3A8C6F81F93 EE0A1DC8B28898CE 2A76C10879E03F6E
+D4712EC812D0605B 365397524E957630 C0760605EF11EEBF B1178C9B295989C3
+79817A92BB869BCF 5C61CC3763CF6CE1 C3E9322D85E50C8D D117BC1929F3B978
+93C83B004C5A739B 38F478DF458B8EB7 CAD667B76C15013B DC85C19C9ACE0D64
+75E2E03E0A76B4A4 DCFFE6ADFB4EF39C 1E13EDE2F53EEB0E E6EB58B420AB811A
+B154A63541E8EBAA 57157D97AA2B61D2 9206C73FB7AB3ABA C729686494A34898
+C7F522985B3D25BC 56FC1B46B5E05545 58EAB5E014FBCE93 C62AEE3A73128C3B
+A387EF33C10EEE20 FDFE3062C47B3ADD 94C3659C2B7595E4 DCE9199496DC4780
+98B1D589F9D4EE03 05302E212DF042B1 BE5D35659CE575CD 894241BEFDE9E256
+7A6909CCC3D57616 4704B752D9E71FD2 83348F272B1FC170 C6E588D50BE98431
+1B7625AD451C7057 663D03C773312081 F732FA2A96EA3C6D 92CBDB5F6095ED32
+2FBF4B809DF811E4 BE50BECCD3F7D675 018AB932C23D661F 3BE515F08679840F
+F988B98C090CBED3 3A75EE079D0B06C8 B2CEFCF4F59B1F02 8ADFCB21A50FAD66
+7900538452FAB52C 63D6C2B633859B2B 9426EAC4E2563DB2 3C7B92AEEADFC83A
+A04F9CC812BD5211 771C879BB7D44ACF 00157D6359A7554C A29EAF255678DFE2
+649F4E3A4A07DAC4 15CB67C1763354D1 4A75910E688B0C0E 75E39696333CC959
+7764FC190D5E7924 A8891CB6AE7B0FED 7FF1468ECCD3F5A7 E4A955C12DF22438
+BF8F1C52CD2411C8 ED5E2EBD1887A3B3 3CC565354CC1A3A3 0706867393C219BD
+BA6C60BCE984A3CD 084E51C50A05E006 FA26D4E5789DABC9 B820E59D9A05CB0C
+3AE294009059CA1B D10732C4A6EF4A09 4D6AD3B8EDE1C404 9FAD9DBA92075BC2
+F5491040C7EB8974 AB7B5C412ABF442B 033D4330BAF8E523 EF07541C62FEA80A
+4BEDB99092851B16 C36BD7B5FC7D95B3 9D4D9C720F8D99F0 25865F49FB2F364E
+FF6D8BB03ECE1025 3E1BAB2FD89E0B28 5D69229FA1185613 80F7E4FD6322ACD1
+0795D46B983D07C6 1289F98E654F8B96 2B3F389338835FA2 40CE686CD7A061DF
+D914512632C448BB 3B8A430ED5137326 134305F3292EE7E3 EEC82E324816863D
+2F384F0777C3EAC0 E65E7F5D7F4F6D46 05DEADED5B069F59 EF790996F1D30A9E
+D2EA121DE1EE3CB8 2A438E5BC81174D8 C0ADC968F3EF1CF0 47F36FCB4A488EFF
+4FDFA6E8B7611E57 272445B435047071 1BD8FE884C664672 E295F094477BAB5F
+4E97E14CE5E1B5CC BA84BD85CF14B306 712EAE2EBA9372EE 44FB524105BE864A
+2105C1EC5DF84067 CA2517CD6011C65A 533BF56CC7DB6D3B 0F211C8049CD34F6
+92CD4FE189B8DAA2 B946C00874F6DBE6 64794D8CC1139F66 BAB4EBE1572AA6FA
+2EA699D76765A197 78130A2B1B3F6D02 3FDACDD7FC2026CF 14D24DB7B3EA0611
+54B5A51A0E7ADB12 10CCEF08A57E67C7 964D084EFC747764 B7C39C8AE52EA437
+C4399F6ABF27E40D C4A908D3C07B4012 BEC9AAED0700D7D1 1CAFACADD37650A7
+5A513FA52CBFFF63 2AA707948AE75968 36AD1E0EE39C069D 0DF4B25496619A07
+5E12F15A49A65909 D9ED702BAB5811B4 214956E2CFDC5AC6 34BF06369017095E
+D29A0918DF87EE25 CA68AA181A47FA02 0544EA62F153B4FD D5513F8955FB8DF3
+AB84C0302CF9E48D 87E2B7D916223C44 69E5B44B6572D2D6 565A349427B7D606
+10BF50313DA25DA6 AE1613A08515768A C2933FAB753A1563 CD2A5224B7E8988E
+94E8269380C0256E FA7D40921B8A7EAE ACD06DB1A94D41DF FA4EF8FE62481FD2
+D37827B577E4C9CA C4CE740B97971767 FBA90F2705F491E6 97E3A315FA92389C
+6B639DA671974F9B 2093FD6BA8CD6BE4 52343268B4CF0643 AFAAD3FA20AF818B
+524378512704F2C8 BFDABEB444DF9E2D 3B7F0BA8A7A335B6 0F91DAEA15FC5098
+4281172089CC10A2 5B590034A81D3962 154E240E9CDE26C8 9E77E36715D9EFAE
+A5E15A3D65EE7505 A278D131F753C312 D3F7F61FAAB70C3B ED14396C47608AA7
+781975658294B779 EF3ECE395CED7CBF 3B6D267D9A664004 8A6441FAFA8E38BC
+B1401E015CE114A6 6130F2BC42F0BE2A B37FDE126D2A59BC 39F69490B2327573
+9485B4E408CB64E4 3543E1030863317A 60E6E60D9E144A47 54D1FE6DA38A0BFF
+9FF8BFA099A25F21 A0D4D2E5F97B4778 A507E4F2B87CF6D4 DB2C0DC7E0D30670
+4AAD29AAF7A794E0 057B9DBAD7F13EC8 B082C52F97D31C72 D5D48D30CCBE0803
+A633ABCF5CA9AEBC 6123A62C8E18EEE0 814B2747F969DFBE 1D38F504E5B31754
+A6882F7049268351 D93D9CF6EC2E7918 83A65F1DFB73344F D83FA15DFAB48881
+8B2CFBDF321986E5 12422315C2F1966A 08B6D885511E1962 8C26BCFC9D08BEC8
+6C7666EDC638D0DF 720E1B47C3A1E1AD ABEFB13E8CC6CB2F A8101C770E212A5A
+99D3BABCFC24970F 7639718132D58CFA 859640BA14C13DFB F759FE2C0EE26AAD
+56A1EE4298820D21 5F6CD969F891D049 ADA72AED65EA8863 BC6CB859C91F5ECC
+B87A21D680137BB7 447063908E6A4F8C 979C1F7D467B5997 503A8E61282F08EB
+99B8F6CE1F5101E6 D8FCB2D790CC9C44 3B031B7E71CD20B9 1B849FC3D425D5C4
+D924611999966FE0 F96A90011D53BD0B E140D78D6406E01C 53B7C86BC796ED0E
+35EAB658178B811F C4D35EBD2B4B8090 627092BE464247D8 8BBC202645190AA5
+BA7FEB893BA426D0 750F520620400025 3C21AB4746E8487C 4C8FB8E22A493A54
+E2645346C07A3325 799B2B17535765EF FC6FA8CB3F7F04EE 9658884201933B3B
+EF8F718A07925867 AD5FA32A5942DF40 E122625623E6084A CDFDB5DEF0E8CB4D
+53786321B6A70C48 6F3BC6BEAF009720 9D0A7EE682365BA6 078EC295ED3027D1
+9E0DB6AB59196ECA 6E22B845FAC233D1 36E31FF258DE58EA DFEF5FD45783A2AC
+E044C29CB8BE5715 9584F9D7B9571A7E 4D3E7D258768BDF3 10823934EC51932F
+C4C7EC66AA661138 240ABF534E63673A 2324B439AAABF1B8 3815D70D1F1DD51C
+D502A8746F10447C 122D82027C6C0283 E02E1FD83A9AADCE 0DA8D87FC513DB2E
+F82A721AF1991216 F3179591D09B41D7 803E071F22D28B37 8E10A69EB72A57D7
+DB60149BEDF130B8 69357AD24FCDC219 97DEA759C5846E58 E28116467C4FEE76
+CA7E57662A378F5A 615766C7A6D38C89 AF8645747555B54D 2A790922C2FD8F9F
+1F3070DA84772A5A 3DBAF5F54BD4408C 8DA0E465C44FBEC4 BD788111529F2909
+28DEE69D6BB72761 3E5C5EF222C41BAD 1841D8CCF19914C2 70D37E529EF0BCA0
+CD921312D5EE8371 B65B3C83DD6AE0A4 F75C4285E81A8C6B C83D935F58AA6581
+BA061625A81AECE4 775D5CD5BCD2F0B2 9BFE351DCA928FD9 0F37E731D5FFA744
+C028987C97D2D040 F0D6F20C6825D16E E79980A8797E3CA9 24A6F53B48DFFCE5
+5B8C809D2727638A 86149207FE9432EB 26053820F8D65C0E CECFC9460BB967D2
+7753CF2AD373336C 38F4F27527C4D834 8523BA56E54961B3 93277AFE7C86ACB8
+0EF89B3C62C05C9B 930F06C76FCD1FE1 EE6F7A6CF97B7A2E C0C1806FD3B616D1
+9AB4C748FC142BCD F6D338CB22C5A544 3DEE31789F7E5655 A02750318A851EF8
+B3080358E36F72F5 371B2E57F90BDE3A 68BB4C4AA5C9E973 7D121F854EBC4466
+BC683FFAEC2DF62A CE60F188DE5A4037 E64AEC5D59B31E9E 75EB0FFEEB9BAE28
+1FB790F4BA3CD758 15F8F292B37AAF73 AB10148408B72C28 F0E9CBF910C20AB8
+6764429777196BC0 F80147945382028A 0D358AA6DB3CDA35 C539994EA3E2BA16
+7131E0802E84146B B75EFB55F7F6D6DE 2BE958A4F045BFF6 26281EE0CF015AD7
+EA26F3BB6B6A0EA5 3D70B69721AC6BCD D897270938C27E8D 37BEFDE444F9AE7F
+BB8921FADFBDF7F9 46420FE3223D1D55 364D7FBF913C3EB4 6A5B0C8898150F8A
+CEB0896C804D94FF 8194FA3F5D5D6256 88CCAEB8DDB9C4CD B33AE4530E3AB22A
+DADA5CC9D6BFC837 1350107CC142F801 391E6F375F80F45E 6ADB59E4288A210E
+402AA0901FFA8DE0 3B8A9673E36FF0D9 2940487C4AD3FEB5 79B6136C8BA82911
+1410299818CDDBC8 1ACE1CADCA73C83E B2167081E28E0FEF 489B42338B69E100
+5779579340FEC8AB 20E75EA7BC707B96 93F4B25EFEA6F181 2E13BBDF1DBE095C
+08ED818F87AE9941 6213957E81FD3F0F 2803CB317AB9D63D 2C256E8A16CDD3FA
+B509FAAEB9BA2FF3 8AF68DC468AC85BF B97531DD0C644838 C267054D5CEC54FF
+B650DD9AD87CDE7B 822DE425C5A6A578 C8E85D7D0E3E8C1C A0E5410BAF766AA2
+D8BFADB6219B2282 98342B32BB5C2301 89603CAA5397510F C91932B7208C3137
+038307D3B6BAB737 0731A286C05419CF 2B1FDA06A1CA54A4 BF1612FFE10814ED
+2D17052466EF9C3E 594B5A5121F0BBAD 98335430A25019C1 A8FCB2B1626EEC0F
+C191719902A93E5F 5B49E5932D8AF391 8F65ED043A93EC73 7B47DC4C654E2C25
+6EB9EA1F054EC384 28AFC553AC491526 2DC16409B5242EFD 18B57452933466CC
+D738D030664B6A3E 5F30EEBADB29BEF2 166817650D811F7B D57A5485ACD87857
+23C4F47AB6F1AC6A 5493C5C3074BEF70 33E2D9F58F57B082 A711CCE4F06D4F50
+4619FB9AD1824EB5 B0FCE0ED84DB1632 519F6CC0AC12569F 13180B1DB3762841
+803E05718DD21D4C 84786812D7F157E4 8B96E5E7946759E4 A400A86662F7CA22
+D19E705C7A70EB79 D863AE3E63708FC7 9D664193035DDCE2 593F5B2398075D7C
+82DDBC9ED596BBBD C28CE2A25048A162 D46C99C4DE1087D7 063BF436414DA8F3
+F52873F66B853658 F95A9305CE622FFE A72E4122B26C49D7 540CCB99254EBB9E
+43036B1BFD661B78 C2E0E220E8E74689 6271B5501901EA34 658FC19570F3B3A7
+0C2D6B57D9403B65 2E8BAF79C42AAD07 7B3CBDD9EF4D65CD E865744C9DFC6185
+65DE6538CCB3968E 0FC77BC0147632CB EAAFCA903361D0FF C4D76AE4C184E0C4
+F86A9187D4C3DDB1 64DC4196D09E68B1 6C841B5768411174 D54CD9466313BA61
+7B2880AE73505358 6FE0D9576275DE87 32A7BD938B40654C 700503B7EE5722CC
+E0BB1644357123D5 877B01DF4EE19ECD 66797BD41C623241 6914CD4A35EF6933
+0C5279BA214A78A7 DB3A800C1CD6D6DF B31F8E8119892886 06EC467AB9C98790
+93EF1B67807FF5CE 5B502C2EB8C99E8D 99CA63B3921E53C0 4EF6DB94F0A2DF0B
+DE1332D1592098FF F590D6ADD19A2EAC 6A74563BF51E2F6C 6E6A97670FC1E58B
+3C4AD3B387B51EAE 84F1E63A6100EFF2 9FD394F7FB897595 012F384EBA7E4338
+2C3859873A77F22D 62893385C724AD29 126A66F235FB2864 B0011095D322B849
+E2E919486D1E3AB2 C9DAAC3D2A0BB609 F8AAEB0C20FB169E A89CDD979F44CFF1
+A51280982ADC594B 74CDD211E044721D E4BD23A3FDF28F51 17D9FFBCB4F7D0CD
+379D19EA6647D184 91CB04FBF8E16BDE 9D11E7E66CFE50E4 DC2BEC9172401FC7
+6C358B4752815906 310D464192BBB668 4826D921A25F890C BB857BE2E32B313E
+96E2BC6CC330EFE6 203F2476B6038A6E 48091E4DBC4DC5D1 D7B7CB9BD4D41235
+C9FFEDC5F2AA57C0 04BB5756FA359469 16C388E26F3DF804 580BD8307771B804
+5EBBC04C6E6ADEEF E118A9743ED8581E 5AA72682D7010C3F 4C414F27360D7A6E
+3FC50670D811E65C F4ED4472665CDED8 E0AEF0D0B5F315E5 29E85FEE87072FBC
+A4B8F27B025A5189 F80EEC7033533D0F A11594CABE096FA3 37525AAEDA733053
+D0E9459E4DEA33D4 B2AC91237495A2EE 7696225EE93E6358 A6FD2FDAE1F56696
+287732CE7AA7F41C 11D6B513798D4DD0 BBE4B055C09B8371 612AFC3A49752277
+6F7909B71C6AEF75 373D969D71C0185A 8146A096D04357AD 3245FA962ED918C1
+64995DBFC385FD76 4BD95F211B071D18 4E2544F889E21544 76051DFCE9279919
+756C098A2D2C07F7 0DC66FD6A6FFB3C1 34B2FD8874844A5F C5E0D15F4D6C7197
+D4677EDC88342674 8D452A8DBADA7962 CEFDCB8DF1100162 261BAE5818B91BF8
+2569F31207684840 A573568D1E889B84 248A2CB8EF9FB82F 621AEF2FA6F47311
+58169572396536E2 67B6DBFFB525B8EE 9CB501EFCA266557 50549E44B92A8A2C
+21A48695A307E793 FD57AE844B0C4F5D B1B77E8D7819F07A 94235118B8B645EB
+C9F914603AB92561 468D0B493AF3FD99 63FB1E2ED253408E 6E43AE796B8F7B8C
+6592B5AF82B4AA77 2B3220E49D66926A 9371E20DFE0AAE5A 50B43FB6A4C418C6
+93E03E19624CFB3B 6427021D54519561 0352B4B15248CEA6 BD320C4A5A8A0319
+56B051F29F6E6DCE C1EF9FB92F68EBA0 B5340B082FA51BC7 3122DEC7B5A987DF
+A61A73464C5839DD AB7C59A222E31312 3A9E10163ACDA402 85AF47955E366456
+7896D8860D415980 3C97C206DFDC468B A85BFD85DB132C42 4771706E0E268010
+54C477FEE733FF59 501ABC33F0D58FF6 7BF5D9B010307C46 8C1F3ED5641BEAD0
+829F0473A786F80C 112DDF0017E7E859 BB7C7AFEE95FC815 AB880F94AD43E251
+8D18047EB83D1D77 B9D42BEED20D3E35 7C79867C56D58477 0FA0F7974FF83EA7
+D26CCB6319A320BC 3E763B332F62680E 4FDAD9B22C17AF15 4FE1183A732E5D4D
+C084443B1097703D C7640DB74C595F3B 6D0F1986502F49B3 CE72694E95B4C48F
+7B8C3DC1C4544401 D22E5B6733DCA273 D7743CA177161A1A BE2F0880B9A1407E
+71EB67296B7892CE B435D2BE6F989DCE CB4874FD73A49275 7404DCB02BB4704E
+908B0D5A4D7F494E 2711E2C59A454EAC 15183082EE6090C9 0568E966D7BB1D4A
+55127F996FF64A0F 3FA918D3E5A2C0F4 B3F05A7C41039E5C 850A3EA9AE0E795D
+507FA82CDB4169C0 2DEFF2E699053970 4CC85AFA2BC4B7AB 3861049EFF0F2D2A
+8A1D5584391E91B9 F99B0F7A5046FB8A 6E6C00973AC9C3BA 053C35C0DE582045
+EA951164951DF02E 8B5155FDCA9AF868 A1F76E9BE7830F56 F1DF755375AA9E05
+D0B4182576BAD750 B22DDDBF9D9F3948 EEB3ED52B16ED121 3DB2DAF16AC6E068
+4EFA85B41534DB03 57A2AA51A858BDEC 4C78F315BCDF96EB 8056D797DA4AC1FB
+50FC05698CB64798 231B0ACD7536EB8A 3939867A5F11F4E6 EF82C75892A7CE74
+D29D5199F2545462 9965F4A1215E428B D02FF466D7EDC79E B2B4AB2A978A9F09
+A94BB306CEBF9783 DEDFB497A3F0E1F2 4086847C60B25687 ABC853A2806FA70A
+A04DC6839285CC36 0248A2A990C5C1AE 7E3D6CB10BC08CC9 59E552FA671C033A
+7081D7BAA23E193B 917EBC6F837C493E 2785AE4E4BF549B8 79D4F40CC1CEAB28
+AA2B14A8459DECB2 D00BD554B5CE6E9C AA9212124FD9B1E1 6E057D4E17DD7705
+6C188E0DF53EA2F6 79994325706CF440 E49D80F5150D8191 C53C2638C2B35892
+B8F66F5DFFA1506D F4665513D2A8B000 A931610BF695CEBA EBFD80CF2D6CD225
+FDF6515E5F5D8BB3 F3DA49C88797812D 1479255DEA2DC1A6 63586DF4A50B7600
+357A671650624F26 4BD6EE7A31EF1FE4 C8B7A902813413F6 C9146B211B8E32E2
+ECC50EE3825AA035 15B3BB171338A5B0 DD618BD4B014ABD5 B52A08843F84A6B0
+4E551B40EDEFD7DE 45C071988BE1F50B 71ADF056A461FAE7 B5CCF6C857CC85B6
+27E327E0464536E3 B4707D95FDA5217E 14CB8B022A5E4001 33147608421C1B1A
+AA62424CE7B1F4A6 13D371910B92E36E F5FB7A051532B6A4 8F51952EC39EB917
+3DDC90F29776BA1B 3EE2A7EA961BD2B6 C9A1329DB9E5EF03 15D8D8E5629469FA
+7F2C7192816D2EB0 EB7BEC2E325E64D2 DD0782C0BBD6CC42 DC728106814E50B7
+ED5B8865D1A1655F 7AFD8CE0BC7E8EE3 163527BE41808421 64673503E7558231
+BB1782F35A609758 92E627FCB3C777CD 8A2A5099BD21F9A2 DC335517621316A9
+CACF5F74739DADBD 90FE3763215AC754 915CEBFB2BDB1151 1BE0CC362CF43900
+5A00D50886F04FD5 488B61013C59CF8D 2B8FB07C17E79EC9 3BF09886A9474D5F
+5111FDBFF6C13735 6BD670D75D72D53A
index cab0a75c5638ac98cac4a559e5ef1feabd56e641..058e5d04f3b766f6942b95779b833797c8061150 100644 (file)
@@ -88,7 +88,7 @@ read_hex_file (const char *name, size_t max_size)
          if (done == s->length)
            {
              fprintf (stderr, "hex file %s exceeds maximum size %ld\n",
-                      name, (long) s->length);
+                      name, (long) s->length - 1);
              FAIL ();
            }
        }
@@ -341,6 +341,15 @@ slh_dsa_shake_128f = {
   slh_dsa_shake_128f_verify,
 };
 
+static const struct slh_dsa_alg
+slh_dsa_sha2_128s = {
+  "slh_dsa_sha2_128s",
+  SLH_DSA_128_KEY_SIZE,
+  SLH_DSA_128S_SIGNATURE_SIZE,
+  slh_dsa_sha2_128s_sign,
+  slh_dsa_sha2_128s_verify,
+};
+
 static void
 test_slh_dsa (const struct slh_dsa_alg *alg,
              const struct tstring *pub, const struct tstring *priv,
@@ -566,6 +575,11 @@ test_main (void)
 
   /* From
      https://github.com/usnistgov/ACVP-Server/blob/master/gen-val/json-files/SLH-DSA-keyGen-FIPS205/internalProjection.json */
+  test_slh_dsa_128_root (slh_dsa_sha2_128s_root, /* tcId 1 */
+                        SHEX ("0D794777914C99766827F0F09CA972BE"),
+                        SHEX ("173D04C938C1C36BF289C3C022D04B14"),
+                        SHEX ("0162C10219D422ADBA1359E6AA65299C"));
+
   test_slh_dsa_128_root (slh_dsa_shake_128s_root, /* tcId 11 */
                         SHEX ("529FFE86200D1F32C2B60D0CD909F190"),
                         SHEX ("C151951F3811029239B74ADD24C506AF"),
@@ -604,7 +618,7 @@ test_main (void)
                SHEX ("D81C4D8D734FCBFB EADE3D3F8A039FAA"
                      "2A2C9957E835AD55 B22E75BF57BB556A"
                      "C8"),
-               read_hex_file ("slh-dsa-shake-128s.ref", SLH_DSA_SHAKE_128S_SIGNATURE_SIZE));
+               read_hex_file ("slh-dsa-shake-128s.ref", SLH_DSA_128S_SIGNATURE_SIZE));
 
   /* Test vector from
      https://github.com/smuellerDD/leancrypto/blob/master/slh-dsa/tests/sphincs_tester_vectors_shake_128f.h */
@@ -616,7 +630,7 @@ test_main (void)
                SHEX ("D81C4D8D734FCBFB EADE3D3F8A039FAA"
                      "2A2C9957E835AD55 B22E75BF57BB556A"
                      "C8"),
-               read_hex_file ("slh-dsa-shake-128f.ref", SLH_DSA_SHAKE_128F_SIGNATURE_SIZE));
+               read_hex_file ("slh-dsa-shake-128f.ref", SLH_DSA_128F_SIGNATURE_SIZE));
 
   /* From
      https://raw.githubusercontent.com/usnistgov/ACVP-Server/refs/heads/master/gen-val/json-files/SLH-DSA-sigGen-FIPS205/internalProjection.json: */
@@ -624,11 +638,17 @@ test_main (void)
                SHEX ("C9A7900E931AFBA2B52A5BC55A2DC4D12DDC9BF8E0B2ED0BDE83E674F1ECE7AA"),
                SHEX ("0E87FF20256E0E499A53B52DF91467C01F0431C07250AFE93DE814117B5D66D3"),
                read_hex_file ("slh-dsa-shake-128f-tc64.msg", 2280),
-               read_hex_file ("slh-dsa-shake-128f-tc64.sig", SLH_DSA_SHAKE_128F_SIGNATURE_SIZE));
+               read_hex_file ("slh-dsa-shake-128f-tc64.sig", SLH_DSA_128F_SIGNATURE_SIZE));
+
+  test_slh_dsa (&slh_dsa_sha2_128s, /* tcId 162 */
+               SHEX ("0FD12C3F990748CF9B1426413B64128EDF9242E50B9E29378BD24CAD4D547540"),
+               SHEX ("438E444071BD643C2407BD9FEB0071EC21DAA14113518133D6161EF420EE629D"),
+               read_hex_file ("slh-dsa-sha2-128s-tc162.msg", 5746),
+               read_hex_file ("slh-dsa-sha2-128s-tc162.sig", SLH_DSA_128S_SIGNATURE_SIZE));
 
   test_slh_dsa (&slh_dsa_shake_128s, /* tcId 215 */
                SHEX ("DD286FF370CB50BC1B23894AA3F7025A534A788E697B94942AB845EFB753A30B"),
                SHEX ("4738AC60C561FFBE15AB96EFFA1A09291A79332E1CA3C38B2FEF40ACA7CFE285"),
                read_hex_file ("slh-dsa-shake-128s-tc215.msg", 5377),
-               read_hex_file ("slh-dsa-shake-128s-tc215.sig", SLH_DSA_SHAKE_128S_SIGNATURE_SIZE));
+               read_hex_file ("slh-dsa-shake-128s-tc215.sig", SLH_DSA_128S_SIGNATURE_SIZE));
 }