Update Wycheproof test vectors Change-Id: I65b44a26366389ac214b25580ed0816e71c39db0 Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/96367 Auto-Submit: David Benjamin <davidben@google.com> Reviewed-by: Adam Langley <agl@google.com> Commit-Queue: David Benjamin <davidben@google.com> Commit-Queue: Adam Langley <agl@google.com>
diff --git a/third_party/wycheproof_testvectors/METADATA b/third_party/wycheproof_testvectors/METADATA index 442f6a6..bd2b829 100644 --- a/third_party/wycheproof_testvectors/METADATA +++ b/third_party/wycheproof_testvectors/METADATA
@@ -8,11 +8,10 @@ type: GIT value: "https://github.com/C2SP/wycheproof" } - version: "4d535535851fff6e3f4a50ab1062faca5a13a302" - last_upgrade_date { year: 2026 month: 4 day: 30 } + version: "878e5366008753df2064d40c49f8e2f50f9c6af7" + last_upgrade_date { year: 2026 month: 6 day: 2 } local_modifications: "Only the testvectors_v1 directory checked in. txt files " "are generated by convert_wycheproof.go script in util." - "https://github.com/C2SP/wycheproof/pull/229 was applied." }
diff --git a/third_party/wycheproof_testvectors/ecdsa_brainpoolP224r1_sha224_p1363_test.json b/third_party/wycheproof_testvectors/ecdsa_brainpoolP224r1_sha224_p1363_test.json index c81d5dc..96b47cf 100644 --- a/third_party/wycheproof_testvectors/ecdsa_brainpoolP224r1_sha224_p1363_test.json +++ b/third_party/wycheproof_testvectors/ecdsa_brainpoolP224r1_sha224_p1363_test.json
@@ -1,7 +1,7 @@ { "algorithm": "ECDSA", "schema": "ecdsa_p1363_verify_schema_v1.json", - "numberOfTests": 227, + "numberOfTests": 229, "header": [ "Test vectors of type EcdsaVerify are meant for the verification", "of IEEE P1363 encoded ECDSA signatures." @@ -4452,6 +4452,46 @@ "result": "invalid" } ] + }, + { + "type": "EcdsaP1363Verify", + "source": { + "name": "github/davidben/ecdsa-s-pow2", + "version": "0.1" + }, + "publicKey": { + "type": "EcPublicKey", + "curve": "brainpoolP224r1", + "keySize": 224, + "uncompressed": "042c2fd58b6a82809af91a28225cf79e632472a1054d589de972f7dbd353ee4fb4dd0341e9b9b15d94e775c9f4d1b152c07abb0b6c40cee567", + "wx": "2c2fd58b6a82809af91a28225cf79e632472a1054d589de972f7dbd3", + "wy": "53ee4fb4dd0341e9b9b15d94e775c9f4d1b152c07abb0b6c40cee567" + }, + "publicKeyDer": "3052301406072a8648ce3d020106092b2403030208010105033a00042c2fd58b6a82809af91a28225cf79e632472a1054d589de972f7dbd353ee4fb4dd0341e9b9b15d94e775c9f4d1b152c07abb0b6c40cee567", + "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMFIwFAYHKoZIzj0CAQYJKyQDAwIIAQEFAzoABCwv1YtqgoCa+RooIlz3nmMkcqEF\nTVid6XL329NT7k+03QNB6bmxXZTndcn00bFSwHq7C2xAzuVn\n-----END PUBLIC KEY-----\n", + "sha": "SHA-224", + "tests": [ + { + "tcId": 228, + "comment": "s = 2^128", + "flags": [ + "ValidSignature" + ], + "msg": "68656c6c6f2c20776f726c64", + "sig": "a1df7811e3bd627ed4838ce23b174aed337ef2867baeaa6e896587c300000000000000000000000100000000000000000000000000000000", + "result": "valid" + }, + { + "tcId": 229, + "comment": "s = n - 2^128", + "flags": [ + "ValidSignature" + ], + "msg": "68656c6c6f2c20776f726c64", + "sig": "a1df7811e3bd627ed4838ce23b174aed337ef2867baeaa6e896587c3d7c134aa264366862a18302475d0fb98d116bc4b6ddebca3a5a7939f", + "result": "valid" + } + ] } ] }
diff --git a/third_party/wycheproof_testvectors/ecdsa_brainpoolP224r1_sha224_test.json b/third_party/wycheproof_testvectors/ecdsa_brainpoolP224r1_sha224_test.json index f2eaecd..67a0895 100644 --- a/third_party/wycheproof_testvectors/ecdsa_brainpoolP224r1_sha224_test.json +++ b/third_party/wycheproof_testvectors/ecdsa_brainpoolP224r1_sha224_test.json
@@ -1,7 +1,7 @@ { "algorithm": "ECDSA", "schema": "ecdsa_verify_schema_v1.json", - "numberOfTests": 451, + "numberOfTests": 453, "header": [ "Test vectors of type EcdsaVerify are meant for the verification", "of ASN encoded ECDSA signatures." @@ -6726,6 +6726,46 @@ "result": "invalid" } ] + }, + { + "type": "EcdsaVerify", + "source": { + "name": "github/davidben/ecdsa-s-pow2", + "version": "0.1" + }, + "publicKey": { + "type": "EcPublicKey", + "curve": "brainpoolP224r1", + "keySize": 224, + "uncompressed": "042c2fd58b6a82809af91a28225cf79e632472a1054d589de972f7dbd353ee4fb4dd0341e9b9b15d94e775c9f4d1b152c07abb0b6c40cee567", + "wx": "2c2fd58b6a82809af91a28225cf79e632472a1054d589de972f7dbd3", + "wy": "53ee4fb4dd0341e9b9b15d94e775c9f4d1b152c07abb0b6c40cee567" + }, + "publicKeyDer": "3052301406072a8648ce3d020106092b2403030208010105033a00042c2fd58b6a82809af91a28225cf79e632472a1054d589de972f7dbd353ee4fb4dd0341e9b9b15d94e775c9f4d1b152c07abb0b6c40cee567", + "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMFIwFAYHKoZIzj0CAQYJKyQDAwIIAQEFAzoABCwv1YtqgoCa+RooIlz3nmMkcqEF\nTVid6XL329NT7k+03QNB6bmxXZTndcn00bFSwHq7C2xAzuVn\n-----END PUBLIC KEY-----\n", + "sha": "SHA-224", + "tests": [ + { + "tcId": 452, + "comment": "s = 2^128", + "flags": [ + "ValidSignature" + ], + "msg": "68656c6c6f2c20776f726c64", + "sig": "3032021d00a1df7811e3bd627ed4838ce23b174aed337ef2867baeaa6e896587c302110100000000000000000000000000000000", + "result": "valid" + }, + { + "tcId": 453, + "comment": "s = n - 2^128", + "flags": [ + "ValidSignature" + ], + "msg": "68656c6c6f2c20776f726c64", + "sig": "303e021d00a1df7811e3bd627ed4838ce23b174aed337ef2867baeaa6e896587c3021d00d7c134aa264366862a18302475d0fb98d116bc4b6ddebca3a5a7939f", + "result": "valid" + } + ] } ] }
diff --git a/third_party/wycheproof_testvectors/ecdsa_brainpoolP256r1_sha256_p1363_test.json b/third_party/wycheproof_testvectors/ecdsa_brainpoolP256r1_sha256_p1363_test.json index d4dc5a4..d02dfa6 100644 --- a/third_party/wycheproof_testvectors/ecdsa_brainpoolP256r1_sha256_p1363_test.json +++ b/third_party/wycheproof_testvectors/ecdsa_brainpoolP256r1_sha256_p1363_test.json
@@ -1,7 +1,7 @@ { "algorithm": "ECDSA", "schema": "ecdsa_p1363_verify_schema_v1.json", - "numberOfTests": 259, + "numberOfTests": 261, "header": [ "Test vectors of type EcdsaVerify are meant for the verification", "of IEEE P1363 encoded ECDSA signatures." @@ -4851,6 +4851,46 @@ "result": "invalid" } ] + }, + { + "type": "EcdsaP1363Verify", + "source": { + "name": "github/davidben/ecdsa-s-pow2", + "version": "0.1" + }, + "publicKey": { + "type": "EcPublicKey", + "curve": "brainpoolP256r1", + "keySize": 256, + "uncompressed": "048af1ec83704efa0f112abddf15b244adc4c90828c94139416787032dcf0c4e2572a3a31f95bb29003075ce39809c224458e128aa17acedde0cc4bd2988e5b8f7", + "wx": "8af1ec83704efa0f112abddf15b244adc4c90828c94139416787032dcf0c4e25", + "wy": "72a3a31f95bb29003075ce39809c224458e128aa17acedde0cc4bd2988e5b8f7" + }, + "publicKeyDer": "305a301406072a8648ce3d020106092b2403030208010107034200048af1ec83704efa0f112abddf15b244adc4c90828c94139416787032dcf0c4e2572a3a31f95bb29003075ce39809c224458e128aa17acedde0cc4bd2988e5b8f7", + "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMFowFAYHKoZIzj0CAQYJKyQDAwIIAQEHA0IABIrx7INwTvoPESq93xWyRK3EyQgo\nyUE5QWeHAy3PDE4lcqOjH5W7KQAwdc45gJwiRFjhKKoXrO3eDMS9KYjluPc=\n-----END PUBLIC KEY-----\n", + "sha": "SHA-256", + "tests": [ + { + "tcId": 260, + "comment": "s = 2^128", + "flags": [ + "ValidSignature" + ], + "msg": "68656c6c6f2c20776f726c64", + "sig": "82050aa6b1528c456650aa17bc396e8761baeef0dd085aa82b5e939e3b5cda790000000000000000000000000000000100000000000000000000000000000000", + "result": "valid" + }, + { + "tcId": 261, + "comment": "s = n - 2^128", + "flags": [ + "ValidSignature" + ], + "msg": "68656c6c6f2c20776f726c64", + "sig": "82050aa6b1528c456650aa17bc396e8761baeef0dd085aa82b5e939e3b5cda79a9fb57dba1eea9bc3e660a909d838d708c397aa3b561a6f7901e0e82974856a7", + "result": "valid" + } + ] } ] }
diff --git a/third_party/wycheproof_testvectors/ecdsa_brainpoolP256r1_sha256_test.json b/third_party/wycheproof_testvectors/ecdsa_brainpoolP256r1_sha256_test.json index b771cfc..3115d98 100644 --- a/third_party/wycheproof_testvectors/ecdsa_brainpoolP256r1_sha256_test.json +++ b/third_party/wycheproof_testvectors/ecdsa_brainpoolP256r1_sha256_test.json
@@ -1,7 +1,7 @@ { "algorithm": "ECDSA", "schema": "ecdsa_verify_schema_v1.json", - "numberOfTests": 483, + "numberOfTests": 485, "header": [ "Test vectors of type EcdsaVerify are meant for the verification", "of ASN encoded ECDSA signatures." @@ -7120,6 +7120,46 @@ "result": "invalid" } ] + }, + { + "type": "EcdsaVerify", + "source": { + "name": "github/davidben/ecdsa-s-pow2", + "version": "0.1" + }, + "publicKey": { + "type": "EcPublicKey", + "curve": "brainpoolP256r1", + "keySize": 256, + "uncompressed": "048af1ec83704efa0f112abddf15b244adc4c90828c94139416787032dcf0c4e2572a3a31f95bb29003075ce39809c224458e128aa17acedde0cc4bd2988e5b8f7", + "wx": "8af1ec83704efa0f112abddf15b244adc4c90828c94139416787032dcf0c4e25", + "wy": "72a3a31f95bb29003075ce39809c224458e128aa17acedde0cc4bd2988e5b8f7" + }, + "publicKeyDer": "305a301406072a8648ce3d020106092b2403030208010107034200048af1ec83704efa0f112abddf15b244adc4c90828c94139416787032dcf0c4e2572a3a31f95bb29003075ce39809c224458e128aa17acedde0cc4bd2988e5b8f7", + "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMFowFAYHKoZIzj0CAQYJKyQDAwIIAQEHA0IABIrx7INwTvoPESq93xWyRK3EyQgo\nyUE5QWeHAy3PDE4lcqOjH5W7KQAwdc45gJwiRFjhKKoXrO3eDMS9KYjluPc=\n-----END PUBLIC KEY-----\n", + "sha": "SHA-256", + "tests": [ + { + "tcId": 484, + "comment": "s = 2^128", + "flags": [ + "ValidSignature" + ], + "msg": "68656c6c6f2c20776f726c64", + "sig": "303602210082050aa6b1528c456650aa17bc396e8761baeef0dd085aa82b5e939e3b5cda7902110100000000000000000000000000000000", + "result": "valid" + }, + { + "tcId": 485, + "comment": "s = n - 2^128", + "flags": [ + "ValidSignature" + ], + "msg": "68656c6c6f2c20776f726c64", + "sig": "304602210082050aa6b1528c456650aa17bc396e8761baeef0dd085aa82b5e939e3b5cda79022100a9fb57dba1eea9bc3e660a909d838d708c397aa3b561a6f7901e0e82974856a7", + "result": "valid" + } + ] } ] }
diff --git a/third_party/wycheproof_testvectors/ecdsa_brainpoolP320r1_sha384_p1363_test.json b/third_party/wycheproof_testvectors/ecdsa_brainpoolP320r1_sha384_p1363_test.json index 8a77400..e9a0749 100644 --- a/third_party/wycheproof_testvectors/ecdsa_brainpoolP320r1_sha384_p1363_test.json +++ b/third_party/wycheproof_testvectors/ecdsa_brainpoolP320r1_sha384_p1363_test.json
@@ -1,7 +1,7 @@ { "algorithm": "ECDSA", "schema": "ecdsa_p1363_verify_schema_v1.json", - "numberOfTests": 263, + "numberOfTests": 265, "header": [ "Test vectors of type EcdsaVerify are meant for the verification", "of IEEE P1363 encoded ECDSA signatures." @@ -4732,6 +4732,46 @@ "result": "invalid" } ] + }, + { + "type": "EcdsaP1363Verify", + "source": { + "name": "github/davidben/ecdsa-s-pow2", + "version": "0.1" + }, + "publicKey": { + "type": "EcPublicKey", + "curve": "brainpoolP320r1", + "keySize": 320, + "uncompressed": "043d5bc090eeead820960c0a90715c7a6cf4aabafe1000a29ef64de4b2a80cbbf26e145a74afb52b61c538505b4bf65f5da00c709302a4cf38b9018e126cea2b42714bd884dcdbf5a1051df44e948b20d9", + "wx": "3d5bc090eeead820960c0a90715c7a6cf4aabafe1000a29ef64de4b2a80cbbf26e145a74afb52b61", + "wy": "c538505b4bf65f5da00c709302a4cf38b9018e126cea2b42714bd884dcdbf5a1051df44e948b20d9" + }, + "publicKeyDer": "306a301406072a8648ce3d020106092b2403030208010109035200043d5bc090eeead820960c0a90715c7a6cf4aabafe1000a29ef64de4b2a80cbbf26e145a74afb52b61c538505b4bf65f5da00c709302a4cf38b9018e126cea2b42714bd884dcdbf5a1051df44e948b20d9", + "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMGowFAYHKoZIzj0CAQYJKyQDAwIIAQEJA1IABD1bwJDu6tgglgwKkHFcemz0qrr+\nEACinvZN5LKoDLvybhRadK+1K2HFOFBbS/ZfXaAMcJMCpM84uQGOEmzqK0JxS9iE\n3Nv1oQUd9E6UiyDZ\n-----END PUBLIC KEY-----\n", + "sha": "SHA-384", + "tests": [ + { + "tcId": 264, + "comment": "s = 2^128", + "flags": [ + "ValidSignature" + ], + "msg": "68656c6c6f2c20776f726c64", + "sig": "981c72a30cd9547e7344f03ecca609c081ce92618e09d82fade07ae3804c8bf077eeffd6d6dfaebe00000000000000000000000000000000000000000000000100000000000000000000000000000000", + "result": "valid" + }, + { + "tcId": 265, + "comment": "s = n - 2^128", + "flags": [ + "ValidSignature" + ], + "msg": "68656c6c6f2c20776f726c64", + "sig": "981c72a30cd9547e7344f03ecca609c081ce92618e09d82fade07ae3804c8bf077eeffd6d6dfaebed35e472036bc4fb7e13c785ed201e065f98fcfa5b68f12a22d482ec7ee8658e98691555b44c59311", + "result": "valid" + } + ] } ] }
diff --git a/third_party/wycheproof_testvectors/ecdsa_brainpoolP320r1_sha384_test.json b/third_party/wycheproof_testvectors/ecdsa_brainpoolP320r1_sha384_test.json index 827f3c2..57d36f7 100644 --- a/third_party/wycheproof_testvectors/ecdsa_brainpoolP320r1_sha384_test.json +++ b/third_party/wycheproof_testvectors/ecdsa_brainpoolP320r1_sha384_test.json
@@ -1,7 +1,7 @@ { "algorithm": "ECDSA", "schema": "ecdsa_verify_schema_v1.json", - "numberOfTests": 487, + "numberOfTests": 489, "header": [ "Test vectors of type EcdsaVerify are meant for the verification", "of ASN encoded ECDSA signatures." @@ -7006,6 +7006,46 @@ "result": "invalid" } ] + }, + { + "type": "EcdsaVerify", + "source": { + "name": "github/davidben/ecdsa-s-pow2", + "version": "0.1" + }, + "publicKey": { + "type": "EcPublicKey", + "curve": "brainpoolP320r1", + "keySize": 320, + "uncompressed": "043d5bc090eeead820960c0a90715c7a6cf4aabafe1000a29ef64de4b2a80cbbf26e145a74afb52b61c538505b4bf65f5da00c709302a4cf38b9018e126cea2b42714bd884dcdbf5a1051df44e948b20d9", + "wx": "3d5bc090eeead820960c0a90715c7a6cf4aabafe1000a29ef64de4b2a80cbbf26e145a74afb52b61", + "wy": "c538505b4bf65f5da00c709302a4cf38b9018e126cea2b42714bd884dcdbf5a1051df44e948b20d9" + }, + "publicKeyDer": "306a301406072a8648ce3d020106092b2403030208010109035200043d5bc090eeead820960c0a90715c7a6cf4aabafe1000a29ef64de4b2a80cbbf26e145a74afb52b61c538505b4bf65f5da00c709302a4cf38b9018e126cea2b42714bd884dcdbf5a1051df44e948b20d9", + "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMGowFAYHKoZIzj0CAQYJKyQDAwIIAQEJA1IABD1bwJDu6tgglgwKkHFcemz0qrr+\nEACinvZN5LKoDLvybhRadK+1K2HFOFBbS/ZfXaAMcJMCpM84uQGOEmzqK0JxS9iE\n3Nv1oQUd9E6UiyDZ\n-----END PUBLIC KEY-----\n", + "sha": "SHA-384", + "tests": [ + { + "tcId": 488, + "comment": "s = 2^128", + "flags": [ + "ValidSignature" + ], + "msg": "68656c6c6f2c20776f726c64", + "sig": "303e022900981c72a30cd9547e7344f03ecca609c081ce92618e09d82fade07ae3804c8bf077eeffd6d6dfaebe02110100000000000000000000000000000000", + "result": "valid" + }, + { + "tcId": 489, + "comment": "s = n - 2^128", + "flags": [ + "ValidSignature" + ], + "msg": "68656c6c6f2c20776f726c64", + "sig": "3056022900981c72a30cd9547e7344f03ecca609c081ce92618e09d82fade07ae3804c8bf077eeffd6d6dfaebe022900d35e472036bc4fb7e13c785ed201e065f98fcfa5b68f12a22d482ec7ee8658e98691555b44c59311", + "result": "valid" + } + ] } ] }
diff --git a/third_party/wycheproof_testvectors/ecdsa_brainpoolP384r1_sha384_p1363_test.json b/third_party/wycheproof_testvectors/ecdsa_brainpoolP384r1_sha384_p1363_test.json index b8959d2..9f31ef5 100644 --- a/third_party/wycheproof_testvectors/ecdsa_brainpoolP384r1_sha384_p1363_test.json +++ b/third_party/wycheproof_testvectors/ecdsa_brainpoolP384r1_sha384_p1363_test.json
@@ -1,7 +1,7 @@ { "algorithm": "ECDSA", "schema": "ecdsa_p1363_verify_schema_v1.json", - "numberOfTests": 290, + "numberOfTests": 292, "header": [ "Test vectors of type EcdsaVerify are meant for the verification", "of IEEE P1363 encoded ECDSA signatures." @@ -5184,6 +5184,46 @@ "result": "invalid" } ] + }, + { + "type": "EcdsaP1363Verify", + "source": { + "name": "github/davidben/ecdsa-s-pow2", + "version": "0.1" + }, + "publicKey": { + "type": "EcPublicKey", + "curve": "brainpoolP384r1", + "keySize": 384, + "uncompressed": "042eab20120a069a394a2bbc79082f94221116cd9a49a68abec35a4d1cc4f3fa5b0ed06f01b19b8514ecdcf240492cd58656b0aa47d51c9c4047ce10428faaa67b132f161227e43287f1895f6f3e0f0afc74fc9c2479882d300212b6ad954506bb", + "wx": "2eab20120a069a394a2bbc79082f94221116cd9a49a68abec35a4d1cc4f3fa5b0ed06f01b19b8514ecdcf240492cd586", + "wy": "56b0aa47d51c9c4047ce10428faaa67b132f161227e43287f1895f6f3e0f0afc74fc9c2479882d300212b6ad954506bb" + }, + "publicKeyDer": "307a301406072a8648ce3d020106092b240303020801010b036200042eab20120a069a394a2bbc79082f94221116cd9a49a68abec35a4d1cc4f3fa5b0ed06f01b19b8514ecdcf240492cd58656b0aa47d51c9c4047ce10428faaa67b132f161227e43287f1895f6f3e0f0afc74fc9c2479882d300212b6ad954506bb", + "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMHowFAYHKoZIzj0CAQYJKyQDAwIIAQELA2IABC6rIBIKBpo5Siu8eQgvlCIRFs2a\nSaaKvsNaTRzE8/pbDtBvAbGbhRTs3PJASSzVhlawqkfVHJxAR84QQo+qpnsTLxYS\nJ+Qyh/GJX28+Dwr8dPycJHmILTACEratlUUGuw==\n-----END PUBLIC KEY-----\n", + "sha": "SHA-384", + "tests": [ + { + "tcId": 291, + "comment": "s = 2^128", + "flags": [ + "ValidSignature" + ], + "msg": "68656c6c6f2c20776f726c64", + "sig": "6068fc1ab386864f9dd260069c9549103c5cfe8e2a8fa5d8ff267ee7aafd5c2363b23a859b56064f541aac7b7bdfd120000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000", + "result": "valid" + }, + { + "tcId": 292, + "comment": "s = n - 2^128", + "flags": [ + "ValidSignature" + ], + "msg": "68656c6c6f2c20776f726c64", + "sig": "6068fc1ab386864f9dd260069c9549103c5cfe8e2a8fa5d8ff267ee7aafd5c2363b23a859b56064f541aac7b7bdfd1208cb91e82a3386d280f5d6f7e50e641df152f7109ed5456b31f166e6cac0425a6cf3ab6af6b7fc3103b883202e9046565", + "result": "valid" + } + ] } ] }
diff --git a/third_party/wycheproof_testvectors/ecdsa_brainpoolP384r1_sha384_test.json b/third_party/wycheproof_testvectors/ecdsa_brainpoolP384r1_sha384_test.json index 67987bf..39014e5 100644 --- a/third_party/wycheproof_testvectors/ecdsa_brainpoolP384r1_sha384_test.json +++ b/third_party/wycheproof_testvectors/ecdsa_brainpoolP384r1_sha384_test.json
@@ -1,7 +1,7 @@ { "algorithm": "ECDSA", "schema": "ecdsa_verify_schema_v1.json", - "numberOfTests": 514, + "numberOfTests": 516, "header": [ "Test vectors of type EcdsaVerify are meant for the verification", "of ASN encoded ECDSA signatures." @@ -7453,6 +7453,46 @@ "result": "invalid" } ] + }, + { + "type": "EcdsaVerify", + "source": { + "name": "github/davidben/ecdsa-s-pow2", + "version": "0.1" + }, + "publicKey": { + "type": "EcPublicKey", + "curve": "brainpoolP384r1", + "keySize": 384, + "uncompressed": "042eab20120a069a394a2bbc79082f94221116cd9a49a68abec35a4d1cc4f3fa5b0ed06f01b19b8514ecdcf240492cd58656b0aa47d51c9c4047ce10428faaa67b132f161227e43287f1895f6f3e0f0afc74fc9c2479882d300212b6ad954506bb", + "wx": "2eab20120a069a394a2bbc79082f94221116cd9a49a68abec35a4d1cc4f3fa5b0ed06f01b19b8514ecdcf240492cd586", + "wy": "56b0aa47d51c9c4047ce10428faaa67b132f161227e43287f1895f6f3e0f0afc74fc9c2479882d300212b6ad954506bb" + }, + "publicKeyDer": "307a301406072a8648ce3d020106092b240303020801010b036200042eab20120a069a394a2bbc79082f94221116cd9a49a68abec35a4d1cc4f3fa5b0ed06f01b19b8514ecdcf240492cd58656b0aa47d51c9c4047ce10428faaa67b132f161227e43287f1895f6f3e0f0afc74fc9c2479882d300212b6ad954506bb", + "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMHowFAYHKoZIzj0CAQYJKyQDAwIIAQELA2IABC6rIBIKBpo5Siu8eQgvlCIRFs2a\nSaaKvsNaTRzE8/pbDtBvAbGbhRTs3PJASSzVhlawqkfVHJxAR84QQo+qpnsTLxYS\nJ+Qyh/GJX28+Dwr8dPycJHmILTACEratlUUGuw==\n-----END PUBLIC KEY-----\n", + "sha": "SHA-384", + "tests": [ + { + "tcId": 515, + "comment": "s = 2^128", + "flags": [ + "ValidSignature" + ], + "msg": "68656c6c6f2c20776f726c64", + "sig": "304502306068fc1ab386864f9dd260069c9549103c5cfe8e2a8fa5d8ff267ee7aafd5c2363b23a859b56064f541aac7b7bdfd12002110100000000000000000000000000000000", + "result": "valid" + }, + { + "tcId": 516, + "comment": "s = n - 2^128", + "flags": [ + "ValidSignature" + ], + "msg": "68656c6c6f2c20776f726c64", + "sig": "306502306068fc1ab386864f9dd260069c9549103c5cfe8e2a8fa5d8ff267ee7aafd5c2363b23a859b56064f541aac7b7bdfd1200231008cb91e82a3386d280f5d6f7e50e641df152f7109ed5456b31f166e6cac0425a6cf3ab6af6b7fc3103b883202e9046565", + "result": "valid" + } + ] } ] }
diff --git a/third_party/wycheproof_testvectors/ecdsa_brainpoolP512r1_sha512_p1363_test.json b/third_party/wycheproof_testvectors/ecdsa_brainpoolP512r1_sha512_p1363_test.json index 46c8a84..30daf5d 100644 --- a/third_party/wycheproof_testvectors/ecdsa_brainpoolP512r1_sha512_p1363_test.json +++ b/third_party/wycheproof_testvectors/ecdsa_brainpoolP512r1_sha512_p1363_test.json
@@ -1,7 +1,7 @@ { "algorithm": "ECDSA", "schema": "ecdsa_p1363_verify_schema_v1.json", - "numberOfTests": 335, + "numberOfTests": 337, "header": [ "Test vectors of type EcdsaVerify are meant for the verification", "of IEEE P1363 encoded ECDSA signatures." @@ -5694,6 +5694,46 @@ "result": "invalid" } ] + }, + { + "type": "EcdsaP1363Verify", + "source": { + "name": "github/davidben/ecdsa-s-pow2", + "version": "0.1" + }, + "publicKey": { + "type": "EcPublicKey", + "curve": "brainpoolP512r1", + "keySize": 512, + "uncompressed": "04206b2ad718245aea23fcc88c8b1a199d56a20f6f10ce80a3816162fdebacde2d1e18ab725e5d01e36ec21844280ead44344eaafade7ffe47b71215e199a214eb4bef07b7b20d111b095e7f3a2299672a47db5145aa0d5ea8258458db3e16f948700b4fb5fce4b2098e95cd5965ad10ae012baad56222a435cd14842c55be4a5d", + "wx": "206b2ad718245aea23fcc88c8b1a199d56a20f6f10ce80a3816162fdebacde2d1e18ab725e5d01e36ec21844280ead44344eaafade7ffe47b71215e199a214eb", + "wy": "4bef07b7b20d111b095e7f3a2299672a47db5145aa0d5ea8258458db3e16f948700b4fb5fce4b2098e95cd5965ad10ae012baad56222a435cd14842c55be4a5d" + }, + "publicKeyDer": "30819b301406072a8648ce3d020106092b240303020801010d0381820004206b2ad718245aea23fcc88c8b1a199d56a20f6f10ce80a3816162fdebacde2d1e18ab725e5d01e36ec21844280ead44344eaafade7ffe47b71215e199a214eb4bef07b7b20d111b095e7f3a2299672a47db5145aa0d5ea8258458db3e16f948700b4fb5fce4b2098e95cd5965ad10ae012baad56222a435cd14842c55be4a5d", + "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMIGbMBQGByqGSM49AgEGCSskAwMCCAEBDQOBggAEIGsq1xgkWuoj/MiMixoZnVai\nD28QzoCjgWFi/eus3i0eGKtyXl0B427CGEQoDq1ENE6q+t5//ke3EhXhmaIU60vv\nB7eyDREbCV5/OiKZZypH21FFqg1eqCWEWNs+FvlIcAtPtfzksgmOlc1ZZa0QrgEr\nqtViIqQ1zRSELFW+Sl0=\n-----END PUBLIC KEY-----\n", + "sha": "SHA-512", + "tests": [ + { + "tcId": 336, + "comment": "s = 2^128", + "flags": [ + "ValidSignature" + ], + "msg": "68656c6c6f2c20776f726c64", + "sig": "3ee7dc0a46270f29a56ad048a1fe21c5665bd8e75e7f79c3b4a64cb48b30ff5faeadfb34f6e579be828a5458723e2d1669af9b690e2542919c5cadabdde5943400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000", + "result": "valid" + }, + { + "tcId": 337, + "comment": "s = n - 2^128", + "flags": [ + "ValidSignature" + ], + "msg": "68656c6c6f2c20776f726c64", + "sig": "3ee7dc0a46270f29a56ad048a1fe21c5665bd8e75e7f79c3b4a64cb48b30ff5faeadfb34f6e579be828a5458723e2d1669af9b690e2542919c5cadabdde59434aadd9db8dbe9c48b3fd4e6ae33c9fc07cb308db3b3c9d20ed6639cca70330870553e5c414ca92619418661197fac10461db1d381085ddaddb58796829ca90069", + "result": "valid" + } + ] } ] }
diff --git a/third_party/wycheproof_testvectors/ecdsa_brainpoolP512r1_sha512_test.json b/third_party/wycheproof_testvectors/ecdsa_brainpoolP512r1_sha512_test.json index 7e410f6..f316e66 100644 --- a/third_party/wycheproof_testvectors/ecdsa_brainpoolP512r1_sha512_test.json +++ b/third_party/wycheproof_testvectors/ecdsa_brainpoolP512r1_sha512_test.json
@@ -1,7 +1,7 @@ { "algorithm": "ECDSA", "schema": "ecdsa_verify_schema_v1.json", - "numberOfTests": 557, + "numberOfTests": 559, "header": [ "Test vectors of type EcdsaVerify are meant for the verification", "of ASN encoded ECDSA signatures." @@ -7941,6 +7941,46 @@ "result": "invalid" } ] + }, + { + "type": "EcdsaVerify", + "source": { + "name": "github/davidben/ecdsa-s-pow2", + "version": "0.1" + }, + "publicKey": { + "type": "EcPublicKey", + "curve": "brainpoolP512r1", + "keySize": 512, + "uncompressed": "04206b2ad718245aea23fcc88c8b1a199d56a20f6f10ce80a3816162fdebacde2d1e18ab725e5d01e36ec21844280ead44344eaafade7ffe47b71215e199a214eb4bef07b7b20d111b095e7f3a2299672a47db5145aa0d5ea8258458db3e16f948700b4fb5fce4b2098e95cd5965ad10ae012baad56222a435cd14842c55be4a5d", + "wx": "206b2ad718245aea23fcc88c8b1a199d56a20f6f10ce80a3816162fdebacde2d1e18ab725e5d01e36ec21844280ead44344eaafade7ffe47b71215e199a214eb", + "wy": "4bef07b7b20d111b095e7f3a2299672a47db5145aa0d5ea8258458db3e16f948700b4fb5fce4b2098e95cd5965ad10ae012baad56222a435cd14842c55be4a5d" + }, + "publicKeyDer": "30819b301406072a8648ce3d020106092b240303020801010d0381820004206b2ad718245aea23fcc88c8b1a199d56a20f6f10ce80a3816162fdebacde2d1e18ab725e5d01e36ec21844280ead44344eaafade7ffe47b71215e199a214eb4bef07b7b20d111b095e7f3a2299672a47db5145aa0d5ea8258458db3e16f948700b4fb5fce4b2098e95cd5965ad10ae012baad56222a435cd14842c55be4a5d", + "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMIGbMBQGByqGSM49AgEGCSskAwMCCAEBDQOBggAEIGsq1xgkWuoj/MiMixoZnVai\nD28QzoCjgWFi/eus3i0eGKtyXl0B427CGEQoDq1ENE6q+t5//ke3EhXhmaIU60vv\nB7eyDREbCV5/OiKZZypH21FFqg1eqCWEWNs+FvlIcAtPtfzksgmOlc1ZZa0QrgEr\nqtViIqQ1zRSELFW+Sl0=\n-----END PUBLIC KEY-----\n", + "sha": "SHA-512", + "tests": [ + { + "tcId": 558, + "comment": "s = 2^128", + "flags": [ + "ValidSignature" + ], + "msg": "68656c6c6f2c20776f726c64", + "sig": "305502403ee7dc0a46270f29a56ad048a1fe21c5665bd8e75e7f79c3b4a64cb48b30ff5faeadfb34f6e579be828a5458723e2d1669af9b690e2542919c5cadabdde5943402110100000000000000000000000000000000", + "result": "valid" + }, + { + "tcId": 559, + "comment": "s = n - 2^128", + "flags": [ + "ValidSignature" + ], + "msg": "68656c6c6f2c20776f726c64", + "sig": "30818502403ee7dc0a46270f29a56ad048a1fe21c5665bd8e75e7f79c3b4a64cb48b30ff5faeadfb34f6e579be828a5458723e2d1669af9b690e2542919c5cadabdde59434024100aadd9db8dbe9c48b3fd4e6ae33c9fc07cb308db3b3c9d20ed6639cca70330870553e5c414ca92619418661197fac10461db1d381085ddaddb58796829ca90069", + "result": "valid" + } + ] } ] }
diff --git a/third_party/wycheproof_testvectors/ecdsa_secp160k1_sha256_p1363_test.json b/third_party/wycheproof_testvectors/ecdsa_secp160k1_sha256_p1363_test.json index 340ebad..764c7f9 100644 --- a/third_party/wycheproof_testvectors/ecdsa_secp160k1_sha256_p1363_test.json +++ b/third_party/wycheproof_testvectors/ecdsa_secp160k1_sha256_p1363_test.json
@@ -1,7 +1,7 @@ { "algorithm": "ECDSA", "schema": "ecdsa_p1363_verify_schema_v1.json", - "numberOfTests": 222, + "numberOfTests": 224, "header": [ "Test vectors of type EcdsaVerify are meant for the verification", "of IEEE P1363 encoded ECDSA signatures." @@ -4142,6 +4142,46 @@ "result": "invalid" } ] + }, + { + "type": "EcdsaP1363Verify", + "source": { + "name": "github/davidben/ecdsa-s-pow2", + "version": "0.1" + }, + "publicKey": { + "type": "EcPublicKey", + "curve": "secp160k1", + "keySize": 160, + "uncompressed": "04174b3c3ed740cbe3fa7a2768892cea6ab3e4ed9660aa24c7c452e5bf7f87a8dbff8e6ba585c0dce1", + "wx": "174b3c3ed740cbe3fa7a2768892cea6ab3e4ed96", + "wy": "60aa24c7c452e5bf7f87a8dbff8e6ba585c0dce1" + }, + "publicKeyDer": "303e301006072a8648ce3d020106052b81040009032a0004174b3c3ed740cbe3fa7a2768892cea6ab3e4ed9660aa24c7c452e5bf7f87a8dbff8e6ba585c0dce1", + "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMD4wEAYHKoZIzj0CAQYFK4EEAAkDKgAEF0s8PtdAy+P6eidoiSzqarPk7ZZgqiTH\nxFLlv3+HqNv/jmulhcDc4Q==\n-----END PUBLIC KEY-----\n", + "sha": "SHA-256", + "tests": [ + { + "tcId": 223, + "comment": "s = 2^128", + "flags": [ + "ValidSignature" + ], + "msg": "68656c6c6f2c20776f726c64", + "sig": "00f64abe157132e614590c1f3dd573c6e9d6f24465000000000100000000000000000000000000000000", + "result": "valid" + }, + { + "tcId": 224, + "comment": "s = n - 2^128", + "flags": [ + "ValidSignature" + ], + "msg": "68656c6c6f2c20776f726c64", + "sig": "00f64abe157132e614590c1f3dd573c6e9d6f2446500ffffffff000000000001b8fa16dfab9aca16b6b3", + "result": "valid" + } + ] } ] }
diff --git a/third_party/wycheproof_testvectors/ecdsa_secp160k1_sha256_test.json b/third_party/wycheproof_testvectors/ecdsa_secp160k1_sha256_test.json index 9012dbc..3e5880f 100644 --- a/third_party/wycheproof_testvectors/ecdsa_secp160k1_sha256_test.json +++ b/third_party/wycheproof_testvectors/ecdsa_secp160k1_sha256_test.json
@@ -1,7 +1,7 @@ { "algorithm": "ECDSA", "schema": "ecdsa_verify_schema_v1.json", - "numberOfTests": 445, + "numberOfTests": 447, "header": [ "Test vectors of type EcdsaVerify are meant for the verification", "of ASN encoded ECDSA signatures." @@ -6404,6 +6404,46 @@ "result": "invalid" } ] + }, + { + "type": "EcdsaVerify", + "source": { + "name": "github/davidben/ecdsa-s-pow2", + "version": "0.1" + }, + "publicKey": { + "type": "EcPublicKey", + "curve": "secp160k1", + "keySize": 160, + "uncompressed": "04174b3c3ed740cbe3fa7a2768892cea6ab3e4ed9660aa24c7c452e5bf7f87a8dbff8e6ba585c0dce1", + "wx": "174b3c3ed740cbe3fa7a2768892cea6ab3e4ed96", + "wy": "60aa24c7c452e5bf7f87a8dbff8e6ba585c0dce1" + }, + "publicKeyDer": "303e301006072a8648ce3d020106052b81040009032a0004174b3c3ed740cbe3fa7a2768892cea6ab3e4ed9660aa24c7c452e5bf7f87a8dbff8e6ba585c0dce1", + "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMD4wEAYHKoZIzj0CAQYFK4EEAAkDKgAEF0s8PtdAy+P6eidoiSzqarPk7ZZgqiTH\nxFLlv3+HqNv/jmulhcDc4Q==\n-----END PUBLIC KEY-----\n", + "sha": "SHA-256", + "tests": [ + { + "tcId": 446, + "comment": "s = 2^128", + "flags": [ + "ValidSignature" + ], + "msg": "68656c6c6f2c20776f726c64", + "sig": "302a021500f64abe157132e614590c1f3dd573c6e9d6f2446502110100000000000000000000000000000000", + "result": "valid" + }, + { + "tcId": 447, + "comment": "s = n - 2^128", + "flags": [ + "ValidSignature" + ], + "msg": "68656c6c6f2c20776f726c64", + "sig": "302e021500f64abe157132e614590c1f3dd573c6e9d6f24465021500ffffffff000000000001b8fa16dfab9aca16b6b3", + "result": "valid" + } + ] } ] }
diff --git a/third_party/wycheproof_testvectors/ecdsa_secp160r1_sha256_p1363_test.json b/third_party/wycheproof_testvectors/ecdsa_secp160r1_sha256_p1363_test.json index 539afa2..04977f3 100644 --- a/third_party/wycheproof_testvectors/ecdsa_secp160r1_sha256_p1363_test.json +++ b/third_party/wycheproof_testvectors/ecdsa_secp160r1_sha256_p1363_test.json
@@ -1,7 +1,7 @@ { "algorithm": "ECDSA", "schema": "ecdsa_p1363_verify_schema_v1.json", - "numberOfTests": 226, + "numberOfTests": 228, "header": [ "Test vectors of type EcdsaVerify are meant for the verification", "of IEEE P1363 encoded ECDSA signatures." @@ -4245,6 +4245,46 @@ "result": "invalid" } ] + }, + { + "type": "EcdsaP1363Verify", + "source": { + "name": "github/davidben/ecdsa-s-pow2", + "version": "0.1" + }, + "publicKey": { + "type": "EcPublicKey", + "curve": "secp160r1", + "keySize": 160, + "uncompressed": "0438e974e6806ed396b0ad08cbd1cd1d21f608857d21dd9d59b27af25a3766438589b60e44c9fee90b", + "wx": "38e974e6806ed396b0ad08cbd1cd1d21f608857d", + "wy": "21dd9d59b27af25a3766438589b60e44c9fee90b" + }, + "publicKeyDer": "303e301006072a8648ce3d020106052b81040008032a000438e974e6806ed396b0ad08cbd1cd1d21f608857d21dd9d59b27af25a3766438589b60e44c9fee90b", + "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMD4wEAYHKoZIzj0CAQYFK4EEAAgDKgAEOOl05oBu05awrQjL0c0dIfYIhX0h3Z1Z\nsnryWjdmQ4WJtg5Eyf7pCw==\n-----END PUBLIC KEY-----\n", + "sha": "SHA-256", + "tests": [ + { + "tcId": 227, + "comment": "s = 2^128", + "flags": [ + "ValidSignature" + ], + "msg": "68656c6c6f2c20776f726c64", + "sig": "00484bca2a60bb74b76167ac65a841eab791d1cc4d000000000100000000000000000000000000000000", + "result": "valid" + }, + { + "tcId": 228, + "comment": "s = n - 2^128", + "flags": [ + "ValidSignature" + ], + "msg": "68656c6c6f2c20776f726c64", + "sig": "00484bca2a60bb74b76167ac65a841eab791d1cc4d00ffffffff000000000001f4c8f927aed3ca752257", + "result": "valid" + } + ] } ] }
diff --git a/third_party/wycheproof_testvectors/ecdsa_secp160r1_sha256_test.json b/third_party/wycheproof_testvectors/ecdsa_secp160r1_sha256_test.json index b8ab257..d84a563 100644 --- a/third_party/wycheproof_testvectors/ecdsa_secp160r1_sha256_test.json +++ b/third_party/wycheproof_testvectors/ecdsa_secp160r1_sha256_test.json
@@ -1,7 +1,7 @@ { "algorithm": "ECDSA", "schema": "ecdsa_verify_schema_v1.json", - "numberOfTests": 448, + "numberOfTests": 450, "header": [ "Test vectors of type EcdsaVerify are meant for the verification", "of ASN encoded ECDSA signatures." @@ -6495,6 +6495,46 @@ "result": "invalid" } ] + }, + { + "type": "EcdsaVerify", + "source": { + "name": "github/davidben/ecdsa-s-pow2", + "version": "0.1" + }, + "publicKey": { + "type": "EcPublicKey", + "curve": "secp160r1", + "keySize": 160, + "uncompressed": "0438e974e6806ed396b0ad08cbd1cd1d21f608857d21dd9d59b27af25a3766438589b60e44c9fee90b", + "wx": "38e974e6806ed396b0ad08cbd1cd1d21f608857d", + "wy": "21dd9d59b27af25a3766438589b60e44c9fee90b" + }, + "publicKeyDer": "303e301006072a8648ce3d020106052b81040008032a000438e974e6806ed396b0ad08cbd1cd1d21f608857d21dd9d59b27af25a3766438589b60e44c9fee90b", + "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMD4wEAYHKoZIzj0CAQYFK4EEAAgDKgAEOOl05oBu05awrQjL0c0dIfYIhX0h3Z1Z\nsnryWjdmQ4WJtg5Eyf7pCw==\n-----END PUBLIC KEY-----\n", + "sha": "SHA-256", + "tests": [ + { + "tcId": 449, + "comment": "s = 2^128", + "flags": [ + "ValidSignature" + ], + "msg": "68656c6c6f2c20776f726c64", + "sig": "30290214484bca2a60bb74b76167ac65a841eab791d1cc4d02110100000000000000000000000000000000", + "result": "valid" + }, + { + "tcId": 450, + "comment": "s = n - 2^128", + "flags": [ + "ValidSignature" + ], + "msg": "68656c6c6f2c20776f726c64", + "sig": "302d0214484bca2a60bb74b76167ac65a841eab791d1cc4d021500ffffffff000000000001f4c8f927aed3ca752257", + "result": "valid" + } + ] } ] }
diff --git a/third_party/wycheproof_testvectors/ecdsa_secp160r2_sha256_p1363_test.json b/third_party/wycheproof_testvectors/ecdsa_secp160r2_sha256_p1363_test.json index 577200a..7ca5ded 100644 --- a/third_party/wycheproof_testvectors/ecdsa_secp160r2_sha256_p1363_test.json +++ b/third_party/wycheproof_testvectors/ecdsa_secp160r2_sha256_p1363_test.json
@@ -1,7 +1,7 @@ { "algorithm": "ECDSA", "schema": "ecdsa_p1363_verify_schema_v1.json", - "numberOfTests": 225, + "numberOfTests": 227, "header": [ "Test vectors of type EcdsaVerify are meant for the verification", "of IEEE P1363 encoded ECDSA signatures." @@ -4213,6 +4213,46 @@ "result": "invalid" } ] + }, + { + "type": "EcdsaP1363Verify", + "source": { + "name": "github/davidben/ecdsa-s-pow2", + "version": "0.1" + }, + "publicKey": { + "type": "EcPublicKey", + "curve": "secp160r2", + "keySize": 160, + "uncompressed": "042397d090791e06aec7ad8cb0d2f421150554fe5479359f128aad04e37527ef5a94b5cd2143136264", + "wx": "2397d090791e06aec7ad8cb0d2f421150554fe54", + "wy": "79359f128aad04e37527ef5a94b5cd2143136264" + }, + "publicKeyDer": "303e301006072a8648ce3d020106052b8104001e032a00042397d090791e06aec7ad8cb0d2f421150554fe5479359f128aad04e37527ef5a94b5cd2143136264", + "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMD4wEAYHKoZIzj0CAQYFK4EEAB4DKgAEI5fQkHkeBq7HrYyw0vQhFQVU/lR5NZ8S\niq0E43Un71qUtc0hQxNiZA==\n-----END PUBLIC KEY-----\n", + "sha": "SHA-256", + "tests": [ + { + "tcId": 226, + "comment": "s = 2^128", + "flags": [ + "ValidSignature" + ], + "msg": "68656c6c6f2c20776f726c64", + "sig": "007f5e5c0aa986dc72d367a45ae778902868d4053c000000000100000000000000000000000000000000", + "result": "valid" + }, + { + "tcId": 227, + "comment": "s = n - 2^128", + "flags": [ + "ValidSignature" + ], + "msg": "68656c6c6f2c20776f726c64", + "sig": "007f5e5c0aa986dc72d367a45ae778902868d4053c00ffffffff000000000000351ee786a818f3a1a16b", + "result": "valid" + } + ] } ] }
diff --git a/third_party/wycheproof_testvectors/ecdsa_secp160r2_sha256_test.json b/third_party/wycheproof_testvectors/ecdsa_secp160r2_sha256_test.json index 8516392..7a46be2 100644 --- a/third_party/wycheproof_testvectors/ecdsa_secp160r2_sha256_test.json +++ b/third_party/wycheproof_testvectors/ecdsa_secp160r2_sha256_test.json
@@ -1,7 +1,7 @@ { "algorithm": "ECDSA", "schema": "ecdsa_verify_schema_v1.json", - "numberOfTests": 448, + "numberOfTests": 450, "header": [ "Test vectors of type EcdsaVerify are meant for the verification", "of ASN encoded ECDSA signatures." @@ -6469,6 +6469,46 @@ "result": "invalid" } ] + }, + { + "type": "EcdsaVerify", + "source": { + "name": "github/davidben/ecdsa-s-pow2", + "version": "0.1" + }, + "publicKey": { + "type": "EcPublicKey", + "curve": "secp160r2", + "keySize": 160, + "uncompressed": "042397d090791e06aec7ad8cb0d2f421150554fe5479359f128aad04e37527ef5a94b5cd2143136264", + "wx": "2397d090791e06aec7ad8cb0d2f421150554fe54", + "wy": "79359f128aad04e37527ef5a94b5cd2143136264" + }, + "publicKeyDer": "303e301006072a8648ce3d020106052b8104001e032a00042397d090791e06aec7ad8cb0d2f421150554fe5479359f128aad04e37527ef5a94b5cd2143136264", + "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMD4wEAYHKoZIzj0CAQYFK4EEAB4DKgAEI5fQkHkeBq7HrYyw0vQhFQVU/lR5NZ8S\niq0E43Un71qUtc0hQxNiZA==\n-----END PUBLIC KEY-----\n", + "sha": "SHA-256", + "tests": [ + { + "tcId": 449, + "comment": "s = 2^128", + "flags": [ + "ValidSignature" + ], + "msg": "68656c6c6f2c20776f726c64", + "sig": "302902147f5e5c0aa986dc72d367a45ae778902868d4053c02110100000000000000000000000000000000", + "result": "valid" + }, + { + "tcId": 450, + "comment": "s = n - 2^128", + "flags": [ + "ValidSignature" + ], + "msg": "68656c6c6f2c20776f726c64", + "sig": "302d02147f5e5c0aa986dc72d367a45ae778902868d4053c021500ffffffff000000000000351ee786a818f3a1a16b", + "result": "valid" + } + ] } ] }
diff --git a/third_party/wycheproof_testvectors/ecdsa_secp192k1_sha256_p1363_test.json b/third_party/wycheproof_testvectors/ecdsa_secp192k1_sha256_p1363_test.json index 8b62fef..f9639a3 100644 --- a/third_party/wycheproof_testvectors/ecdsa_secp192k1_sha256_p1363_test.json +++ b/third_party/wycheproof_testvectors/ecdsa_secp192k1_sha256_p1363_test.json
@@ -1,7 +1,7 @@ { "algorithm": "ECDSA", "schema": "ecdsa_p1363_verify_schema_v1.json", - "numberOfTests": 226, + "numberOfTests": 228, "header": [ "Test vectors of type EcdsaVerify are meant for the verification", "of IEEE P1363 encoded ECDSA signatures." @@ -4259,6 +4259,46 @@ "result": "invalid" } ] + }, + { + "type": "EcdsaP1363Verify", + "source": { + "name": "github/davidben/ecdsa-s-pow2", + "version": "0.1" + }, + "publicKey": { + "type": "EcPublicKey", + "curve": "secp192k1", + "keySize": 192, + "uncompressed": "04e906708f4863c277e7baae5e4c058a5a2d493dc4ebf12fe95960a352e9db79341ba8717b70800b09218735b056b393cd", + "wx": "e906708f4863c277e7baae5e4c058a5a2d493dc4ebf12fe9", + "wy": "5960a352e9db79341ba8717b70800b09218735b056b393cd" + }, + "publicKeyDer": "3046301006072a8648ce3d020106052b8104001f03320004e906708f4863c277e7baae5e4c058a5a2d493dc4ebf12fe95960a352e9db79341ba8717b70800b09218735b056b393cd", + "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMEYwEAYHKoZIzj0CAQYFK4EEAB8DMgAE6QZwj0hjwnfnuq5eTAWKWi1JPcTr8S/p\nWWCjUunbeTQbqHF7cIALCSGHNbBWs5PN\n-----END PUBLIC KEY-----\n", + "sha": "SHA-256", + "tests": [ + { + "tcId": 227, + "comment": "s = 2^128", + "flags": [ + "ValidSignature" + ], + "msg": "68656c6c6f2c20776f726c64", + "sig": "b42a6ed648cd4dcbf4e9c13c80a2be64efbaeab31234e59d000000000000000100000000000000000000000000000000", + "result": "valid" + }, + { + "tcId": 228, + "comment": "s = n - 2^128", + "flags": [ + "ValidSignature" + ], + "msg": "68656c6c6f2c20776f726c64", + "sig": "b42a6ed648cd4dcbf4e9c13c80a2be64efbaeab31234e59dfffffffffffffffefffffffe26f2fc170f69466a74defd8d", + "result": "valid" + } + ] } ] }
diff --git a/third_party/wycheproof_testvectors/ecdsa_secp192k1_sha256_test.json b/third_party/wycheproof_testvectors/ecdsa_secp192k1_sha256_test.json index 1d1e649..c9364c1 100644 --- a/third_party/wycheproof_testvectors/ecdsa_secp192k1_sha256_test.json +++ b/third_party/wycheproof_testvectors/ecdsa_secp192k1_sha256_test.json
@@ -1,7 +1,7 @@ { "algorithm": "ECDSA", "schema": "ecdsa_verify_schema_v1.json", - "numberOfTests": 450, + "numberOfTests": 452, "header": [ "Test vectors of type EcdsaVerify are meant for the verification", "of ASN encoded ECDSA signatures." @@ -6533,6 +6533,46 @@ "result": "invalid" } ] + }, + { + "type": "EcdsaVerify", + "source": { + "name": "github/davidben/ecdsa-s-pow2", + "version": "0.1" + }, + "publicKey": { + "type": "EcPublicKey", + "curve": "secp192k1", + "keySize": 192, + "uncompressed": "04e906708f4863c277e7baae5e4c058a5a2d493dc4ebf12fe95960a352e9db79341ba8717b70800b09218735b056b393cd", + "wx": "e906708f4863c277e7baae5e4c058a5a2d493dc4ebf12fe9", + "wy": "5960a352e9db79341ba8717b70800b09218735b056b393cd" + }, + "publicKeyDer": "3046301006072a8648ce3d020106052b8104001f03320004e906708f4863c277e7baae5e4c058a5a2d493dc4ebf12fe95960a352e9db79341ba8717b70800b09218735b056b393cd", + "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMEYwEAYHKoZIzj0CAQYFK4EEAB8DMgAE6QZwj0hjwnfnuq5eTAWKWi1JPcTr8S/p\nWWCjUunbeTQbqHF7cIALCSGHNbBWs5PN\n-----END PUBLIC KEY-----\n", + "sha": "SHA-256", + "tests": [ + { + "tcId": 451, + "comment": "s = 2^128", + "flags": [ + "ValidSignature" + ], + "msg": "68656c6c6f2c20776f726c64", + "sig": "302e021900b42a6ed648cd4dcbf4e9c13c80a2be64efbaeab31234e59d02110100000000000000000000000000000000", + "result": "valid" + }, + { + "tcId": 452, + "comment": "s = n - 2^128", + "flags": [ + "ValidSignature" + ], + "msg": "68656c6c6f2c20776f726c64", + "sig": "3036021900b42a6ed648cd4dcbf4e9c13c80a2be64efbaeab31234e59d021900fffffffffffffffefffffffe26f2fc170f69466a74defd8d", + "result": "valid" + } + ] } ] }
diff --git a/third_party/wycheproof_testvectors/ecdsa_secp192r1_sha256_p1363_test.json b/third_party/wycheproof_testvectors/ecdsa_secp192r1_sha256_p1363_test.json index 1d4111e..67e5ac5 100644 --- a/third_party/wycheproof_testvectors/ecdsa_secp192r1_sha256_p1363_test.json +++ b/third_party/wycheproof_testvectors/ecdsa_secp192r1_sha256_p1363_test.json
@@ -1,7 +1,7 @@ { "algorithm": "ECDSA", "schema": "ecdsa_p1363_verify_schema_v1.json", - "numberOfTests": 228, + "numberOfTests": 230, "header": [ "Test vectors of type EcdsaVerify are meant for the verification", "of IEEE P1363 encoded ECDSA signatures." @@ -4319,6 +4319,46 @@ "result": "invalid" } ] + }, + { + "type": "EcdsaP1363Verify", + "source": { + "name": "github/davidben/ecdsa-s-pow2", + "version": "0.1" + }, + "publicKey": { + "type": "EcPublicKey", + "curve": "secp192r1", + "keySize": 192, + "uncompressed": "04995e741eafa84ed82e5bf223b8124d431294d2ac4c856eba326744dba99b536399b0af0150dc33d6f6152f181e2fedc7", + "wx": "995e741eafa84ed82e5bf223b8124d431294d2ac4c856eba", + "wy": "326744dba99b536399b0af0150dc33d6f6152f181e2fedc7" + }, + "publicKeyDer": "3049301306072a8648ce3d020106082a8648ce3d03010103320004995e741eafa84ed82e5bf223b8124d431294d2ac4c856eba326744dba99b536399b0af0150dc33d6f6152f181e2fedc7", + "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMEkwEwYHKoZIzj0CAQYIKoZIzj0DAQEDMgAEmV50Hq+oTtguW/IjuBJNQxKU0qxM\nhW66MmdE26mbU2OZsK8BUNwz1vYVLxgeL+3H\n-----END PUBLIC KEY-----\n", + "sha": "SHA-256", + "tests": [ + { + "tcId": 229, + "comment": "s = 2^128", + "flags": [ + "ValidSignature" + ], + "msg": "68656c6c6f2c20776f726c64", + "sig": "139b649957b7440f64f8d2b9806dbd492926d8d192122702000000000000000100000000000000000000000000000000", + "result": "valid" + }, + { + "tcId": 230, + "comment": "s = n - 2^128", + "flags": [ + "ValidSignature" + ], + "msg": "68656c6c6f2c20776f726c64", + "sig": "139b649957b7440f64f8d2b9806dbd492926d8d192122702fffffffffffffffeffffffff99def836146bc9b1b4d22831", + "result": "valid" + } + ] } ] }
diff --git a/third_party/wycheproof_testvectors/ecdsa_secp192r1_sha256_test.json b/third_party/wycheproof_testvectors/ecdsa_secp192r1_sha256_test.json index baeb9ea..1e8d188 100644 --- a/third_party/wycheproof_testvectors/ecdsa_secp192r1_sha256_test.json +++ b/third_party/wycheproof_testvectors/ecdsa_secp192r1_sha256_test.json
@@ -1,7 +1,7 @@ { "algorithm": "ECDSA", "schema": "ecdsa_verify_schema_v1.json", - "numberOfTests": 452, + "numberOfTests": 454, "header": [ "Test vectors of type EcdsaVerify are meant for the verification", "of ASN encoded ECDSA signatures." @@ -6593,6 +6593,46 @@ "result": "invalid" } ] + }, + { + "type": "EcdsaVerify", + "source": { + "name": "github/davidben/ecdsa-s-pow2", + "version": "0.1" + }, + "publicKey": { + "type": "EcPublicKey", + "curve": "secp192r1", + "keySize": 192, + "uncompressed": "04995e741eafa84ed82e5bf223b8124d431294d2ac4c856eba326744dba99b536399b0af0150dc33d6f6152f181e2fedc7", + "wx": "995e741eafa84ed82e5bf223b8124d431294d2ac4c856eba", + "wy": "326744dba99b536399b0af0150dc33d6f6152f181e2fedc7" + }, + "publicKeyDer": "3049301306072a8648ce3d020106082a8648ce3d03010103320004995e741eafa84ed82e5bf223b8124d431294d2ac4c856eba326744dba99b536399b0af0150dc33d6f6152f181e2fedc7", + "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMEkwEwYHKoZIzj0CAQYIKoZIzj0DAQEDMgAEmV50Hq+oTtguW/IjuBJNQxKU0qxM\nhW66MmdE26mbU2OZsK8BUNwz1vYVLxgeL+3H\n-----END PUBLIC KEY-----\n", + "sha": "SHA-256", + "tests": [ + { + "tcId": 453, + "comment": "s = 2^128", + "flags": [ + "ValidSignature" + ], + "msg": "68656c6c6f2c20776f726c64", + "sig": "302d0218139b649957b7440f64f8d2b9806dbd492926d8d19212270202110100000000000000000000000000000000", + "result": "valid" + }, + { + "tcId": 454, + "comment": "s = n - 2^128", + "flags": [ + "ValidSignature" + ], + "msg": "68656c6c6f2c20776f726c64", + "sig": "30350218139b649957b7440f64f8d2b9806dbd492926d8d192122702021900fffffffffffffffeffffffff99def836146bc9b1b4d22831", + "result": "valid" + } + ] } ] }
diff --git a/third_party/wycheproof_testvectors/ecdsa_secp224k1_sha224_p1363_test.json b/third_party/wycheproof_testvectors/ecdsa_secp224k1_sha224_p1363_test.json index 9ab648c..ca7cd78 100644 --- a/third_party/wycheproof_testvectors/ecdsa_secp224k1_sha224_p1363_test.json +++ b/third_party/wycheproof_testvectors/ecdsa_secp224k1_sha224_p1363_test.json
@@ -1,7 +1,7 @@ { "algorithm": "ECDSA", "schema": "ecdsa_p1363_verify_schema_v1.json", - "numberOfTests": 195, + "numberOfTests": 197, "header": [ "Test vectors of type EcdsaVerify are meant for the verification", "of IEEE P1363 encoded ECDSA signatures." @@ -3872,6 +3872,46 @@ "result": "invalid" } ] + }, + { + "type": "EcdsaP1363Verify", + "source": { + "name": "github/davidben/ecdsa-s-pow2", + "version": "0.1" + }, + "publicKey": { + "type": "EcPublicKey", + "curve": "secp224k1", + "keySize": 224, + "uncompressed": "041f6566bd4aeedc05dd2b4360418ae46cbb5ac03937fe4c5e1899c08a9f1f90867f4d868883a972bdb7ff1db0ef8b912e5348e560158eba30", + "wx": "1f6566bd4aeedc05dd2b4360418ae46cbb5ac03937fe4c5e1899c08a", + "wy": "9f1f90867f4d868883a972bdb7ff1db0ef8b912e5348e560158eba30" + }, + "publicKeyDer": "304e301006072a8648ce3d020106052b81040020033a00041f6566bd4aeedc05dd2b4360418ae46cbb5ac03937fe4c5e1899c08a9f1f90867f4d868883a972bdb7ff1db0ef8b912e5348e560158eba30", + "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nME4wEAYHKoZIzj0CAQYFK4EEACADOgAEH2VmvUru3AXdK0NgQYrkbLtawDk3/kxe\nGJnAip8fkIZ/TYaIg6lyvbf/HbDvi5EuU0jlYBWOujA=\n-----END PUBLIC KEY-----\n", + "sha": "SHA-224", + "tests": [ + { + "tcId": 196, + "comment": "s = 2^128", + "flags": [ + "ValidSignature" + ], + "msg": "68656c6c6f2c20776f726c64", + "sig": "00940de249aeb45e09d57af872c6cde336280fa2428bd01e25a139a32f0000000000000000000000000100000000000000000000000000000000", + "result": "valid" + }, + { + "tcId": 197, + "comment": "s = n - 2^128", + "flags": [ + "ValidSignature" + ], + "msg": "68656c6c6f2c20776f726c64", + "sig": "00940de249aeb45e09d57af872c6cde336280fa2428bd01e25a139a32f00ffffffffffffffffffffffff0001dce8d2ec6184caf0a971769fb1f7", + "result": "valid" + } + ] } ] }
diff --git a/third_party/wycheproof_testvectors/ecdsa_secp224k1_sha224_test.json b/third_party/wycheproof_testvectors/ecdsa_secp224k1_sha224_test.json index e22f691..4dab911 100644 --- a/third_party/wycheproof_testvectors/ecdsa_secp224k1_sha224_test.json +++ b/third_party/wycheproof_testvectors/ecdsa_secp224k1_sha224_test.json
@@ -1,7 +1,7 @@ { "algorithm": "ECDSA", "schema": "ecdsa_verify_schema_v1.json", - "numberOfTests": 416, + "numberOfTests": 418, "header": [ "Test vectors of type EcdsaVerify are meant for the verification", "of ASN encoded ECDSA signatures." @@ -6112,6 +6112,46 @@ "result": "invalid" } ] + }, + { + "type": "EcdsaVerify", + "source": { + "name": "github/davidben/ecdsa-s-pow2", + "version": "0.1" + }, + "publicKey": { + "type": "EcPublicKey", + "curve": "secp224k1", + "keySize": 224, + "uncompressed": "041f6566bd4aeedc05dd2b4360418ae46cbb5ac03937fe4c5e1899c08a9f1f90867f4d868883a972bdb7ff1db0ef8b912e5348e560158eba30", + "wx": "1f6566bd4aeedc05dd2b4360418ae46cbb5ac03937fe4c5e1899c08a", + "wy": "9f1f90867f4d868883a972bdb7ff1db0ef8b912e5348e560158eba30" + }, + "publicKeyDer": "304e301006072a8648ce3d020106052b81040020033a00041f6566bd4aeedc05dd2b4360418ae46cbb5ac03937fe4c5e1899c08a9f1f90867f4d868883a972bdb7ff1db0ef8b912e5348e560158eba30", + "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nME4wEAYHKoZIzj0CAQYFK4EEACADOgAEH2VmvUru3AXdK0NgQYrkbLtawDk3/kxe\nGJnAip8fkIZ/TYaIg6lyvbf/HbDvi5EuU0jlYBWOujA=\n-----END PUBLIC KEY-----\n", + "sha": "SHA-224", + "tests": [ + { + "tcId": 417, + "comment": "s = 2^128", + "flags": [ + "ValidSignature" + ], + "msg": "68656c6c6f2c20776f726c64", + "sig": "3032021d00940de249aeb45e09d57af872c6cde336280fa2428bd01e25a139a32f02110100000000000000000000000000000000", + "result": "valid" + }, + { + "tcId": 418, + "comment": "s = n - 2^128", + "flags": [ + "ValidSignature" + ], + "msg": "68656c6c6f2c20776f726c64", + "sig": "303e021d00940de249aeb45e09d57af872c6cde336280fa2428bd01e25a139a32f021d00ffffffffffffffffffffffff0001dce8d2ec6184caf0a971769fb1f7", + "result": "valid" + } + ] } ] }
diff --git a/third_party/wycheproof_testvectors/ecdsa_secp224k1_sha256_p1363_test.json b/third_party/wycheproof_testvectors/ecdsa_secp224k1_sha256_p1363_test.json index fc48d39..e2a9525 100644 --- a/third_party/wycheproof_testvectors/ecdsa_secp224k1_sha256_p1363_test.json +++ b/third_party/wycheproof_testvectors/ecdsa_secp224k1_sha256_p1363_test.json
@@ -1,7 +1,7 @@ { "algorithm": "ECDSA", "schema": "ecdsa_p1363_verify_schema_v1.json", - "numberOfTests": 224, + "numberOfTests": 226, "header": [ "Test vectors of type EcdsaVerify are meant for the verification", "of IEEE P1363 encoded ECDSA signatures." @@ -4166,6 +4166,46 @@ "result": "invalid" } ] + }, + { + "type": "EcdsaP1363Verify", + "source": { + "name": "github/davidben/ecdsa-s-pow2", + "version": "0.1" + }, + "publicKey": { + "type": "EcPublicKey", + "curve": "secp224k1", + "keySize": 224, + "uncompressed": "04bd3a5371b3c8b9b9a063acdcd192bfe81a8c13a6ad8af15f31ae49099ee1a1120f2321886e13399072becdb43da55f8a41fa070620da2813", + "wx": "bd3a5371b3c8b9b9a063acdcd192bfe81a8c13a6ad8af15f31ae4909", + "wy": "9ee1a1120f2321886e13399072becdb43da55f8a41fa070620da2813" + }, + "publicKeyDer": "304e301006072a8648ce3d020106052b81040020033a0004bd3a5371b3c8b9b9a063acdcd192bfe81a8c13a6ad8af15f31ae49099ee1a1120f2321886e13399072becdb43da55f8a41fa070620da2813", + "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nME4wEAYHKoZIzj0CAQYFK4EEACADOgAEvTpTcbPIubmgY6zc0ZK/6BqME6ativFf\nMa5JCZ7hoRIPIyGIbhM5kHK+zbQ9pV+KQfoHBiDaKBM=\n-----END PUBLIC KEY-----\n", + "sha": "SHA-256", + "tests": [ + { + "tcId": 225, + "comment": "s = 2^128", + "flags": [ + "ValidSignature" + ], + "msg": "68656c6c6f2c20776f726c64", + "sig": "00940de249aeb45e09d57af872c6cde336280fa2428bd01e25a139a32f0000000000000000000000000100000000000000000000000000000000", + "result": "valid" + }, + { + "tcId": 226, + "comment": "s = n - 2^128", + "flags": [ + "ValidSignature" + ], + "msg": "68656c6c6f2c20776f726c64", + "sig": "00940de249aeb45e09d57af872c6cde336280fa2428bd01e25a139a32f00ffffffffffffffffffffffff0001dce8d2ec6184caf0a971769fb1f7", + "result": "valid" + } + ] } ] }
diff --git a/third_party/wycheproof_testvectors/ecdsa_secp224k1_sha256_test.json b/third_party/wycheproof_testvectors/ecdsa_secp224k1_sha256_test.json index 9074fde..7bd2e8d 100644 --- a/third_party/wycheproof_testvectors/ecdsa_secp224k1_sha256_test.json +++ b/third_party/wycheproof_testvectors/ecdsa_secp224k1_sha256_test.json
@@ -1,7 +1,7 @@ { "algorithm": "ECDSA", "schema": "ecdsa_verify_schema_v1.json", - "numberOfTests": 446, + "numberOfTests": 448, "header": [ "Test vectors of type EcdsaVerify are meant for the verification", "of ASN encoded ECDSA signatures." @@ -6416,6 +6416,46 @@ "result": "invalid" } ] + }, + { + "type": "EcdsaVerify", + "source": { + "name": "github/davidben/ecdsa-s-pow2", + "version": "0.1" + }, + "publicKey": { + "type": "EcPublicKey", + "curve": "secp224k1", + "keySize": 224, + "uncompressed": "04bd3a5371b3c8b9b9a063acdcd192bfe81a8c13a6ad8af15f31ae49099ee1a1120f2321886e13399072becdb43da55f8a41fa070620da2813", + "wx": "bd3a5371b3c8b9b9a063acdcd192bfe81a8c13a6ad8af15f31ae4909", + "wy": "9ee1a1120f2321886e13399072becdb43da55f8a41fa070620da2813" + }, + "publicKeyDer": "304e301006072a8648ce3d020106052b81040020033a0004bd3a5371b3c8b9b9a063acdcd192bfe81a8c13a6ad8af15f31ae49099ee1a1120f2321886e13399072becdb43da55f8a41fa070620da2813", + "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nME4wEAYHKoZIzj0CAQYFK4EEACADOgAEvTpTcbPIubmgY6zc0ZK/6BqME6ativFf\nMa5JCZ7hoRIPIyGIbhM5kHK+zbQ9pV+KQfoHBiDaKBM=\n-----END PUBLIC KEY-----\n", + "sha": "SHA-256", + "tests": [ + { + "tcId": 447, + "comment": "s = 2^128", + "flags": [ + "ValidSignature" + ], + "msg": "68656c6c6f2c20776f726c64", + "sig": "3032021d00940de249aeb45e09d57af872c6cde336280fa2428bd01e25a139a32f02110100000000000000000000000000000000", + "result": "valid" + }, + { + "tcId": 448, + "comment": "s = n - 2^128", + "flags": [ + "ValidSignature" + ], + "msg": "68656c6c6f2c20776f726c64", + "sig": "303e021d00940de249aeb45e09d57af872c6cde336280fa2428bd01e25a139a32f021d00ffffffffffffffffffffffff0001dce8d2ec6184caf0a971769fb1f7", + "result": "valid" + } + ] } ] }
diff --git a/third_party/wycheproof_testvectors/ecdsa_secp224r1_sha224_p1363_test.json b/third_party/wycheproof_testvectors/ecdsa_secp224r1_sha224_p1363_test.json index f1ba81d..2b21445 100644 --- a/third_party/wycheproof_testvectors/ecdsa_secp224r1_sha224_p1363_test.json +++ b/third_party/wycheproof_testvectors/ecdsa_secp224r1_sha224_p1363_test.json
@@ -1,7 +1,7 @@ { "algorithm": "ECDSA", "schema": "ecdsa_p1363_verify_schema_v1.json", - "numberOfTests": 227, + "numberOfTests": 229, "header": [ "Test vectors of type EcdsaVerify are meant for the verification", "of IEEE P1363 encoded ECDSA signatures." @@ -4454,6 +4454,46 @@ "result": "invalid" } ] + }, + { + "type": "EcdsaP1363Verify", + "source": { + "name": "github/davidben/ecdsa-s-pow2", + "version": "0.1" + }, + "publicKey": { + "type": "EcPublicKey", + "curve": "secp224r1", + "keySize": 224, + "uncompressed": "043c1269b201b9e9bfa9a6b37275e18165deffaeecff3730dab7b76fd894547d7f70b65f2c53d2e8c2ef3d46124f589403abdf381b8399251b", + "wx": "3c1269b201b9e9bfa9a6b37275e18165deffaeecff3730dab7b76fd8", + "wy": "94547d7f70b65f2c53d2e8c2ef3d46124f589403abdf381b8399251b" + }, + "publicKeyDer": "304e301006072a8648ce3d020106052b81040021033a00043c1269b201b9e9bfa9a6b37275e18165deffaeecff3730dab7b76fd894547d7f70b65f2c53d2e8c2ef3d46124f589403abdf381b8399251b", + "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nME4wEAYHKoZIzj0CAQYFK4EEACEDOgAEPBJpsgG56b+pprNydeGBZd7/ruz/NzDa\nt7dv2JRUfX9wtl8sU9Lowu89RhJPWJQDq984G4OZJRs=\n-----END PUBLIC KEY-----\n", + "sha": "SHA-224", + "tests": [ + { + "tcId": 228, + "comment": "s = 2^128", + "flags": [ + "ValidSignature" + ], + "msg": "68656c6c6f2c20776f726c64", + "sig": "96cd1b74f0be055d2d35ba25d70b0f75a5ab5d3faee363652224cc7e00000000000000000000000100000000000000000000000000000000", + "result": "valid" + }, + { + "tcId": 229, + "comment": "s = n - 2^128", + "flags": [ + "ValidSignature" + ], + "msg": "68656c6c6f2c20776f726c64", + "sig": "96cd1b74f0be055d2d35ba25d70b0f75a5ab5d3faee363652224cc7efffffffffffffffffffffffeffff16a2e0b8f03e13dd29455c5c2a3d", + "result": "valid" + } + ] } ] }
diff --git a/third_party/wycheproof_testvectors/ecdsa_secp224r1_sha224_p1363_test.txt b/third_party/wycheproof_testvectors/ecdsa_secp224r1_sha224_p1363_test.txt index 894021b..28e2c9d 100644 --- a/third_party/wycheproof_testvectors/ecdsa_secp224r1_sha224_p1363_test.txt +++ b/third_party/wycheproof_testvectors/ecdsa_secp224r1_sha224_p1363_test.txt
@@ -2521,3 +2521,26 @@ sig = 0000000000000000000000000000e95d1f470fc1ec22d6baa3a3d5c6ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3a flags = ArithmeticError +[publicKey.curve = secp224r1] +[publicKey.keySize = 224] +[publicKey.type = EcPublicKey] +[publicKey.uncompressed = 043c1269b201b9e9bfa9a6b37275e18165deffaeecff3730dab7b76fd894547d7f70b65f2c53d2e8c2ef3d46124f589403abdf381b8399251b] +[publicKey.wx = 3c1269b201b9e9bfa9a6b37275e18165deffaeecff3730dab7b76fd8] +[publicKey.wy = 94547d7f70b65f2c53d2e8c2ef3d46124f589403abdf381b8399251b] +[publicKeyDer = 304e301006072a8648ce3d020106052b81040021033a00043c1269b201b9e9bfa9a6b37275e18165deffaeecff3730dab7b76fd894547d7f70b65f2c53d2e8c2ef3d46124f589403abdf381b8399251b] +[sha = SHA-224] + +# tcId = 228 +# s = 2^128 +msg = 68656c6c6f2c20776f726c64 +result = valid +sig = 96cd1b74f0be055d2d35ba25d70b0f75a5ab5d3faee363652224cc7e00000000000000000000000100000000000000000000000000000000 +flags = ValidSignature + +# tcId = 229 +# s = n - 2^128 +msg = 68656c6c6f2c20776f726c64 +result = valid +sig = 96cd1b74f0be055d2d35ba25d70b0f75a5ab5d3faee363652224cc7efffffffffffffffffffffffeffff16a2e0b8f03e13dd29455c5c2a3d +flags = ValidSignature +
diff --git a/third_party/wycheproof_testvectors/ecdsa_secp224r1_sha224_test.json b/third_party/wycheproof_testvectors/ecdsa_secp224r1_sha224_test.json index 90797f9..4fc3725 100644 --- a/third_party/wycheproof_testvectors/ecdsa_secp224r1_sha224_test.json +++ b/third_party/wycheproof_testvectors/ecdsa_secp224r1_sha224_test.json
@@ -1,7 +1,7 @@ { "algorithm": "ECDSA", "schema": "ecdsa_verify_schema_v1.json", - "numberOfTests": 450, + "numberOfTests": 452, "header": [ "Test vectors of type EcdsaVerify are meant for the verification", "of ASN encoded ECDSA signatures." @@ -6716,6 +6716,46 @@ "result": "invalid" } ] + }, + { + "type": "EcdsaVerify", + "source": { + "name": "github/davidben/ecdsa-s-pow2", + "version": "0.1" + }, + "publicKey": { + "type": "EcPublicKey", + "curve": "secp224r1", + "keySize": 224, + "uncompressed": "043c1269b201b9e9bfa9a6b37275e18165deffaeecff3730dab7b76fd894547d7f70b65f2c53d2e8c2ef3d46124f589403abdf381b8399251b", + "wx": "3c1269b201b9e9bfa9a6b37275e18165deffaeecff3730dab7b76fd8", + "wy": "94547d7f70b65f2c53d2e8c2ef3d46124f589403abdf381b8399251b" + }, + "publicKeyDer": "304e301006072a8648ce3d020106052b81040021033a00043c1269b201b9e9bfa9a6b37275e18165deffaeecff3730dab7b76fd894547d7f70b65f2c53d2e8c2ef3d46124f589403abdf381b8399251b", + "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nME4wEAYHKoZIzj0CAQYFK4EEACEDOgAEPBJpsgG56b+pprNydeGBZd7/ruz/NzDa\nt7dv2JRUfX9wtl8sU9Lowu89RhJPWJQDq984G4OZJRs=\n-----END PUBLIC KEY-----\n", + "sha": "SHA-224", + "tests": [ + { + "tcId": 451, + "comment": "s = 2^128", + "flags": [ + "ValidSignature" + ], + "msg": "68656c6c6f2c20776f726c64", + "sig": "3032021d0096cd1b74f0be055d2d35ba25d70b0f75a5ab5d3faee363652224cc7e02110100000000000000000000000000000000", + "result": "valid" + }, + { + "tcId": 452, + "comment": "s = n - 2^128", + "flags": [ + "ValidSignature" + ], + "msg": "68656c6c6f2c20776f726c64", + "sig": "303e021d0096cd1b74f0be055d2d35ba25d70b0f75a5ab5d3faee363652224cc7e021d00fffffffffffffffffffffffeffff16a2e0b8f03e13dd29455c5c2a3d", + "result": "valid" + } + ] } ] }
diff --git a/third_party/wycheproof_testvectors/ecdsa_secp224r1_sha224_test.txt b/third_party/wycheproof_testvectors/ecdsa_secp224r1_sha224_test.txt index 7b070c0..8b8249e 100644 --- a/third_party/wycheproof_testvectors/ecdsa_secp224r1_sha224_test.txt +++ b/third_party/wycheproof_testvectors/ecdsa_secp224r1_sha224_test.txt
@@ -4093,3 +4093,26 @@ sig = 3030020f00e95d1f470fc1ec22d6baa3a3d5c6021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3a flags = ArithmeticError +[publicKey.curve = secp224r1] +[publicKey.keySize = 224] +[publicKey.type = EcPublicKey] +[publicKey.uncompressed = 043c1269b201b9e9bfa9a6b37275e18165deffaeecff3730dab7b76fd894547d7f70b65f2c53d2e8c2ef3d46124f589403abdf381b8399251b] +[publicKey.wx = 3c1269b201b9e9bfa9a6b37275e18165deffaeecff3730dab7b76fd8] +[publicKey.wy = 94547d7f70b65f2c53d2e8c2ef3d46124f589403abdf381b8399251b] +[publicKeyDer = 304e301006072a8648ce3d020106052b81040021033a00043c1269b201b9e9bfa9a6b37275e18165deffaeecff3730dab7b76fd894547d7f70b65f2c53d2e8c2ef3d46124f589403abdf381b8399251b] +[sha = SHA-224] + +# tcId = 451 +# s = 2^128 +msg = 68656c6c6f2c20776f726c64 +result = valid +sig = 3032021d0096cd1b74f0be055d2d35ba25d70b0f75a5ab5d3faee363652224cc7e02110100000000000000000000000000000000 +flags = ValidSignature + +# tcId = 452 +# s = n - 2^128 +msg = 68656c6c6f2c20776f726c64 +result = valid +sig = 303e021d0096cd1b74f0be055d2d35ba25d70b0f75a5ab5d3faee363652224cc7e021d00fffffffffffffffffffffffeffff16a2e0b8f03e13dd29455c5c2a3d +flags = ValidSignature +
diff --git a/third_party/wycheproof_testvectors/ecdsa_secp224r1_sha256_p1363_test.json b/third_party/wycheproof_testvectors/ecdsa_secp224r1_sha256_p1363_test.json index 0a6fca5..2931761 100644 --- a/third_party/wycheproof_testvectors/ecdsa_secp224r1_sha256_p1363_test.json +++ b/third_party/wycheproof_testvectors/ecdsa_secp224r1_sha256_p1363_test.json
@@ -1,7 +1,7 @@ { "algorithm": "ECDSA", "schema": "ecdsa_p1363_verify_schema_v1.json", - "numberOfTests": 256, + "numberOfTests": 258, "header": [ "Test vectors of type EcdsaVerify are meant for the verification", "of IEEE P1363 encoded ECDSA signatures." @@ -4748,6 +4748,46 @@ "result": "invalid" } ] + }, + { + "type": "EcdsaP1363Verify", + "source": { + "name": "github/davidben/ecdsa-s-pow2", + "version": "0.1" + }, + "publicKey": { + "type": "EcPublicKey", + "curve": "secp224r1", + "keySize": 224, + "uncompressed": "04fd24ceb6236d962f8e30f5874cd527ec548cd2e518d5ac4d3635b1457cdf47f994d1eb8f87577dd47b0726711e234996051ba3f074a322c7", + "wx": "fd24ceb6236d962f8e30f5874cd527ec548cd2e518d5ac4d3635b145", + "wy": "7cdf47f994d1eb8f87577dd47b0726711e234996051ba3f074a322c7" + }, + "publicKeyDer": "304e301006072a8648ce3d020106052b81040021033a0004fd24ceb6236d962f8e30f5874cd527ec548cd2e518d5ac4d3635b1457cdf47f994d1eb8f87577dd47b0726711e234996051ba3f074a322c7", + "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nME4wEAYHKoZIzj0CAQYFK4EEACEDOgAE/STOtiNtli+OMPWHTNUn7FSM0uUY1axN\nNjWxRXzfR/mU0euPh1d91HsHJnEeI0mWBRuj8HSjIsc=\n-----END PUBLIC KEY-----\n", + "sha": "SHA-256", + "tests": [ + { + "tcId": 257, + "comment": "s = 2^128", + "flags": [ + "ValidSignature" + ], + "msg": "68656c6c6f2c20776f726c64", + "sig": "96cd1b74f0be055d2d35ba25d70b0f75a5ab5d3faee363652224cc7e00000000000000000000000100000000000000000000000000000000", + "result": "valid" + }, + { + "tcId": 258, + "comment": "s = n - 2^128", + "flags": [ + "ValidSignature" + ], + "msg": "68656c6c6f2c20776f726c64", + "sig": "96cd1b74f0be055d2d35ba25d70b0f75a5ab5d3faee363652224cc7efffffffffffffffffffffffeffff16a2e0b8f03e13dd29455c5c2a3d", + "result": "valid" + } + ] } ] }
diff --git a/third_party/wycheproof_testvectors/ecdsa_secp224r1_sha256_p1363_test.txt b/third_party/wycheproof_testvectors/ecdsa_secp224r1_sha256_p1363_test.txt index 15c7ee6..5645e85 100644 --- a/third_party/wycheproof_testvectors/ecdsa_secp224r1_sha256_p1363_test.txt +++ b/third_party/wycheproof_testvectors/ecdsa_secp224r1_sha256_p1363_test.txt
@@ -2724,3 +2724,26 @@ sig = 0000000000000000000000000000e95d1f470fc1ec22d6baa3a3d5c6ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3a flags = ArithmeticError +[publicKey.curve = secp224r1] +[publicKey.keySize = 224] +[publicKey.type = EcPublicKey] +[publicKey.uncompressed = 04fd24ceb6236d962f8e30f5874cd527ec548cd2e518d5ac4d3635b1457cdf47f994d1eb8f87577dd47b0726711e234996051ba3f074a322c7] +[publicKey.wx = fd24ceb6236d962f8e30f5874cd527ec548cd2e518d5ac4d3635b145] +[publicKey.wy = 7cdf47f994d1eb8f87577dd47b0726711e234996051ba3f074a322c7] +[publicKeyDer = 304e301006072a8648ce3d020106052b81040021033a0004fd24ceb6236d962f8e30f5874cd527ec548cd2e518d5ac4d3635b1457cdf47f994d1eb8f87577dd47b0726711e234996051ba3f074a322c7] +[sha = SHA-256] + +# tcId = 257 +# s = 2^128 +msg = 68656c6c6f2c20776f726c64 +result = valid +sig = 96cd1b74f0be055d2d35ba25d70b0f75a5ab5d3faee363652224cc7e00000000000000000000000100000000000000000000000000000000 +flags = ValidSignature + +# tcId = 258 +# s = n - 2^128 +msg = 68656c6c6f2c20776f726c64 +result = valid +sig = 96cd1b74f0be055d2d35ba25d70b0f75a5ab5d3faee363652224cc7efffffffffffffffffffffffeffff16a2e0b8f03e13dd29455c5c2a3d +flags = ValidSignature +
diff --git a/third_party/wycheproof_testvectors/ecdsa_secp224r1_sha256_test.json b/third_party/wycheproof_testvectors/ecdsa_secp224r1_sha256_test.json index 78c3e24..f597f87 100644 --- a/third_party/wycheproof_testvectors/ecdsa_secp224r1_sha256_test.json +++ b/third_party/wycheproof_testvectors/ecdsa_secp224r1_sha256_test.json
@@ -1,7 +1,7 @@ { "algorithm": "ECDSA", "schema": "ecdsa_verify_schema_v1.json", - "numberOfTests": 479, + "numberOfTests": 481, "header": [ "Test vectors of type EcdsaVerify are meant for the verification", "of ASN encoded ECDSA signatures." @@ -7005,6 +7005,46 @@ "result": "invalid" } ] + }, + { + "type": "EcdsaVerify", + "source": { + "name": "github/davidben/ecdsa-s-pow2", + "version": "0.1" + }, + "publicKey": { + "type": "EcPublicKey", + "curve": "secp224r1", + "keySize": 224, + "uncompressed": "04fd24ceb6236d962f8e30f5874cd527ec548cd2e518d5ac4d3635b1457cdf47f994d1eb8f87577dd47b0726711e234996051ba3f074a322c7", + "wx": "fd24ceb6236d962f8e30f5874cd527ec548cd2e518d5ac4d3635b145", + "wy": "7cdf47f994d1eb8f87577dd47b0726711e234996051ba3f074a322c7" + }, + "publicKeyDer": "304e301006072a8648ce3d020106052b81040021033a0004fd24ceb6236d962f8e30f5874cd527ec548cd2e518d5ac4d3635b1457cdf47f994d1eb8f87577dd47b0726711e234996051ba3f074a322c7", + "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nME4wEAYHKoZIzj0CAQYFK4EEACEDOgAE/STOtiNtli+OMPWHTNUn7FSM0uUY1axN\nNjWxRXzfR/mU0euPh1d91HsHJnEeI0mWBRuj8HSjIsc=\n-----END PUBLIC KEY-----\n", + "sha": "SHA-256", + "tests": [ + { + "tcId": 480, + "comment": "s = 2^128", + "flags": [ + "ValidSignature" + ], + "msg": "68656c6c6f2c20776f726c64", + "sig": "3032021d0096cd1b74f0be055d2d35ba25d70b0f75a5ab5d3faee363652224cc7e02110100000000000000000000000000000000", + "result": "valid" + }, + { + "tcId": 481, + "comment": "s = n - 2^128", + "flags": [ + "ValidSignature" + ], + "msg": "68656c6c6f2c20776f726c64", + "sig": "303e021d0096cd1b74f0be055d2d35ba25d70b0f75a5ab5d3faee363652224cc7e021d00fffffffffffffffffffffffeffff16a2e0b8f03e13dd29455c5c2a3d", + "result": "valid" + } + ] } ] }
diff --git a/third_party/wycheproof_testvectors/ecdsa_secp224r1_sha256_test.txt b/third_party/wycheproof_testvectors/ecdsa_secp224r1_sha256_test.txt index d273161..61c5e33 100644 --- a/third_party/wycheproof_testvectors/ecdsa_secp224r1_sha256_test.txt +++ b/third_party/wycheproof_testvectors/ecdsa_secp224r1_sha256_test.txt
@@ -4296,3 +4296,26 @@ sig = 3030020f00e95d1f470fc1ec22d6baa3a3d5c6021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3a flags = ArithmeticError +[publicKey.curve = secp224r1] +[publicKey.keySize = 224] +[publicKey.type = EcPublicKey] +[publicKey.uncompressed = 04fd24ceb6236d962f8e30f5874cd527ec548cd2e518d5ac4d3635b1457cdf47f994d1eb8f87577dd47b0726711e234996051ba3f074a322c7] +[publicKey.wx = fd24ceb6236d962f8e30f5874cd527ec548cd2e518d5ac4d3635b145] +[publicKey.wy = 7cdf47f994d1eb8f87577dd47b0726711e234996051ba3f074a322c7] +[publicKeyDer = 304e301006072a8648ce3d020106052b81040021033a0004fd24ceb6236d962f8e30f5874cd527ec548cd2e518d5ac4d3635b1457cdf47f994d1eb8f87577dd47b0726711e234996051ba3f074a322c7] +[sha = SHA-256] + +# tcId = 480 +# s = 2^128 +msg = 68656c6c6f2c20776f726c64 +result = valid +sig = 3032021d0096cd1b74f0be055d2d35ba25d70b0f75a5ab5d3faee363652224cc7e02110100000000000000000000000000000000 +flags = ValidSignature + +# tcId = 481 +# s = n - 2^128 +msg = 68656c6c6f2c20776f726c64 +result = valid +sig = 303e021d0096cd1b74f0be055d2d35ba25d70b0f75a5ab5d3faee363652224cc7e021d00fffffffffffffffffffffffeffff16a2e0b8f03e13dd29455c5c2a3d +flags = ValidSignature +
diff --git a/third_party/wycheproof_testvectors/ecdsa_secp224r1_sha512_p1363_test.json b/third_party/wycheproof_testvectors/ecdsa_secp224r1_sha512_p1363_test.json index 015661e..9c7f470 100644 --- a/third_party/wycheproof_testvectors/ecdsa_secp224r1_sha512_p1363_test.json +++ b/third_party/wycheproof_testvectors/ecdsa_secp224r1_sha512_p1363_test.json
@@ -1,7 +1,7 @@ { "algorithm": "ECDSA", "schema": "ecdsa_p1363_verify_schema_v1.json", - "numberOfTests": 325, + "numberOfTests": 327, "header": [ "Test vectors of type EcdsaVerify are meant for the verification", "of IEEE P1363 encoded ECDSA signatures." @@ -5438,6 +5438,46 @@ "result": "invalid" } ] + }, + { + "type": "EcdsaP1363Verify", + "source": { + "name": "github/davidben/ecdsa-s-pow2", + "version": "0.1" + }, + "publicKey": { + "type": "EcPublicKey", + "curve": "secp224r1", + "keySize": 224, + "uncompressed": "04c31a7b09080e7d8b6bdcd6635f8e8d032ff7167e6e0293518428a99c2634e41847b4c741b2a518f1de804fd2334193ab078609535662802f", + "wx": "c31a7b09080e7d8b6bdcd6635f8e8d032ff7167e6e0293518428a99c", + "wy": "2634e41847b4c741b2a518f1de804fd2334193ab078609535662802f" + }, + "publicKeyDer": "304e301006072a8648ce3d020106052b81040021033a0004c31a7b09080e7d8b6bdcd6635f8e8d032ff7167e6e0293518428a99c2634e41847b4c741b2a518f1de804fd2334193ab078609535662802f", + "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nME4wEAYHKoZIzj0CAQYFK4EEACEDOgAEwxp7CQgOfYtr3NZjX46NAy/3Fn5uApNR\nhCipnCY05BhHtMdBsqUY8d6AT9IzQZOrB4YJU1ZigC8=\n-----END PUBLIC KEY-----\n", + "sha": "SHA-512", + "tests": [ + { + "tcId": 326, + "comment": "s = 2^128", + "flags": [ + "ValidSignature" + ], + "msg": "68656c6c6f2c20776f726c64", + "sig": "96cd1b74f0be055d2d35ba25d70b0f75a5ab5d3faee363652224cc7e00000000000000000000000100000000000000000000000000000000", + "result": "valid" + }, + { + "tcId": 327, + "comment": "s = n - 2^128", + "flags": [ + "ValidSignature" + ], + "msg": "68656c6c6f2c20776f726c64", + "sig": "96cd1b74f0be055d2d35ba25d70b0f75a5ab5d3faee363652224cc7efffffffffffffffffffffffeffff16a2e0b8f03e13dd29455c5c2a3d", + "result": "valid" + } + ] } ] }
diff --git a/third_party/wycheproof_testvectors/ecdsa_secp224r1_sha512_p1363_test.txt b/third_party/wycheproof_testvectors/ecdsa_secp224r1_sha512_p1363_test.txt index 61c0b6e..472d3fd 100644 --- a/third_party/wycheproof_testvectors/ecdsa_secp224r1_sha512_p1363_test.txt +++ b/third_party/wycheproof_testvectors/ecdsa_secp224r1_sha512_p1363_test.txt
@@ -3207,3 +3207,26 @@ sig = 0000000000000000000000000000e95d1f470fc1ec22d6baa3a3d5c6ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3a flags = ArithmeticError +[publicKey.curve = secp224r1] +[publicKey.keySize = 224] +[publicKey.type = EcPublicKey] +[publicKey.uncompressed = 04c31a7b09080e7d8b6bdcd6635f8e8d032ff7167e6e0293518428a99c2634e41847b4c741b2a518f1de804fd2334193ab078609535662802f] +[publicKey.wx = c31a7b09080e7d8b6bdcd6635f8e8d032ff7167e6e0293518428a99c] +[publicKey.wy = 2634e41847b4c741b2a518f1de804fd2334193ab078609535662802f] +[publicKeyDer = 304e301006072a8648ce3d020106052b81040021033a0004c31a7b09080e7d8b6bdcd6635f8e8d032ff7167e6e0293518428a99c2634e41847b4c741b2a518f1de804fd2334193ab078609535662802f] +[sha = SHA-512] + +# tcId = 326 +# s = 2^128 +msg = 68656c6c6f2c20776f726c64 +result = valid +sig = 96cd1b74f0be055d2d35ba25d70b0f75a5ab5d3faee363652224cc7e00000000000000000000000100000000000000000000000000000000 +flags = ValidSignature + +# tcId = 327 +# s = n - 2^128 +msg = 68656c6c6f2c20776f726c64 +result = valid +sig = 96cd1b74f0be055d2d35ba25d70b0f75a5ab5d3faee363652224cc7efffffffffffffffffffffffeffff16a2e0b8f03e13dd29455c5c2a3d +flags = ValidSignature +
diff --git a/third_party/wycheproof_testvectors/ecdsa_secp224r1_sha512_test.json b/third_party/wycheproof_testvectors/ecdsa_secp224r1_sha512_test.json index 28e6f47..969ca3f 100644 --- a/third_party/wycheproof_testvectors/ecdsa_secp224r1_sha512_test.json +++ b/third_party/wycheproof_testvectors/ecdsa_secp224r1_sha512_test.json
@@ -1,7 +1,7 @@ { "algorithm": "ECDSA", "schema": "ecdsa_verify_schema_v1.json", - "numberOfTests": 548, + "numberOfTests": 550, "header": [ "Test vectors of type EcdsaVerify are meant for the verification", "of ASN encoded ECDSA signatures." @@ -7700,6 +7700,46 @@ "result": "invalid" } ] + }, + { + "type": "EcdsaVerify", + "source": { + "name": "github/davidben/ecdsa-s-pow2", + "version": "0.1" + }, + "publicKey": { + "type": "EcPublicKey", + "curve": "secp224r1", + "keySize": 224, + "uncompressed": "04c31a7b09080e7d8b6bdcd6635f8e8d032ff7167e6e0293518428a99c2634e41847b4c741b2a518f1de804fd2334193ab078609535662802f", + "wx": "c31a7b09080e7d8b6bdcd6635f8e8d032ff7167e6e0293518428a99c", + "wy": "2634e41847b4c741b2a518f1de804fd2334193ab078609535662802f" + }, + "publicKeyDer": "304e301006072a8648ce3d020106052b81040021033a0004c31a7b09080e7d8b6bdcd6635f8e8d032ff7167e6e0293518428a99c2634e41847b4c741b2a518f1de804fd2334193ab078609535662802f", + "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nME4wEAYHKoZIzj0CAQYFK4EEACEDOgAEwxp7CQgOfYtr3NZjX46NAy/3Fn5uApNR\nhCipnCY05BhHtMdBsqUY8d6AT9IzQZOrB4YJU1ZigC8=\n-----END PUBLIC KEY-----\n", + "sha": "SHA-512", + "tests": [ + { + "tcId": 549, + "comment": "s = 2^128", + "flags": [ + "ValidSignature" + ], + "msg": "68656c6c6f2c20776f726c64", + "sig": "3032021d0096cd1b74f0be055d2d35ba25d70b0f75a5ab5d3faee363652224cc7e02110100000000000000000000000000000000", + "result": "valid" + }, + { + "tcId": 550, + "comment": "s = n - 2^128", + "flags": [ + "ValidSignature" + ], + "msg": "68656c6c6f2c20776f726c64", + "sig": "303e021d0096cd1b74f0be055d2d35ba25d70b0f75a5ab5d3faee363652224cc7e021d00fffffffffffffffffffffffeffff16a2e0b8f03e13dd29455c5c2a3d", + "result": "valid" + } + ] } ] }
diff --git a/third_party/wycheproof_testvectors/ecdsa_secp224r1_sha512_test.txt b/third_party/wycheproof_testvectors/ecdsa_secp224r1_sha512_test.txt index 0351e98..198c7e8 100644 --- a/third_party/wycheproof_testvectors/ecdsa_secp224r1_sha512_test.txt +++ b/third_party/wycheproof_testvectors/ecdsa_secp224r1_sha512_test.txt
@@ -4779,3 +4779,26 @@ sig = 3030020f00e95d1f470fc1ec22d6baa3a3d5c6021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3a flags = ArithmeticError +[publicKey.curve = secp224r1] +[publicKey.keySize = 224] +[publicKey.type = EcPublicKey] +[publicKey.uncompressed = 04c31a7b09080e7d8b6bdcd6635f8e8d032ff7167e6e0293518428a99c2634e41847b4c741b2a518f1de804fd2334193ab078609535662802f] +[publicKey.wx = c31a7b09080e7d8b6bdcd6635f8e8d032ff7167e6e0293518428a99c] +[publicKey.wy = 2634e41847b4c741b2a518f1de804fd2334193ab078609535662802f] +[publicKeyDer = 304e301006072a8648ce3d020106052b81040021033a0004c31a7b09080e7d8b6bdcd6635f8e8d032ff7167e6e0293518428a99c2634e41847b4c741b2a518f1de804fd2334193ab078609535662802f] +[sha = SHA-512] + +# tcId = 549 +# s = 2^128 +msg = 68656c6c6f2c20776f726c64 +result = valid +sig = 3032021d0096cd1b74f0be055d2d35ba25d70b0f75a5ab5d3faee363652224cc7e02110100000000000000000000000000000000 +flags = ValidSignature + +# tcId = 550 +# s = n - 2^128 +msg = 68656c6c6f2c20776f726c64 +result = valid +sig = 303e021d0096cd1b74f0be055d2d35ba25d70b0f75a5ab5d3faee363652224cc7e021d00fffffffffffffffffffffffeffff16a2e0b8f03e13dd29455c5c2a3d +flags = ValidSignature +
diff --git a/third_party/wycheproof_testvectors/ecdsa_secp256k1_sha256_p1363_test.json b/third_party/wycheproof_testvectors/ecdsa_secp256k1_sha256_p1363_test.json index d9bb64c..3c59b14 100644 --- a/third_party/wycheproof_testvectors/ecdsa_secp256k1_sha256_p1363_test.json +++ b/third_party/wycheproof_testvectors/ecdsa_secp256k1_sha256_p1363_test.json
@@ -1,7 +1,7 @@ { "algorithm": "ECDSA", "schema": "ecdsa_p1363_verify_schema_v1.json", - "numberOfTests": 250, + "numberOfTests": 252, "header": [ "Test vectors of type EcdsaVerify are meant for the verification", "of IEEE P1363 encoded ECDSA signatures." @@ -5455,6 +5455,46 @@ "result": "invalid" } ] + }, + { + "type": "EcdsaP1363Verify", + "source": { + "name": "github/davidben/ecdsa-s-pow2", + "version": "0.1" + }, + "publicKey": { + "type": "EcPublicKey", + "curve": "secp256k1", + "keySize": 256, + "uncompressed": "04315971a60089e7749a8fa1d8374ecbaab259d773b3737e932bbaa960cdbf27f1bfe600bd60a91e650508eab795146b13c766195a447b24709df9d1c561e53dae", + "wx": "315971a60089e7749a8fa1d8374ecbaab259d773b3737e932bbaa960cdbf27f1", + "wy": "bfe600bd60a91e650508eab795146b13c766195a447b24709df9d1c561e53dae" + }, + "publicKeyDer": "3056301006072a8648ce3d020106052b8104000a03420004315971a60089e7749a8fa1d8374ecbaab259d773b3737e932bbaa960cdbf27f1bfe600bd60a91e650508eab795146b13c766195a447b24709df9d1c561e53dae", + "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMFYwEAYHKoZIzj0CAQYFK4EEAAoDQgAEMVlxpgCJ53Saj6HYN07LqrJZ13Ozc36T\nK7qpYM2/J/G/5gC9YKkeZQUI6reVFGsTx2YZWkR7JHCd+dHFYeU9rg==\n-----END PUBLIC KEY-----\n", + "sha": "SHA-256", + "tests": [ + { + "tcId": 251, + "comment": "s = 2^128", + "flags": [ + "ValidSignature" + ], + "msg": "68656c6c6f2c20776f726c64", + "sig": "2b698a0f0a4041b77e63488ad48c23e8e8838dd1fb7520408b121697b782ef220000000000000000000000000000000100000000000000000000000000000000", + "result": "valid" + }, + { + "tcId": 252, + "comment": "s = n - 2^128", + "flags": [ + "ValidSignature" + ], + "msg": "68656c6c6f2c20776f726c64", + "sig": "2b698a0f0a4041b77e63488ad48c23e8e8838dd1fb7520408b121697b782ef22fffffffffffffffffffffffffffffffdbaaedce6af48a03bbfd25e8cd0364141", + "result": "valid" + } + ] } ] }
diff --git a/third_party/wycheproof_testvectors/ecdsa_secp256k1_sha256_test.json b/third_party/wycheproof_testvectors/ecdsa_secp256k1_sha256_test.json index f96c521..48797ce 100644 --- a/third_party/wycheproof_testvectors/ecdsa_secp256k1_sha256_test.json +++ b/third_party/wycheproof_testvectors/ecdsa_secp256k1_sha256_test.json
@@ -1,7 +1,7 @@ { "algorithm": "ECDSA", "schema": "ecdsa_verify_schema_v1.json", - "numberOfTests": 474, + "numberOfTests": 476, "header": [ "Test vectors of type EcdsaVerify are meant for the verification", "of ASN encoded ECDSA signatures." @@ -7036,6 +7036,46 @@ "result": "invalid" } ] + }, + { + "type": "EcdsaVerify", + "source": { + "name": "github/davidben/ecdsa-s-pow2", + "version": "0.1" + }, + "publicKey": { + "type": "EcPublicKey", + "curve": "secp256k1", + "keySize": 256, + "uncompressed": "04315971a60089e7749a8fa1d8374ecbaab259d773b3737e932bbaa960cdbf27f1bfe600bd60a91e650508eab795146b13c766195a447b24709df9d1c561e53dae", + "wx": "315971a60089e7749a8fa1d8374ecbaab259d773b3737e932bbaa960cdbf27f1", + "wy": "bfe600bd60a91e650508eab795146b13c766195a447b24709df9d1c561e53dae" + }, + "publicKeyDer": "3056301006072a8648ce3d020106052b8104000a03420004315971a60089e7749a8fa1d8374ecbaab259d773b3737e932bbaa960cdbf27f1bfe600bd60a91e650508eab795146b13c766195a447b24709df9d1c561e53dae", + "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMFYwEAYHKoZIzj0CAQYFK4EEAAoDQgAEMVlxpgCJ53Saj6HYN07LqrJZ13Ozc36T\nK7qpYM2/J/G/5gC9YKkeZQUI6reVFGsTx2YZWkR7JHCd+dHFYeU9rg==\n-----END PUBLIC KEY-----\n", + "sha": "SHA-256", + "tests": [ + { + "tcId": 475, + "comment": "s = 2^128", + "flags": [ + "ValidSignature" + ], + "msg": "68656c6c6f2c20776f726c64", + "sig": "303502202b698a0f0a4041b77e63488ad48c23e8e8838dd1fb7520408b121697b782ef2202110100000000000000000000000000000000", + "result": "valid" + }, + { + "tcId": 476, + "comment": "s = n - 2^128", + "flags": [ + "ValidSignature" + ], + "msg": "68656c6c6f2c20776f726c64", + "sig": "304502202b698a0f0a4041b77e63488ad48c23e8e8838dd1fb7520408b121697b782ef22022100fffffffffffffffffffffffffffffffdbaaedce6af48a03bbfd25e8cd0364141", + "result": "valid" + } + ] } ] }
diff --git a/third_party/wycheproof_testvectors/ecdsa_secp256k1_sha512_p1363_test.json b/third_party/wycheproof_testvectors/ecdsa_secp256k1_sha512_p1363_test.json index 5cfa64e..0890402 100644 --- a/third_party/wycheproof_testvectors/ecdsa_secp256k1_sha512_p1363_test.json +++ b/third_party/wycheproof_testvectors/ecdsa_secp256k1_sha512_p1363_test.json
@@ -1,7 +1,7 @@ { "algorithm": "ECDSA", "schema": "ecdsa_p1363_verify_schema_v1.json", - "numberOfTests": 320, + "numberOfTests": 322, "header": [ "Test vectors of type EcdsaVerify are meant for the verification", "of IEEE P1363 encoded ECDSA signatures." @@ -6159,6 +6159,46 @@ "result": "invalid" } ] + }, + { + "type": "EcdsaP1363Verify", + "source": { + "name": "github/davidben/ecdsa-s-pow2", + "version": "0.1" + }, + "publicKey": { + "type": "EcPublicKey", + "curve": "secp256k1", + "keySize": 256, + "uncompressed": "04935ab7edbc21cb4ccb3afd6b63d3740f62d98a41975e5e6e836d7c990d177a7e3ec3d6377cdd3021b6176d26c3d1999d6d8fe8fb9bd7051b4908d1608b9ab1a9", + "wx": "935ab7edbc21cb4ccb3afd6b63d3740f62d98a41975e5e6e836d7c990d177a7e", + "wy": "3ec3d6377cdd3021b6176d26c3d1999d6d8fe8fb9bd7051b4908d1608b9ab1a9" + }, + "publicKeyDer": "3056301006072a8648ce3d020106052b8104000a03420004935ab7edbc21cb4ccb3afd6b63d3740f62d98a41975e5e6e836d7c990d177a7e3ec3d6377cdd3021b6176d26c3d1999d6d8fe8fb9bd7051b4908d1608b9ab1a9", + "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMFYwEAYHKoZIzj0CAQYFK4EEAAoDQgAEk1q37bwhy0zLOv1rY9N0D2LZikGXXl5u\ng218mQ0Xen4+w9Y3fN0wIbYXbSbD0ZmdbY/o+5vXBRtJCNFgi5qxqQ==\n-----END PUBLIC KEY-----\n", + "sha": "SHA-512", + "tests": [ + { + "tcId": 321, + "comment": "s = 2^128", + "flags": [ + "ValidSignature" + ], + "msg": "68656c6c6f2c20776f726c64", + "sig": "2b698a0f0a4041b77e63488ad48c23e8e8838dd1fb7520408b121697b782ef220000000000000000000000000000000100000000000000000000000000000000", + "result": "valid" + }, + { + "tcId": 322, + "comment": "s = n - 2^128", + "flags": [ + "ValidSignature" + ], + "msg": "68656c6c6f2c20776f726c64", + "sig": "2b698a0f0a4041b77e63488ad48c23e8e8838dd1fb7520408b121697b782ef22fffffffffffffffffffffffffffffffdbaaedce6af48a03bbfd25e8cd0364141", + "result": "valid" + } + ] } ] }
diff --git a/third_party/wycheproof_testvectors/ecdsa_secp256k1_sha512_test.json b/third_party/wycheproof_testvectors/ecdsa_secp256k1_sha512_test.json index 3f0af85..612e191 100644 --- a/third_party/wycheproof_testvectors/ecdsa_secp256k1_sha512_test.json +++ b/third_party/wycheproof_testvectors/ecdsa_secp256k1_sha512_test.json
@@ -1,7 +1,7 @@ { "algorithm": "ECDSA", "schema": "ecdsa_verify_schema_v1.json", - "numberOfTests": 544, + "numberOfTests": 546, "header": [ "Test vectors of type EcdsaVerify are meant for the verification", "of ASN encoded ECDSA signatures." @@ -7740,6 +7740,46 @@ "result": "invalid" } ] + }, + { + "type": "EcdsaVerify", + "source": { + "name": "github/davidben/ecdsa-s-pow2", + "version": "0.1" + }, + "publicKey": { + "type": "EcPublicKey", + "curve": "secp256k1", + "keySize": 256, + "uncompressed": "04935ab7edbc21cb4ccb3afd6b63d3740f62d98a41975e5e6e836d7c990d177a7e3ec3d6377cdd3021b6176d26c3d1999d6d8fe8fb9bd7051b4908d1608b9ab1a9", + "wx": "935ab7edbc21cb4ccb3afd6b63d3740f62d98a41975e5e6e836d7c990d177a7e", + "wy": "3ec3d6377cdd3021b6176d26c3d1999d6d8fe8fb9bd7051b4908d1608b9ab1a9" + }, + "publicKeyDer": "3056301006072a8648ce3d020106052b8104000a03420004935ab7edbc21cb4ccb3afd6b63d3740f62d98a41975e5e6e836d7c990d177a7e3ec3d6377cdd3021b6176d26c3d1999d6d8fe8fb9bd7051b4908d1608b9ab1a9", + "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMFYwEAYHKoZIzj0CAQYFK4EEAAoDQgAEk1q37bwhy0zLOv1rY9N0D2LZikGXXl5u\ng218mQ0Xen4+w9Y3fN0wIbYXbSbD0ZmdbY/o+5vXBRtJCNFgi5qxqQ==\n-----END PUBLIC KEY-----\n", + "sha": "SHA-512", + "tests": [ + { + "tcId": 545, + "comment": "s = 2^128", + "flags": [ + "ValidSignature" + ], + "msg": "68656c6c6f2c20776f726c64", + "sig": "303502202b698a0f0a4041b77e63488ad48c23e8e8838dd1fb7520408b121697b782ef2202110100000000000000000000000000000000", + "result": "valid" + }, + { + "tcId": 546, + "comment": "s = n - 2^128", + "flags": [ + "ValidSignature" + ], + "msg": "68656c6c6f2c20776f726c64", + "sig": "304502202b698a0f0a4041b77e63488ad48c23e8e8838dd1fb7520408b121697b782ef22022100fffffffffffffffffffffffffffffffdbaaedce6af48a03bbfd25e8cd0364141", + "result": "valid" + } + ] } ] }
diff --git a/third_party/wycheproof_testvectors/ecdsa_secp256r1_sha256_p1363_test.json b/third_party/wycheproof_testvectors/ecdsa_secp256r1_sha256_p1363_test.json index b4e3fd1..d5c41c1 100644 --- a/third_party/wycheproof_testvectors/ecdsa_secp256r1_sha256_p1363_test.json +++ b/third_party/wycheproof_testvectors/ecdsa_secp256r1_sha256_p1363_test.json
@@ -1,7 +1,7 @@ { "algorithm": "ECDSA", "schema": "ecdsa_p1363_verify_schema_v1.json", - "numberOfTests": 260, + "numberOfTests": 262, "header": [ "Test vectors of type EcdsaVerify are meant for the verification", "of IEEE P1363 encoded ECDSA signatures." @@ -5669,6 +5669,46 @@ "result": "invalid" } ] + }, + { + "type": "EcdsaP1363Verify", + "source": { + "name": "github/davidben/ecdsa-s-pow2", + "version": "0.1" + }, + "publicKey": { + "type": "EcPublicKey", + "curve": "secp256r1", + "keySize": 256, + "uncompressed": "046955a72c0dad4ed60356f7692649b951fa8ea474bf1cc9549b96c68de4782dfae012ffc24e92c72be71ff2622ee7e549dcb59e7b708f6921c4d4ea29512e2aba", + "wx": "6955a72c0dad4ed60356f7692649b951fa8ea474bf1cc9549b96c68de4782dfa", + "wy": "e012ffc24e92c72be71ff2622ee7e549dcb59e7b708f6921c4d4ea29512e2aba" + }, + "publicKeyDer": "3059301306072a8648ce3d020106082a8648ce3d030107034200046955a72c0dad4ed60356f7692649b951fa8ea474bf1cc9549b96c68de4782dfae012ffc24e92c72be71ff2622ee7e549dcb59e7b708f6921c4d4ea29512e2aba", + "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEaVWnLA2tTtYDVvdpJkm5UfqOpHS/\nHMlUm5bGjeR4LfrgEv/CTpLHK+cf8mIu5+VJ3LWee3CPaSHE1OopUS4qug==\n-----END PUBLIC KEY-----\n", + "sha": "SHA-256", + "tests": [ + { + "tcId": 261, + "comment": "s = 2^128", + "flags": [ + "ValidSignature" + ], + "msg": "68656c6c6f2c20776f726c64", + "sig": "5f6d3aa0d327c13702513d4299f297ab182fcf670f96291fab19572e7a6e01c40000000000000000000000000000000100000000000000000000000000000000", + "result": "valid" + }, + { + "tcId": 262, + "comment": "s = n - 2^128", + "flags": [ + "ValidSignature" + ], + "msg": "68656c6c6f2c20776f726c64", + "sig": "5f6d3aa0d327c13702513d4299f297ab182fcf670f96291fab19572e7a6e01c4ffffffff00000000fffffffffffffffebce6faada7179e84f3b9cac2fc632551", + "result": "valid" + } + ] } ] }
diff --git a/third_party/wycheproof_testvectors/ecdsa_secp256r1_sha256_p1363_test.txt b/third_party/wycheproof_testvectors/ecdsa_secp256r1_sha256_p1363_test.txt index bbc15c3..6e840ef 100644 --- a/third_party/wycheproof_testvectors/ecdsa_secp256r1_sha256_p1363_test.txt +++ b/third_party/wycheproof_testvectors/ecdsa_secp256r1_sha256_p1363_test.txt
@@ -2824,3 +2824,26 @@ sig = 00000000ffffffff00000000000000004319055258e8617b0c46353d039cdab4ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63254e flags = ArithmeticError +[publicKey.curve = secp256r1] +[publicKey.keySize = 256] +[publicKey.type = EcPublicKey] +[publicKey.uncompressed = 046955a72c0dad4ed60356f7692649b951fa8ea474bf1cc9549b96c68de4782dfae012ffc24e92c72be71ff2622ee7e549dcb59e7b708f6921c4d4ea29512e2aba] +[publicKey.wx = 6955a72c0dad4ed60356f7692649b951fa8ea474bf1cc9549b96c68de4782dfa] +[publicKey.wy = e012ffc24e92c72be71ff2622ee7e549dcb59e7b708f6921c4d4ea29512e2aba] +[publicKeyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200046955a72c0dad4ed60356f7692649b951fa8ea474bf1cc9549b96c68de4782dfae012ffc24e92c72be71ff2622ee7e549dcb59e7b708f6921c4d4ea29512e2aba] +[sha = SHA-256] + +# tcId = 261 +# s = 2^128 +msg = 68656c6c6f2c20776f726c64 +result = valid +sig = 5f6d3aa0d327c13702513d4299f297ab182fcf670f96291fab19572e7a6e01c40000000000000000000000000000000100000000000000000000000000000000 +flags = ValidSignature + +# tcId = 262 +# s = n - 2^128 +msg = 68656c6c6f2c20776f726c64 +result = valid +sig = 5f6d3aa0d327c13702513d4299f297ab182fcf670f96291fab19572e7a6e01c4ffffffff00000000fffffffffffffffebce6faada7179e84f3b9cac2fc632551 +flags = ValidSignature +
diff --git a/third_party/wycheproof_testvectors/ecdsa_secp256r1_sha256_test.json b/third_party/wycheproof_testvectors/ecdsa_secp256r1_sha256_test.json index f10333e..19c951d 100644 --- a/third_party/wycheproof_testvectors/ecdsa_secp256r1_sha256_test.json +++ b/third_party/wycheproof_testvectors/ecdsa_secp256r1_sha256_test.json
@@ -1,7 +1,7 @@ { "algorithm": "ECDSA", "schema": "ecdsa_verify_schema_v1.json", - "numberOfTests": 482, + "numberOfTests": 484, "header": [ "Test vectors of type EcdsaVerify are meant for the verification", "of ASN encoded ECDSA signatures." @@ -7198,6 +7198,46 @@ "result": "invalid" } ] + }, + { + "type": "EcdsaVerify", + "source": { + "name": "github/davidben/ecdsa-s-pow2", + "version": "0.1" + }, + "publicKey": { + "type": "EcPublicKey", + "curve": "secp256r1", + "keySize": 256, + "uncompressed": "046955a72c0dad4ed60356f7692649b951fa8ea474bf1cc9549b96c68de4782dfae012ffc24e92c72be71ff2622ee7e549dcb59e7b708f6921c4d4ea29512e2aba", + "wx": "6955a72c0dad4ed60356f7692649b951fa8ea474bf1cc9549b96c68de4782dfa", + "wy": "e012ffc24e92c72be71ff2622ee7e549dcb59e7b708f6921c4d4ea29512e2aba" + }, + "publicKeyDer": "3059301306072a8648ce3d020106082a8648ce3d030107034200046955a72c0dad4ed60356f7692649b951fa8ea474bf1cc9549b96c68de4782dfae012ffc24e92c72be71ff2622ee7e549dcb59e7b708f6921c4d4ea29512e2aba", + "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEaVWnLA2tTtYDVvdpJkm5UfqOpHS/\nHMlUm5bGjeR4LfrgEv/CTpLHK+cf8mIu5+VJ3LWee3CPaSHE1OopUS4qug==\n-----END PUBLIC KEY-----\n", + "sha": "SHA-256", + "tests": [ + { + "tcId": 483, + "comment": "s = 2^128", + "flags": [ + "ValidSignature" + ], + "msg": "68656c6c6f2c20776f726c64", + "sig": "303502205f6d3aa0d327c13702513d4299f297ab182fcf670f96291fab19572e7a6e01c402110100000000000000000000000000000000", + "result": "valid" + }, + { + "tcId": 484, + "comment": "s = n - 2^128", + "flags": [ + "ValidSignature" + ], + "msg": "68656c6c6f2c20776f726c64", + "sig": "304502205f6d3aa0d327c13702513d4299f297ab182fcf670f96291fab19572e7a6e01c4022100ffffffff00000000fffffffffffffffebce6faada7179e84f3b9cac2fc632551", + "result": "valid" + } + ] } ] }
diff --git a/third_party/wycheproof_testvectors/ecdsa_secp256r1_sha256_test.txt b/third_party/wycheproof_testvectors/ecdsa_secp256r1_sha256_test.txt index 39943ca..d6e9fd7 100644 --- a/third_party/wycheproof_testvectors/ecdsa_secp256r1_sha256_test.txt +++ b/third_party/wycheproof_testvectors/ecdsa_secp256r1_sha256_test.txt
@@ -4389,3 +4389,26 @@ sig = 3042021d00ffffffff00000000000000004319055258e8617b0c46353d039cdab4022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63254e flags = ArithmeticError +[publicKey.curve = secp256r1] +[publicKey.keySize = 256] +[publicKey.type = EcPublicKey] +[publicKey.uncompressed = 046955a72c0dad4ed60356f7692649b951fa8ea474bf1cc9549b96c68de4782dfae012ffc24e92c72be71ff2622ee7e549dcb59e7b708f6921c4d4ea29512e2aba] +[publicKey.wx = 6955a72c0dad4ed60356f7692649b951fa8ea474bf1cc9549b96c68de4782dfa] +[publicKey.wy = e012ffc24e92c72be71ff2622ee7e549dcb59e7b708f6921c4d4ea29512e2aba] +[publicKeyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200046955a72c0dad4ed60356f7692649b951fa8ea474bf1cc9549b96c68de4782dfae012ffc24e92c72be71ff2622ee7e549dcb59e7b708f6921c4d4ea29512e2aba] +[sha = SHA-256] + +# tcId = 483 +# s = 2^128 +msg = 68656c6c6f2c20776f726c64 +result = valid +sig = 303502205f6d3aa0d327c13702513d4299f297ab182fcf670f96291fab19572e7a6e01c402110100000000000000000000000000000000 +flags = ValidSignature + +# tcId = 484 +# s = n - 2^128 +msg = 68656c6c6f2c20776f726c64 +result = valid +sig = 304502205f6d3aa0d327c13702513d4299f297ab182fcf670f96291fab19572e7a6e01c4022100ffffffff00000000fffffffffffffffebce6faada7179e84f3b9cac2fc632551 +flags = ValidSignature +
diff --git a/third_party/wycheproof_testvectors/ecdsa_secp256r1_sha512_p1363_test.json b/third_party/wycheproof_testvectors/ecdsa_secp256r1_sha512_p1363_test.json index 6c26a58..2d8b97d 100644 --- a/third_party/wycheproof_testvectors/ecdsa_secp256r1_sha512_p1363_test.json +++ b/third_party/wycheproof_testvectors/ecdsa_secp256r1_sha512_p1363_test.json
@@ -1,7 +1,7 @@ { "algorithm": "ECDSA", "schema": "ecdsa_p1363_verify_schema_v1.json", - "numberOfTests": 330, + "numberOfTests": 332, "header": [ "Test vectors of type EcdsaVerify are meant for the verification", "of IEEE P1363 encoded ECDSA signatures." @@ -6373,6 +6373,46 @@ "result": "invalid" } ] + }, + { + "type": "EcdsaP1363Verify", + "source": { + "name": "github/davidben/ecdsa-s-pow2", + "version": "0.1" + }, + "publicKey": { + "type": "EcPublicKey", + "curve": "secp256r1", + "keySize": 256, + "uncompressed": "0443ee8fee3c942a8a28caa347e532481778fef03835cbdbfcf20727f97ea8a30e8a1930ff6cd357b864a454b70c27989265da529a9e45623a9fa364b2bd21230e", + "wx": "43ee8fee3c942a8a28caa347e532481778fef03835cbdbfcf20727f97ea8a30e", + "wy": "8a1930ff6cd357b864a454b70c27989265da529a9e45623a9fa364b2bd21230e" + }, + "publicKeyDer": "3059301306072a8648ce3d020106082a8648ce3d0301070342000443ee8fee3c942a8a28caa347e532481778fef03835cbdbfcf20727f97ea8a30e8a1930ff6cd357b864a454b70c27989265da529a9e45623a9fa364b2bd21230e", + "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEQ+6P7jyUKoooyqNH5TJIF3j+8Dg1\ny9v88gcn+X6oow6KGTD/bNNXuGSkVLcMJ5iSZdpSmp5FYjqfo2SyvSEjDg==\n-----END PUBLIC KEY-----\n", + "sha": "SHA-512", + "tests": [ + { + "tcId": 331, + "comment": "s = 2^128", + "flags": [ + "ValidSignature" + ], + "msg": "68656c6c6f2c20776f726c64", + "sig": "5f6d3aa0d327c13702513d4299f297ab182fcf670f96291fab19572e7a6e01c40000000000000000000000000000000100000000000000000000000000000000", + "result": "valid" + }, + { + "tcId": 332, + "comment": "s = n - 2^128", + "flags": [ + "ValidSignature" + ], + "msg": "68656c6c6f2c20776f726c64", + "sig": "5f6d3aa0d327c13702513d4299f297ab182fcf670f96291fab19572e7a6e01c4ffffffff00000000fffffffffffffffebce6faada7179e84f3b9cac2fc632551", + "result": "valid" + } + ] } ] }
diff --git a/third_party/wycheproof_testvectors/ecdsa_secp256r1_sha512_p1363_test.txt b/third_party/wycheproof_testvectors/ecdsa_secp256r1_sha512_p1363_test.txt index 782fa83..2bc1909 100644 --- a/third_party/wycheproof_testvectors/ecdsa_secp256r1_sha512_p1363_test.txt +++ b/third_party/wycheproof_testvectors/ecdsa_secp256r1_sha512_p1363_test.txt
@@ -3314,3 +3314,26 @@ sig = 00000000ffffffff00000000000000004319055258e8617b0c46353d039cdab4ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63254e flags = ArithmeticError +[publicKey.curve = secp256r1] +[publicKey.keySize = 256] +[publicKey.type = EcPublicKey] +[publicKey.uncompressed = 0443ee8fee3c942a8a28caa347e532481778fef03835cbdbfcf20727f97ea8a30e8a1930ff6cd357b864a454b70c27989265da529a9e45623a9fa364b2bd21230e] +[publicKey.wx = 43ee8fee3c942a8a28caa347e532481778fef03835cbdbfcf20727f97ea8a30e] +[publicKey.wy = 8a1930ff6cd357b864a454b70c27989265da529a9e45623a9fa364b2bd21230e] +[publicKeyDer = 3059301306072a8648ce3d020106082a8648ce3d0301070342000443ee8fee3c942a8a28caa347e532481778fef03835cbdbfcf20727f97ea8a30e8a1930ff6cd357b864a454b70c27989265da529a9e45623a9fa364b2bd21230e] +[sha = SHA-512] + +# tcId = 331 +# s = 2^128 +msg = 68656c6c6f2c20776f726c64 +result = valid +sig = 5f6d3aa0d327c13702513d4299f297ab182fcf670f96291fab19572e7a6e01c40000000000000000000000000000000100000000000000000000000000000000 +flags = ValidSignature + +# tcId = 332 +# s = n - 2^128 +msg = 68656c6c6f2c20776f726c64 +result = valid +sig = 5f6d3aa0d327c13702513d4299f297ab182fcf670f96291fab19572e7a6e01c4ffffffff00000000fffffffffffffffebce6faada7179e84f3b9cac2fc632551 +flags = ValidSignature +
diff --git a/third_party/wycheproof_testvectors/ecdsa_secp256r1_sha512_test.json b/third_party/wycheproof_testvectors/ecdsa_secp256r1_sha512_test.json index 5891e76..816a843 100644 --- a/third_party/wycheproof_testvectors/ecdsa_secp256r1_sha512_test.json +++ b/third_party/wycheproof_testvectors/ecdsa_secp256r1_sha512_test.json
@@ -1,7 +1,7 @@ { "algorithm": "ECDSA", "schema": "ecdsa_verify_schema_v1.json", - "numberOfTests": 552, + "numberOfTests": 554, "header": [ "Test vectors of type EcdsaVerify are meant for the verification", "of ASN encoded ECDSA signatures." @@ -7902,6 +7902,46 @@ "result": "invalid" } ] + }, + { + "type": "EcdsaVerify", + "source": { + "name": "github/davidben/ecdsa-s-pow2", + "version": "0.1" + }, + "publicKey": { + "type": "EcPublicKey", + "curve": "secp256r1", + "keySize": 256, + "uncompressed": "0443ee8fee3c942a8a28caa347e532481778fef03835cbdbfcf20727f97ea8a30e8a1930ff6cd357b864a454b70c27989265da529a9e45623a9fa364b2bd21230e", + "wx": "43ee8fee3c942a8a28caa347e532481778fef03835cbdbfcf20727f97ea8a30e", + "wy": "8a1930ff6cd357b864a454b70c27989265da529a9e45623a9fa364b2bd21230e" + }, + "publicKeyDer": "3059301306072a8648ce3d020106082a8648ce3d0301070342000443ee8fee3c942a8a28caa347e532481778fef03835cbdbfcf20727f97ea8a30e8a1930ff6cd357b864a454b70c27989265da529a9e45623a9fa364b2bd21230e", + "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEQ+6P7jyUKoooyqNH5TJIF3j+8Dg1\ny9v88gcn+X6oow6KGTD/bNNXuGSkVLcMJ5iSZdpSmp5FYjqfo2SyvSEjDg==\n-----END PUBLIC KEY-----\n", + "sha": "SHA-512", + "tests": [ + { + "tcId": 553, + "comment": "s = 2^128", + "flags": [ + "ValidSignature" + ], + "msg": "68656c6c6f2c20776f726c64", + "sig": "303502205f6d3aa0d327c13702513d4299f297ab182fcf670f96291fab19572e7a6e01c402110100000000000000000000000000000000", + "result": "valid" + }, + { + "tcId": 554, + "comment": "s = n - 2^128", + "flags": [ + "ValidSignature" + ], + "msg": "68656c6c6f2c20776f726c64", + "sig": "304502205f6d3aa0d327c13702513d4299f297ab182fcf670f96291fab19572e7a6e01c4022100ffffffff00000000fffffffffffffffebce6faada7179e84f3b9cac2fc632551", + "result": "valid" + } + ] } ] }
diff --git a/third_party/wycheproof_testvectors/ecdsa_secp256r1_sha512_test.txt b/third_party/wycheproof_testvectors/ecdsa_secp256r1_sha512_test.txt index 6bbf31c..7c11084 100644 --- a/third_party/wycheproof_testvectors/ecdsa_secp256r1_sha512_test.txt +++ b/third_party/wycheproof_testvectors/ecdsa_secp256r1_sha512_test.txt
@@ -4879,3 +4879,26 @@ sig = 3042021d00ffffffff00000000000000004319055258e8617b0c46353d039cdab4022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63254e flags = ArithmeticError +[publicKey.curve = secp256r1] +[publicKey.keySize = 256] +[publicKey.type = EcPublicKey] +[publicKey.uncompressed = 0443ee8fee3c942a8a28caa347e532481778fef03835cbdbfcf20727f97ea8a30e8a1930ff6cd357b864a454b70c27989265da529a9e45623a9fa364b2bd21230e] +[publicKey.wx = 43ee8fee3c942a8a28caa347e532481778fef03835cbdbfcf20727f97ea8a30e] +[publicKey.wy = 8a1930ff6cd357b864a454b70c27989265da529a9e45623a9fa364b2bd21230e] +[publicKeyDer = 3059301306072a8648ce3d020106082a8648ce3d0301070342000443ee8fee3c942a8a28caa347e532481778fef03835cbdbfcf20727f97ea8a30e8a1930ff6cd357b864a454b70c27989265da529a9e45623a9fa364b2bd21230e] +[sha = SHA-512] + +# tcId = 553 +# s = 2^128 +msg = 68656c6c6f2c20776f726c64 +result = valid +sig = 303502205f6d3aa0d327c13702513d4299f297ab182fcf670f96291fab19572e7a6e01c402110100000000000000000000000000000000 +flags = ValidSignature + +# tcId = 554 +# s = n - 2^128 +msg = 68656c6c6f2c20776f726c64 +result = valid +sig = 304502205f6d3aa0d327c13702513d4299f297ab182fcf670f96291fab19572e7a6e01c4022100ffffffff00000000fffffffffffffffebce6faada7179e84f3b9cac2fc632551 +flags = ValidSignature +
diff --git a/third_party/wycheproof_testvectors/ecdsa_secp384r1_sha256_test.json b/third_party/wycheproof_testvectors/ecdsa_secp384r1_sha256_test.json index 5f976a2..32891e5 100644 --- a/third_party/wycheproof_testvectors/ecdsa_secp384r1_sha256_test.json +++ b/third_party/wycheproof_testvectors/ecdsa_secp384r1_sha256_test.json
@@ -1,7 +1,7 @@ { "algorithm": "ECDSA", "schema": "ecdsa_verify_schema_v1.json", - "numberOfTests": 470, + "numberOfTests": 472, "header": [ "Test vectors of type EcdsaVerify are meant for the verification", "of ASN encoded ECDSA signatures." @@ -6916,6 +6916,46 @@ "result": "invalid" } ] + }, + { + "type": "EcdsaVerify", + "source": { + "name": "github/davidben/ecdsa-s-pow2", + "version": "0.1" + }, + "publicKey": { + "type": "EcPublicKey", + "curve": "secp384r1", + "keySize": 384, + "uncompressed": "040e366e9880ccff2eb5c6c90dedefcaebb566d9fc3812045ffc3a6bab9a8f1c3f16709aeb4dfcc85f1513a0ef7b2ef7e15f6181d0b09a22a3721ad567b04866de93868677cef994b5a3f897756e68d798f797cdc15d337b6a368868b34f9b0e56", + "wx": "0e366e9880ccff2eb5c6c90dedefcaebb566d9fc3812045ffc3a6bab9a8f1c3f16709aeb4dfcc85f1513a0ef7b2ef7e1", + "wy": "5f6181d0b09a22a3721ad567b04866de93868677cef994b5a3f897756e68d798f797cdc15d337b6a368868b34f9b0e56" + }, + "publicKeyDer": "3076301006072a8648ce3d020106052b81040022036200040e366e9880ccff2eb5c6c90dedefcaebb566d9fc3812045ffc3a6bab9a8f1c3f16709aeb4dfcc85f1513a0ef7b2ef7e15f6181d0b09a22a3721ad567b04866de93868677cef994b5a3f897756e68d798f797cdc15d337b6a368868b34f9b0e56", + "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEDjZumIDM/y61xskN7e/K67Vm2fw4EgRf\n/Dprq5qPHD8WcJrrTfzIXxUToO97LvfhX2GB0LCaIqNyGtVnsEhm3pOGhnfO+ZS1\no/iXdW5o15j3l83BXTN7ajaIaLNPmw5W\n-----END PUBLIC KEY-----\n", + "sha": "SHA-256", + "tests": [ + { + "tcId": 471, + "comment": "s = 2^128", + "flags": [ + "ValidSignature" + ], + "msg": "68656c6c6f2c20776f726c64", + "sig": "304502304fd5dd99138e6f1002d2d23591b2f94071a7f5ad49ddb970dc859275bfe51f193470d443e793196901e88bbe749614d702110100000000000000000000000000000000", + "result": "valid" + }, + { + "tcId": 472, + "comment": "s = n - 2^128", + "flags": [ + "ValidSignature" + ], + "msg": "68656c6c6f2c20776f726c64", + "sig": "306502304fd5dd99138e6f1002d2d23591b2f94071a7f5ad49ddb970dc859275bfe51f193470d443e793196901e88bbe749614d7023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372dde581a0db248b0a77aecec196accc52973", + "result": "valid" + } + ] } ] }
diff --git a/third_party/wycheproof_testvectors/ecdsa_secp384r1_sha384_p1363_test.json b/third_party/wycheproof_testvectors/ecdsa_secp384r1_sha384_p1363_test.json index cb432db..be2d9c2 100644 --- a/third_party/wycheproof_testvectors/ecdsa_secp384r1_sha384_p1363_test.json +++ b/third_party/wycheproof_testvectors/ecdsa_secp384r1_sha384_p1363_test.json
@@ -1,7 +1,7 @@ { "algorithm": "ECDSA", "schema": "ecdsa_p1363_verify_schema_v1.json", - "numberOfTests": 278, + "numberOfTests": 280, "header": [ "Test vectors of type EcdsaVerify are meant for the verification", "of IEEE P1363 encoded ECDSA signatures." @@ -5627,6 +5627,46 @@ "result": "invalid" } ] + }, + { + "type": "EcdsaP1363Verify", + "source": { + "name": "github/davidben/ecdsa-s-pow2", + "version": "0.1" + }, + "publicKey": { + "type": "EcPublicKey", + "curve": "secp384r1", + "keySize": 384, + "uncompressed": "040a2fc2edd21336babc59da04aa566dc9b6b068162f7970e311136883b61be8f894da03cc8e93a64803d4f4f83a19c1b973076220bf4d40aa9a41cacbafbd32d1f0bd183c327153cd6601bfa81d5e2ec21c0ecc517e004dd3fbedeca7f975a9ed", + "wx": "0a2fc2edd21336babc59da04aa566dc9b6b068162f7970e311136883b61be8f894da03cc8e93a64803d4f4f83a19c1b9", + "wy": "73076220bf4d40aa9a41cacbafbd32d1f0bd183c327153cd6601bfa81d5e2ec21c0ecc517e004dd3fbedeca7f975a9ed" + }, + "publicKeyDer": "3076301006072a8648ce3d020106052b81040022036200040a2fc2edd21336babc59da04aa566dc9b6b068162f7970e311136883b61be8f894da03cc8e93a64803d4f4f83a19c1b973076220bf4d40aa9a41cacbafbd32d1f0bd183c327153cd6601bfa81d5e2ec21c0ecc517e004dd3fbedeca7f975a9ed", + "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAECi/C7dITNrq8WdoEqlZtybawaBYveXDj\nERNog7Yb6PiU2gPMjpOmSAPU9Pg6GcG5cwdiIL9NQKqaQcrLr70y0fC9GDwycVPN\nZgG/qB1eLsIcDsxRfgBN0/vt7Kf5dant\n-----END PUBLIC KEY-----\n", + "sha": "SHA-384", + "tests": [ + { + "tcId": 279, + "comment": "s = 2^128", + "flags": [ + "ValidSignature" + ], + "msg": "68656c6c6f2c20776f726c64", + "sig": "4fd5dd99138e6f1002d2d23591b2f94071a7f5ad49ddb970dc859275bfe51f193470d443e793196901e88bbe749614d7000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000", + "result": "valid" + }, + { + "tcId": 280, + "comment": "s = n - 2^128", + "flags": [ + "ValidSignature" + ], + "msg": "68656c6c6f2c20776f726c64", + "sig": "4fd5dd99138e6f1002d2d23591b2f94071a7f5ad49ddb970dc859275bfe51f193470d443e793196901e88bbe749614d7ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372dde581a0db248b0a77aecec196accc52973", + "result": "valid" + } + ] } ] }
diff --git a/third_party/wycheproof_testvectors/ecdsa_secp384r1_sha384_p1363_test.txt b/third_party/wycheproof_testvectors/ecdsa_secp384r1_sha384_p1363_test.txt index 649d4b6..3c5388d 100644 --- a/third_party/wycheproof_testvectors/ecdsa_secp384r1_sha384_p1363_test.txt +++ b/third_party/wycheproof_testvectors/ecdsa_secp384r1_sha384_p1363_test.txt
@@ -2878,3 +2878,26 @@ sig = 000000000000000000000000000000000000000000000000389cb27e0bc8d220a7e5f24db74f58851313e695333ad68fffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52970 flags = ArithmeticError +[publicKey.curve = secp384r1] +[publicKey.keySize = 384] +[publicKey.type = EcPublicKey] +[publicKey.uncompressed = 040a2fc2edd21336babc59da04aa566dc9b6b068162f7970e311136883b61be8f894da03cc8e93a64803d4f4f83a19c1b973076220bf4d40aa9a41cacbafbd32d1f0bd183c327153cd6601bfa81d5e2ec21c0ecc517e004dd3fbedeca7f975a9ed] +[publicKey.wx = 0a2fc2edd21336babc59da04aa566dc9b6b068162f7970e311136883b61be8f894da03cc8e93a64803d4f4f83a19c1b9] +[publicKey.wy = 73076220bf4d40aa9a41cacbafbd32d1f0bd183c327153cd6601bfa81d5e2ec21c0ecc517e004dd3fbedeca7f975a9ed] +[publicKeyDer = 3076301006072a8648ce3d020106052b81040022036200040a2fc2edd21336babc59da04aa566dc9b6b068162f7970e311136883b61be8f894da03cc8e93a64803d4f4f83a19c1b973076220bf4d40aa9a41cacbafbd32d1f0bd183c327153cd6601bfa81d5e2ec21c0ecc517e004dd3fbedeca7f975a9ed] +[sha = SHA-384] + +# tcId = 279 +# s = 2^128 +msg = 68656c6c6f2c20776f726c64 +result = valid +sig = 4fd5dd99138e6f1002d2d23591b2f94071a7f5ad49ddb970dc859275bfe51f193470d443e793196901e88bbe749614d7000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000 +flags = ValidSignature + +# tcId = 280 +# s = n - 2^128 +msg = 68656c6c6f2c20776f726c64 +result = valid +sig = 4fd5dd99138e6f1002d2d23591b2f94071a7f5ad49ddb970dc859275bfe51f193470d443e793196901e88bbe749614d7ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372dde581a0db248b0a77aecec196accc52973 +flags = ValidSignature +
diff --git a/third_party/wycheproof_testvectors/ecdsa_secp384r1_sha384_test.json b/third_party/wycheproof_testvectors/ecdsa_secp384r1_sha384_test.json index 09015f0..19df1b5 100644 --- a/third_party/wycheproof_testvectors/ecdsa_secp384r1_sha384_test.json +++ b/third_party/wycheproof_testvectors/ecdsa_secp384r1_sha384_test.json
@@ -1,7 +1,7 @@ { "algorithm": "ECDSA", "schema": "ecdsa_verify_schema_v1.json", - "numberOfTests": 502, + "numberOfTests": 504, "header": [ "Test vectors of type EcdsaVerify are meant for the verification", "of ASN encoded ECDSA signatures." @@ -7236,6 +7236,46 @@ "result": "invalid" } ] + }, + { + "type": "EcdsaVerify", + "source": { + "name": "github/davidben/ecdsa-s-pow2", + "version": "0.1" + }, + "publicKey": { + "type": "EcPublicKey", + "curve": "secp384r1", + "keySize": 384, + "uncompressed": "040a2fc2edd21336babc59da04aa566dc9b6b068162f7970e311136883b61be8f894da03cc8e93a64803d4f4f83a19c1b973076220bf4d40aa9a41cacbafbd32d1f0bd183c327153cd6601bfa81d5e2ec21c0ecc517e004dd3fbedeca7f975a9ed", + "wx": "0a2fc2edd21336babc59da04aa566dc9b6b068162f7970e311136883b61be8f894da03cc8e93a64803d4f4f83a19c1b9", + "wy": "73076220bf4d40aa9a41cacbafbd32d1f0bd183c327153cd6601bfa81d5e2ec21c0ecc517e004dd3fbedeca7f975a9ed" + }, + "publicKeyDer": "3076301006072a8648ce3d020106052b81040022036200040a2fc2edd21336babc59da04aa566dc9b6b068162f7970e311136883b61be8f894da03cc8e93a64803d4f4f83a19c1b973076220bf4d40aa9a41cacbafbd32d1f0bd183c327153cd6601bfa81d5e2ec21c0ecc517e004dd3fbedeca7f975a9ed", + "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAECi/C7dITNrq8WdoEqlZtybawaBYveXDj\nERNog7Yb6PiU2gPMjpOmSAPU9Pg6GcG5cwdiIL9NQKqaQcrLr70y0fC9GDwycVPN\nZgG/qB1eLsIcDsxRfgBN0/vt7Kf5dant\n-----END PUBLIC KEY-----\n", + "sha": "SHA-384", + "tests": [ + { + "tcId": 503, + "comment": "s = 2^128", + "flags": [ + "ValidSignature" + ], + "msg": "68656c6c6f2c20776f726c64", + "sig": "304502304fd5dd99138e6f1002d2d23591b2f94071a7f5ad49ddb970dc859275bfe51f193470d443e793196901e88bbe749614d702110100000000000000000000000000000000", + "result": "valid" + }, + { + "tcId": 504, + "comment": "s = n - 2^128", + "flags": [ + "ValidSignature" + ], + "msg": "68656c6c6f2c20776f726c64", + "sig": "306502304fd5dd99138e6f1002d2d23591b2f94071a7f5ad49ddb970dc859275bfe51f193470d443e793196901e88bbe749614d7023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372dde581a0db248b0a77aecec196accc52973", + "result": "valid" + } + ] } ] }
diff --git a/third_party/wycheproof_testvectors/ecdsa_secp384r1_sha384_test.txt b/third_party/wycheproof_testvectors/ecdsa_secp384r1_sha384_test.txt index 4326869..89c1ac7 100644 --- a/third_party/wycheproof_testvectors/ecdsa_secp384r1_sha384_test.txt +++ b/third_party/wycheproof_testvectors/ecdsa_secp384r1_sha384_test.txt
@@ -4457,3 +4457,26 @@ sig = 304d0218389cb27e0bc8d220a7e5f24db74f58851313e695333ad68f023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52970 flags = ArithmeticError +[publicKey.curve = secp384r1] +[publicKey.keySize = 384] +[publicKey.type = EcPublicKey] +[publicKey.uncompressed = 040a2fc2edd21336babc59da04aa566dc9b6b068162f7970e311136883b61be8f894da03cc8e93a64803d4f4f83a19c1b973076220bf4d40aa9a41cacbafbd32d1f0bd183c327153cd6601bfa81d5e2ec21c0ecc517e004dd3fbedeca7f975a9ed] +[publicKey.wx = 0a2fc2edd21336babc59da04aa566dc9b6b068162f7970e311136883b61be8f894da03cc8e93a64803d4f4f83a19c1b9] +[publicKey.wy = 73076220bf4d40aa9a41cacbafbd32d1f0bd183c327153cd6601bfa81d5e2ec21c0ecc517e004dd3fbedeca7f975a9ed] +[publicKeyDer = 3076301006072a8648ce3d020106052b81040022036200040a2fc2edd21336babc59da04aa566dc9b6b068162f7970e311136883b61be8f894da03cc8e93a64803d4f4f83a19c1b973076220bf4d40aa9a41cacbafbd32d1f0bd183c327153cd6601bfa81d5e2ec21c0ecc517e004dd3fbedeca7f975a9ed] +[sha = SHA-384] + +# tcId = 503 +# s = 2^128 +msg = 68656c6c6f2c20776f726c64 +result = valid +sig = 304502304fd5dd99138e6f1002d2d23591b2f94071a7f5ad49ddb970dc859275bfe51f193470d443e793196901e88bbe749614d702110100000000000000000000000000000000 +flags = ValidSignature + +# tcId = 504 +# s = n - 2^128 +msg = 68656c6c6f2c20776f726c64 +result = valid +sig = 306502304fd5dd99138e6f1002d2d23591b2f94071a7f5ad49ddb970dc859275bfe51f193470d443e793196901e88bbe749614d7023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372dde581a0db248b0a77aecec196accc52973 +flags = ValidSignature +
diff --git a/third_party/wycheproof_testvectors/ecdsa_secp384r1_sha512_p1363_test.json b/third_party/wycheproof_testvectors/ecdsa_secp384r1_sha512_p1363_test.json index e06ee0a..c283280 100644 --- a/third_party/wycheproof_testvectors/ecdsa_secp384r1_sha512_p1363_test.json +++ b/third_party/wycheproof_testvectors/ecdsa_secp384r1_sha512_p1363_test.json
@@ -1,7 +1,7 @@ { "algorithm": "ECDSA", "schema": "ecdsa_p1363_verify_schema_v1.json", - "numberOfTests": 316, + "numberOfTests": 318, "header": [ "Test vectors of type EcdsaVerify are meant for the verification", "of IEEE P1363 encoded ECDSA signatures." @@ -6011,6 +6011,46 @@ "result": "invalid" } ] + }, + { + "type": "EcdsaP1363Verify", + "source": { + "name": "github/davidben/ecdsa-s-pow2", + "version": "0.1" + }, + "publicKey": { + "type": "EcPublicKey", + "curve": "secp384r1", + "keySize": 384, + "uncompressed": "04318a473b7655b4b3b72f79d95682c4e4b67b28b341a7bfb75bdcd61f116adcfe16793b7124959c28be8ee68e026c79226e08c57dc616c96c995167854ce73c845163f4dddea86fea7469cf632261793f7ba0681035bade21bbc3d45c32a5b7e8", + "wx": "318a473b7655b4b3b72f79d95682c4e4b67b28b341a7bfb75bdcd61f116adcfe16793b7124959c28be8ee68e026c7922", + "wy": "6e08c57dc616c96c995167854ce73c845163f4dddea86fea7469cf632261793f7ba0681035bade21bbc3d45c32a5b7e8" + }, + "publicKeyDer": "3076301006072a8648ce3d020106052b8104002203620004318a473b7655b4b3b72f79d95682c4e4b67b28b341a7bfb75bdcd61f116adcfe16793b7124959c28be8ee68e026c79226e08c57dc616c96c995167854ce73c845163f4dddea86fea7469cf632261793f7ba0681035bade21bbc3d45c32a5b7e8", + "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEMYpHO3ZVtLO3L3nZVoLE5LZ7KLNBp7+3\nW9zWHxFq3P4WeTtxJJWcKL6O5o4CbHkibgjFfcYWyWyZUWeFTOc8hFFj9N3eqG/q\ndGnPYyJheT97oGgQNbreIbvD1Fwypbfo\n-----END PUBLIC KEY-----\n", + "sha": "SHA-512", + "tests": [ + { + "tcId": 317, + "comment": "s = 2^128", + "flags": [ + "ValidSignature" + ], + "msg": "68656c6c6f2c20776f726c64", + "sig": "4fd5dd99138e6f1002d2d23591b2f94071a7f5ad49ddb970dc859275bfe51f193470d443e793196901e88bbe749614d7000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000", + "result": "valid" + }, + { + "tcId": 318, + "comment": "s = n - 2^128", + "flags": [ + "ValidSignature" + ], + "msg": "68656c6c6f2c20776f726c64", + "sig": "4fd5dd99138e6f1002d2d23591b2f94071a7f5ad49ddb970dc859275bfe51f193470d443e793196901e88bbe749614d7ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372dde581a0db248b0a77aecec196accc52973", + "result": "valid" + } + ] } ] }
diff --git a/third_party/wycheproof_testvectors/ecdsa_secp384r1_sha512_p1363_test.txt b/third_party/wycheproof_testvectors/ecdsa_secp384r1_sha512_p1363_test.txt index e9f35ab..707779f 100644 --- a/third_party/wycheproof_testvectors/ecdsa_secp384r1_sha512_p1363_test.txt +++ b/third_party/wycheproof_testvectors/ecdsa_secp384r1_sha512_p1363_test.txt
@@ -3144,3 +3144,26 @@ sig = 000000000000000000000000000000000000000000000000389cb27e0bc8d220a7e5f24db74f58851313e695333ad68fffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52970 flags = ArithmeticError +[publicKey.curve = secp384r1] +[publicKey.keySize = 384] +[publicKey.type = EcPublicKey] +[publicKey.uncompressed = 04318a473b7655b4b3b72f79d95682c4e4b67b28b341a7bfb75bdcd61f116adcfe16793b7124959c28be8ee68e026c79226e08c57dc616c96c995167854ce73c845163f4dddea86fea7469cf632261793f7ba0681035bade21bbc3d45c32a5b7e8] +[publicKey.wx = 318a473b7655b4b3b72f79d95682c4e4b67b28b341a7bfb75bdcd61f116adcfe16793b7124959c28be8ee68e026c7922] +[publicKey.wy = 6e08c57dc616c96c995167854ce73c845163f4dddea86fea7469cf632261793f7ba0681035bade21bbc3d45c32a5b7e8] +[publicKeyDer = 3076301006072a8648ce3d020106052b8104002203620004318a473b7655b4b3b72f79d95682c4e4b67b28b341a7bfb75bdcd61f116adcfe16793b7124959c28be8ee68e026c79226e08c57dc616c96c995167854ce73c845163f4dddea86fea7469cf632261793f7ba0681035bade21bbc3d45c32a5b7e8] +[sha = SHA-512] + +# tcId = 317 +# s = 2^128 +msg = 68656c6c6f2c20776f726c64 +result = valid +sig = 4fd5dd99138e6f1002d2d23591b2f94071a7f5ad49ddb970dc859275bfe51f193470d443e793196901e88bbe749614d7000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000 +flags = ValidSignature + +# tcId = 318 +# s = n - 2^128 +msg = 68656c6c6f2c20776f726c64 +result = valid +sig = 4fd5dd99138e6f1002d2d23591b2f94071a7f5ad49ddb970dc859275bfe51f193470d443e793196901e88bbe749614d7ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372dde581a0db248b0a77aecec196accc52973 +flags = ValidSignature +
diff --git a/third_party/wycheproof_testvectors/ecdsa_secp384r1_sha512_test.json b/third_party/wycheproof_testvectors/ecdsa_secp384r1_sha512_test.json index f6f3142..c236b49 100644 --- a/third_party/wycheproof_testvectors/ecdsa_secp384r1_sha512_test.json +++ b/third_party/wycheproof_testvectors/ecdsa_secp384r1_sha512_test.json
@@ -1,7 +1,7 @@ { "algorithm": "ECDSA", "schema": "ecdsa_verify_schema_v1.json", - "numberOfTests": 540, + "numberOfTests": 542, "header": [ "Test vectors of type EcdsaVerify are meant for the verification", "of ASN encoded ECDSA signatures." @@ -7620,6 +7620,46 @@ "result": "invalid" } ] + }, + { + "type": "EcdsaVerify", + "source": { + "name": "github/davidben/ecdsa-s-pow2", + "version": "0.1" + }, + "publicKey": { + "type": "EcPublicKey", + "curve": "secp384r1", + "keySize": 384, + "uncompressed": "04318a473b7655b4b3b72f79d95682c4e4b67b28b341a7bfb75bdcd61f116adcfe16793b7124959c28be8ee68e026c79226e08c57dc616c96c995167854ce73c845163f4dddea86fea7469cf632261793f7ba0681035bade21bbc3d45c32a5b7e8", + "wx": "318a473b7655b4b3b72f79d95682c4e4b67b28b341a7bfb75bdcd61f116adcfe16793b7124959c28be8ee68e026c7922", + "wy": "6e08c57dc616c96c995167854ce73c845163f4dddea86fea7469cf632261793f7ba0681035bade21bbc3d45c32a5b7e8" + }, + "publicKeyDer": "3076301006072a8648ce3d020106052b8104002203620004318a473b7655b4b3b72f79d95682c4e4b67b28b341a7bfb75bdcd61f116adcfe16793b7124959c28be8ee68e026c79226e08c57dc616c96c995167854ce73c845163f4dddea86fea7469cf632261793f7ba0681035bade21bbc3d45c32a5b7e8", + "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEMYpHO3ZVtLO3L3nZVoLE5LZ7KLNBp7+3\nW9zWHxFq3P4WeTtxJJWcKL6O5o4CbHkibgjFfcYWyWyZUWeFTOc8hFFj9N3eqG/q\ndGnPYyJheT97oGgQNbreIbvD1Fwypbfo\n-----END PUBLIC KEY-----\n", + "sha": "SHA-512", + "tests": [ + { + "tcId": 541, + "comment": "s = 2^128", + "flags": [ + "ValidSignature" + ], + "msg": "68656c6c6f2c20776f726c64", + "sig": "304502304fd5dd99138e6f1002d2d23591b2f94071a7f5ad49ddb970dc859275bfe51f193470d443e793196901e88bbe749614d702110100000000000000000000000000000000", + "result": "valid" + }, + { + "tcId": 542, + "comment": "s = n - 2^128", + "flags": [ + "ValidSignature" + ], + "msg": "68656c6c6f2c20776f726c64", + "sig": "306502304fd5dd99138e6f1002d2d23591b2f94071a7f5ad49ddb970dc859275bfe51f193470d443e793196901e88bbe749614d7023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372dde581a0db248b0a77aecec196accc52973", + "result": "valid" + } + ] } ] }
diff --git a/third_party/wycheproof_testvectors/ecdsa_secp384r1_sha512_test.txt b/third_party/wycheproof_testvectors/ecdsa_secp384r1_sha512_test.txt index 07e8314..ff83132 100644 --- a/third_party/wycheproof_testvectors/ecdsa_secp384r1_sha512_test.txt +++ b/third_party/wycheproof_testvectors/ecdsa_secp384r1_sha512_test.txt
@@ -4723,3 +4723,26 @@ sig = 304d0218389cb27e0bc8d220a7e5f24db74f58851313e695333ad68f023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52970 flags = ArithmeticError +[publicKey.curve = secp384r1] +[publicKey.keySize = 384] +[publicKey.type = EcPublicKey] +[publicKey.uncompressed = 04318a473b7655b4b3b72f79d95682c4e4b67b28b341a7bfb75bdcd61f116adcfe16793b7124959c28be8ee68e026c79226e08c57dc616c96c995167854ce73c845163f4dddea86fea7469cf632261793f7ba0681035bade21bbc3d45c32a5b7e8] +[publicKey.wx = 318a473b7655b4b3b72f79d95682c4e4b67b28b341a7bfb75bdcd61f116adcfe16793b7124959c28be8ee68e026c7922] +[publicKey.wy = 6e08c57dc616c96c995167854ce73c845163f4dddea86fea7469cf632261793f7ba0681035bade21bbc3d45c32a5b7e8] +[publicKeyDer = 3076301006072a8648ce3d020106052b8104002203620004318a473b7655b4b3b72f79d95682c4e4b67b28b341a7bfb75bdcd61f116adcfe16793b7124959c28be8ee68e026c79226e08c57dc616c96c995167854ce73c845163f4dddea86fea7469cf632261793f7ba0681035bade21bbc3d45c32a5b7e8] +[sha = SHA-512] + +# tcId = 541 +# s = 2^128 +msg = 68656c6c6f2c20776f726c64 +result = valid +sig = 304502304fd5dd99138e6f1002d2d23591b2f94071a7f5ad49ddb970dc859275bfe51f193470d443e793196901e88bbe749614d702110100000000000000000000000000000000 +flags = ValidSignature + +# tcId = 542 +# s = n - 2^128 +msg = 68656c6c6f2c20776f726c64 +result = valid +sig = 306502304fd5dd99138e6f1002d2d23591b2f94071a7f5ad49ddb970dc859275bfe51f193470d443e793196901e88bbe749614d7023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372dde581a0db248b0a77aecec196accc52973 +flags = ValidSignature +
diff --git a/third_party/wycheproof_testvectors/ecdsa_secp521r1_sha512_p1363_test.json b/third_party/wycheproof_testvectors/ecdsa_secp521r1_sha512_p1363_test.json index 872c960..f0494e9 100644 --- a/third_party/wycheproof_testvectors/ecdsa_secp521r1_sha512_p1363_test.json +++ b/third_party/wycheproof_testvectors/ecdsa_secp521r1_sha512_p1363_test.json
@@ -1,7 +1,7 @@ { "algorithm": "ECDSA", "schema": "ecdsa_p1363_verify_schema_v1.json", - "numberOfTests": 316, + "numberOfTests": 318, "header": [ "Test vectors of type EcdsaVerify are meant for the verification", "of IEEE P1363 encoded ECDSA signatures." @@ -6088,6 +6088,46 @@ "result": "invalid" } ] + }, + { + "type": "EcdsaP1363Verify", + "source": { + "name": "github/davidben/ecdsa-s-pow2", + "version": "0.1" + }, + "publicKey": { + "type": "EcPublicKey", + "curve": "secp521r1", + "keySize": 521, + "uncompressed": "0401977819459a734b2cbee8f467e149058cb475ae33635708cf0e84d36bb993d30d4c84b8fea8b268775d30fa709525ef2cebf2aabcc0bccc377044ce8b46a8ccb188012679a509aba331c3ffe21fcd804705cef2496c47a553e8d442ea4c4e057ba9f965cd5fbf139ecc09cbb52c4918a057e6a2ca0dfab9eaa94c00f5ac11899bf76108", + "wx": "01977819459a734b2cbee8f467e149058cb475ae33635708cf0e84d36bb993d30d4c84b8fea8b268775d30fa709525ef2cebf2aabcc0bccc377044ce8b46a8ccb188", + "wy": "012679a509aba331c3ffe21fcd804705cef2496c47a553e8d442ea4c4e057ba9f965cd5fbf139ecc09cbb52c4918a057e6a2ca0dfab9eaa94c00f5ac11899bf76108" + }, + "publicKeyDer": "30819b301006072a8648ce3d020106052b81040023038186000401977819459a734b2cbee8f467e149058cb475ae33635708cf0e84d36bb993d30d4c84b8fea8b268775d30fa709525ef2cebf2aabcc0bccc377044ce8b46a8ccb188012679a509aba331c3ffe21fcd804705cef2496c47a553e8d442ea4c4e057ba9f965cd5fbf139ecc09cbb52c4918a057e6a2ca0dfab9eaa94c00f5ac11899bf76108", + "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMIGbMBAGByqGSM49AgEGBSuBBAAjA4GGAAQBl3gZRZpzSyy+6PRn4UkFjLR1rjNj\nVwjPDoTTa7mT0w1MhLj+qLJod10w+nCVJe8s6/KqvMC8zDdwRM6LRqjMsYgBJnml\nCaujMcP/4h/NgEcFzvJJbEelU+jUQupMTgV7qfllzV+/E57MCcu1LEkYoFfmosoN\n+rnqqUwA9awRiZv3YQg=\n-----END PUBLIC KEY-----\n", + "sha": "SHA-512", + "tests": [ + { + "tcId": 317, + "comment": "s = 2^128", + "flags": [ + "ValidSignature" + ], + "msg": "68656c6c6f2c20776f726c64", + "sig": "016566c3ecc96e5651b34620c2a91c28423affa5404f9e2d3d988834bbe09ee10feaaddd52e69303d0c9d4e2c86d2abdf112e848b95da38f504de67dba3fd89378d5000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000", + "result": "valid" + }, + { + "tcId": 318, + "comment": "s = n - 2^128", + "flags": [ + "ValidSignature" + ], + "msg": "68656c6c6f2c20776f726c64", + "sig": "016566c3ecc96e5651b34620c2a91c28423affa5404f9e2d3d988834bbe09ee10feaaddd52e69303d0c9d4e2c86d2abdf112e848b95da38f504de67dba3fd89378d501fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5cf3bb5c9b8899c47aebb6fb71e91386409", + "result": "valid" + } + ] } ] }
diff --git a/third_party/wycheproof_testvectors/ecdsa_secp521r1_sha512_p1363_test.txt b/third_party/wycheproof_testvectors/ecdsa_secp521r1_sha512_p1363_test.txt index 9e58c73..04f979b 100644 --- a/third_party/wycheproof_testvectors/ecdsa_secp521r1_sha512_p1363_test.txt +++ b/third_party/wycheproof_testvectors/ecdsa_secp521r1_sha512_p1363_test.txt
@@ -3171,3 +3171,26 @@ sig = 00000000000000000000000000000000000000000000000000000000000000000005ae79787c40d069948033feb708f65a2fc44a36477663b851449048e16ec79bf801fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386406 flags = ArithmeticError +[publicKey.curve = secp521r1] +[publicKey.keySize = 521] +[publicKey.type = EcPublicKey] +[publicKey.uncompressed = 0401977819459a734b2cbee8f467e149058cb475ae33635708cf0e84d36bb993d30d4c84b8fea8b268775d30fa709525ef2cebf2aabcc0bccc377044ce8b46a8ccb188012679a509aba331c3ffe21fcd804705cef2496c47a553e8d442ea4c4e057ba9f965cd5fbf139ecc09cbb52c4918a057e6a2ca0dfab9eaa94c00f5ac11899bf76108] +[publicKey.wx = 01977819459a734b2cbee8f467e149058cb475ae33635708cf0e84d36bb993d30d4c84b8fea8b268775d30fa709525ef2cebf2aabcc0bccc377044ce8b46a8ccb188] +[publicKey.wy = 012679a509aba331c3ffe21fcd804705cef2496c47a553e8d442ea4c4e057ba9f965cd5fbf139ecc09cbb52c4918a057e6a2ca0dfab9eaa94c00f5ac11899bf76108] +[publicKeyDer = 30819b301006072a8648ce3d020106052b81040023038186000401977819459a734b2cbee8f467e149058cb475ae33635708cf0e84d36bb993d30d4c84b8fea8b268775d30fa709525ef2cebf2aabcc0bccc377044ce8b46a8ccb188012679a509aba331c3ffe21fcd804705cef2496c47a553e8d442ea4c4e057ba9f965cd5fbf139ecc09cbb52c4918a057e6a2ca0dfab9eaa94c00f5ac11899bf76108] +[sha = SHA-512] + +# tcId = 317 +# s = 2^128 +msg = 68656c6c6f2c20776f726c64 +result = valid +sig = 016566c3ecc96e5651b34620c2a91c28423affa5404f9e2d3d988834bbe09ee10feaaddd52e69303d0c9d4e2c86d2abdf112e848b95da38f504de67dba3fd89378d5000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000 +flags = ValidSignature + +# tcId = 318 +# s = n - 2^128 +msg = 68656c6c6f2c20776f726c64 +result = valid +sig = 016566c3ecc96e5651b34620c2a91c28423affa5404f9e2d3d988834bbe09ee10feaaddd52e69303d0c9d4e2c86d2abdf112e848b95da38f504de67dba3fd89378d501fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5cf3bb5c9b8899c47aebb6fb71e91386409 +flags = ValidSignature +
diff --git a/third_party/wycheproof_testvectors/ecdsa_secp521r1_sha512_test.json b/third_party/wycheproof_testvectors/ecdsa_secp521r1_sha512_test.json index 9d7a9c3..f831d74 100644 --- a/third_party/wycheproof_testvectors/ecdsa_secp521r1_sha512_test.json +++ b/third_party/wycheproof_testvectors/ecdsa_secp521r1_sha512_test.json
@@ -1,7 +1,7 @@ { "algorithm": "ECDSA", "schema": "ecdsa_verify_schema_v1.json", - "numberOfTests": 540, + "numberOfTests": 542, "header": [ "Test vectors of type EcdsaVerify are meant for the verification", "of ASN encoded ECDSA signatures." @@ -7671,6 +7671,46 @@ "result": "invalid" } ] + }, + { + "type": "EcdsaVerify", + "source": { + "name": "github/davidben/ecdsa-s-pow2", + "version": "0.1" + }, + "publicKey": { + "type": "EcPublicKey", + "curve": "secp521r1", + "keySize": 521, + "uncompressed": "0401977819459a734b2cbee8f467e149058cb475ae33635708cf0e84d36bb993d30d4c84b8fea8b268775d30fa709525ef2cebf2aabcc0bccc377044ce8b46a8ccb188012679a509aba331c3ffe21fcd804705cef2496c47a553e8d442ea4c4e057ba9f965cd5fbf139ecc09cbb52c4918a057e6a2ca0dfab9eaa94c00f5ac11899bf76108", + "wx": "01977819459a734b2cbee8f467e149058cb475ae33635708cf0e84d36bb993d30d4c84b8fea8b268775d30fa709525ef2cebf2aabcc0bccc377044ce8b46a8ccb188", + "wy": "012679a509aba331c3ffe21fcd804705cef2496c47a553e8d442ea4c4e057ba9f965cd5fbf139ecc09cbb52c4918a057e6a2ca0dfab9eaa94c00f5ac11899bf76108" + }, + "publicKeyDer": "30819b301006072a8648ce3d020106052b81040023038186000401977819459a734b2cbee8f467e149058cb475ae33635708cf0e84d36bb993d30d4c84b8fea8b268775d30fa709525ef2cebf2aabcc0bccc377044ce8b46a8ccb188012679a509aba331c3ffe21fcd804705cef2496c47a553e8d442ea4c4e057ba9f965cd5fbf139ecc09cbb52c4918a057e6a2ca0dfab9eaa94c00f5ac11899bf76108", + "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMIGbMBAGByqGSM49AgEGBSuBBAAjA4GGAAQBl3gZRZpzSyy+6PRn4UkFjLR1rjNj\nVwjPDoTTa7mT0w1MhLj+qLJod10w+nCVJe8s6/KqvMC8zDdwRM6LRqjMsYgBJnml\nCaujMcP/4h/NgEcFzvJJbEelU+jUQupMTgV7qfllzV+/E57MCcu1LEkYoFfmosoN\n+rnqqUwA9awRiZv3YQg=\n-----END PUBLIC KEY-----\n", + "sha": "SHA-512", + "tests": [ + { + "tcId": 541, + "comment": "s = 2^128", + "flags": [ + "ValidSignature" + ], + "msg": "68656c6c6f2c20776f726c64", + "sig": "30570242016566c3ecc96e5651b34620c2a91c28423affa5404f9e2d3d988834bbe09ee10feaaddd52e69303d0c9d4e2c86d2abdf112e848b95da38f504de67dba3fd89378d502110100000000000000000000000000000000", + "result": "valid" + }, + { + "tcId": 542, + "comment": "s = n - 2^128", + "flags": [ + "ValidSignature" + ], + "msg": "68656c6c6f2c20776f726c64", + "sig": "3081880242016566c3ecc96e5651b34620c2a91c28423affa5404f9e2d3d988834bbe09ee10feaaddd52e69303d0c9d4e2c86d2abdf112e848b95da38f504de67dba3fd89378d5024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5cf3bb5c9b8899c47aebb6fb71e91386409", + "result": "valid" + } + ] } ] }
diff --git a/third_party/wycheproof_testvectors/ecdsa_secp521r1_sha512_test.txt b/third_party/wycheproof_testvectors/ecdsa_secp521r1_sha512_test.txt index 99c60bd..9312d8f 100644 --- a/third_party/wycheproof_testvectors/ecdsa_secp521r1_sha512_test.txt +++ b/third_party/wycheproof_testvectors/ecdsa_secp521r1_sha512_test.txt
@@ -4750,3 +4750,26 @@ sig = 3067022105ae79787c40d069948033feb708f65a2fc44a36477663b851449048e16ec79bf8024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386406 flags = ArithmeticError +[publicKey.curve = secp521r1] +[publicKey.keySize = 521] +[publicKey.type = EcPublicKey] +[publicKey.uncompressed = 0401977819459a734b2cbee8f467e149058cb475ae33635708cf0e84d36bb993d30d4c84b8fea8b268775d30fa709525ef2cebf2aabcc0bccc377044ce8b46a8ccb188012679a509aba331c3ffe21fcd804705cef2496c47a553e8d442ea4c4e057ba9f965cd5fbf139ecc09cbb52c4918a057e6a2ca0dfab9eaa94c00f5ac11899bf76108] +[publicKey.wx = 01977819459a734b2cbee8f467e149058cb475ae33635708cf0e84d36bb993d30d4c84b8fea8b268775d30fa709525ef2cebf2aabcc0bccc377044ce8b46a8ccb188] +[publicKey.wy = 012679a509aba331c3ffe21fcd804705cef2496c47a553e8d442ea4c4e057ba9f965cd5fbf139ecc09cbb52c4918a057e6a2ca0dfab9eaa94c00f5ac11899bf76108] +[publicKeyDer = 30819b301006072a8648ce3d020106052b81040023038186000401977819459a734b2cbee8f467e149058cb475ae33635708cf0e84d36bb993d30d4c84b8fea8b268775d30fa709525ef2cebf2aabcc0bccc377044ce8b46a8ccb188012679a509aba331c3ffe21fcd804705cef2496c47a553e8d442ea4c4e057ba9f965cd5fbf139ecc09cbb52c4918a057e6a2ca0dfab9eaa94c00f5ac11899bf76108] +[sha = SHA-512] + +# tcId = 541 +# s = 2^128 +msg = 68656c6c6f2c20776f726c64 +result = valid +sig = 30570242016566c3ecc96e5651b34620c2a91c28423affa5404f9e2d3d988834bbe09ee10feaaddd52e69303d0c9d4e2c86d2abdf112e848b95da38f504de67dba3fd89378d502110100000000000000000000000000000000 +flags = ValidSignature + +# tcId = 542 +# s = n - 2^128 +msg = 68656c6c6f2c20776f726c64 +result = valid +sig = 3081880242016566c3ecc96e5651b34620c2a91c28423affa5404f9e2d3d988834bbe09ee10feaaddd52e69303d0c9d4e2c86d2abdf112e848b95da38f504de67dba3fd89378d5024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5cf3bb5c9b8899c47aebb6fb71e91386409 +flags = ValidSignature +
diff --git a/third_party/wycheproof_testvectors/mldsa_44_sign_seed_test.json b/third_party/wycheproof_testvectors/mldsa_44_sign_seed_test.json index b2a4a66..1aae5b5 100644 --- a/third_party/wycheproof_testvectors/mldsa_44_sign_seed_test.json +++ b/third_party/wycheproof_testvectors/mldsa_44_sign_seed_test.json
@@ -29,7 +29,7 @@ "description": "The private key has an incorrect length." } }, - "numberOfTests": 84, + "numberOfTests": 85, "schema": "mldsa_sign_seed_schema.json", "testGroups": [ { @@ -1321,6 +1321,30 @@ "mu": "f06188802f2e5edbc95f9f4c8f2998f91261ee003f9017075c129eeadb99abe1e43909881fa0a77ddbb332f011e08b9d5283cf4de0891ff8c3ff064ceb10b943" } ] + }, + { + "type": "MlDsaSign", + "privateSeed": "a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0", + "publicKey": "c90338d0d76b7bbb16a4fbb145ad7c7d093a4ce06a054107af4ca984f543d8f12267e61e3127aec0f9d9eb898c26dc6b9540d404cbc1009e7ac5dcfa5adc904bf7f88a87a4316d9eeaf2ebce301f8f1f9b590abd155e78fb76a069bc07514d472061e132a5caa682057994440e57542541187d0fd3993656578f8b5e7006868f7ecb89bf23198406795655e57220d361615c9548fae360fa10b4a88acb2bb106fee605533d2970d2f858a42895df5a381dd5d8a2293209eef7af0f33e5e7f76498810071eab6650bebc6aed6edd2b59c5a805fdbe2e40e1bed6931061758a3fbcea048ac31568304d8cef02fabadd76c4ef7016a30147dd7659c045c410ef4ad9c9b7a89690a653fb66576e0ae9c806486c83dd9edb10d4afe76bf5978777a13af5c706d3f500ee69c118c41fddc3a66fa92a94b4437a543daca7122d58181a5ed6c7f3b53ffafaa6c576e24ba19974c114ec158732abb92aaf1ccab2c9064aa6567130408072c7b46e8d7a3f28809472af86ce7b5f8f08c423a4c0f1900acb16aaa92eab1df95de4f9808d9cf3b9acd2797e8a7ce7990a26d4a1688839c4a79c5583ed37360db871960e2b2baf455f83d8720fad140969ff265fb2ede72ebb434a7be84d20dcb68ddf1edc18581a9dcafa5757af63ec64ea35b3623017e91e89605c540d7c29f7f44a7723b54bd243e711290519c8cfba027f3d07dd2ccabb292e076530ad1ac78c1695376f6b268b8559ce5f9a239465394d502d21fe4f611e37199864737baa8597b0cd1b1d992c95d9e04fe265954308944208b5811fe1a63ea5c1e7174d27d0a445d094c1402c162e3f57f290bf3e24929b558c181e2e80c8ef2185083e64a3b479bbf932267fb7bdcda0e1a22ea04de9e1fb3ab64ddad23baf1e0316b0d930a8763317c6d591e890a280f31807dda8fbea483da1a5f48427419aee2c6707b30f5644d1e74f4ccc64680e4adf01fcdb1edcb6de0f96ee6d84950a67cb89039c5407ee1929823f2fae55b73207f349fc643a14c5ec122f058e07a05f17d53f2930bea61a696f6db9deee1bf2ef4263f7e921acbf35cb79018692961e2da20b0422da00a7cfd100be7bd0b1a7d52d8e09f5339eb46a8d4c541e87a5f29f6d1e167449a02cb859e9936f327a9cc74a8e22e92c78d95a98a923be5138c0fb609cb9c2452a28852b76d49a67d2bc5034adb2abab1f170cdc0c1f15780078ad89bae88cb19352fc6c7d46f52d5aca0e14c1b0d47c8b694246a00cce7120b152eab57f300da90a7e05878c5d209ee5a3624c548a0178844f59e1ee5916a5e5e3e821a9739a95eed055374a3fe5cd3ea58e82512b46cd75d6b662fa6a225acd671c4e217c562c14a939fc5382d23337bf4597082fb5188ca0191bbb022844902769761ddf30802060f2eaa03a5846c1686478917af2a6b76b49b77df50e3f760ddd693a626d1d98e1855bbd52b1e66677f0b74b4a0a54bafcf61498b1ea5b8088c427acde10dcf4ed01d4d65604a2acd9d0b5ddc73ed0d21053eb4378e0cd5063090262b245960d7f6a695a4bbff9abb074975dc28127a05ba39a972bd1e9a1f149ba63e6f26e1909134edb04fd35ee384720606532432f8c62160dea380faa1b1609ce402d98cce40cdf366f3ef42533bdb4ae24aef25c86e45529728740f13df71cc72709b3c3205598dc9fa95314f2eaea71f078fc76399c9b5db704c26060e71afd3315c745dd791abe9335d5dd8248ee68d2a9d72d52dfbdca05fa6d20f5c00f803b92d0cbeb1c8cbf0777f604e4838d29fe2c026215040d988e5bab78476e81f77376961a8d3359aab83bc4a8dab215579acffddd5947645", + "source": { + "name": "github/trailofbits/wycheproof/vector-forge", + "version": "0.1" + }, + "tests": [ + { + "comment": "deterministic signature with ctx length exactly 255 bytes (upper boundary of FIPS 204 domain separator)", + "ctx": "000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfe", + "flags": [ + "ValidSignature", + "BoundaryCondition" + ], + "msg": "577963686570726f6f66206374782d626f756e6461727920746573743a20637478206c656e6774682065786163746c7920323535206279746573", + "mu": "fda5f2240314857c7d76ff027bbc0be0f072723b6a9c07afef777a29aeae02f1413d1e8f051c34e410407a09f447df372340e2bff1af715862fe74933fc7ff3b", + "result": "valid", + "sig": "8a10342703573f91cb9dec8f94ce46a16d1ec22c2246dfb33e8be1607f5b05fb0a0e751ab1610bb855ed310d6896500f57ef44d7365e991210cea78c0435f2b354ce9b4a59e883d1a8995960f5305f4c4a0fe9a265f88bfd9c652c724b961aa555e52d7aaf20759a7eb717352ffa8ae8939913cf30601bbaa9c866743ef95a3d2b2a73ca5cc8117834e00fee127bbff780d56a87ec3a53e1e11af0f4d1f6f466056f8c52fd33a9ed47f87105893e78cf8e35697cd4d7e8ef886975d78783c7acaf97b25c7ae43eec19d04d22979440901f402cce4fea51f8b34490913010473152a3a2ae6fc3349e95d8d2e500e86f1db6ec2b73ccc734a369d8e637ebf6657c05ea9133e6e3d0d12c5577d4b78ea80a190d50c0bae75bbb921f0ef1775e6a42ff45e8642cf2b30b02dd149881746d43f9867fff87c9ab05fa3e22004135d3528d4723003edfeac3cd08da3420c3aa8942b36fe8f7d86ae23b7e8adda0bdfe264afedd07346f117446537bd80640c867ddc31f46381e8e69573c210db39a25476c9a7930d29f4c36417f4f635ea0edf709b9c221213b6368c99b27905d74365fb35bf3f3a57d3b36780bb481b13ed81883d178d9e01abbe1cc84bf6a988675ab36949475f2c362b61cf32f74bd2ab65a3f296eaa44335b9e99913d0aee606e159e460cf74ecbf208f86a585098279343a92309a3cc39adbade7392456b13ec73797390755d858a910e40200b656016192a6cbf8f3eb27442138d10c929516c003a61001a111dcbdc8da6f223ea26bba0dd0eb970eb6b36e931602ec319421fe9cfe425dacb2faabaa08076a78dadef386528aa8c9f6b0199695797fe453085da79632d5e6209b055d77ba9945414260df6b82a68c44951eae4f10b5fba84cbc85f72b86f01f53a419019488b62c1ac194ddcaef9e74ecb7d99071eef2ed3abd894270f9a7a306c75c9445d1ff4c9ecfb267c968fcdfe382f1e9e0d553179cc84ac6c7676b6763984d7a0bbad9ef4c33f1b27246592cadcec2552e7a2847187a571277e856abdc3b1ecc519c8a9a785ba6b1eb30610df9112c53d094c2abc43d62ca3d5c0e166ab3aec51ac5f3259182b9b946a649f7fb32f04387bd58556f7a5bb3d6736a6b40acdd4b514f1b5b95b7c487f91926b4278e4696a63c6dc71b2470c9721dddcb2776a60a6504b5198169f407bbef933471073d4ba527ea6135612cb836beda357f2ffafadad68887237a85af96d68a19a8dcd60112ef5639bbb6aba6328d45b14a403f436761ded05fb2f72682772f1fba788c138d6ff3648ee9e8d717d63c4b320980a81df1a4b0236d94c19b526c2b29a0ac552e1288758fe8be11f40a47040c7592e7efcb257373a873121ac11784ad0107c0fddd4353b4a566cb8ed81454f171e5a5b6bbaee9911a9c7c396ab9c04039af1e618d6167cb26ba34923682e9984c01c7682060efc392e200961213cfb080ab29bdc0dec7db9871b684ae3cb92422d7a779854709f69daf353b9548a38e49a9c35ee5d6af5e2c992cbe42c12a6435285260befede33b92a745aeffdd6cc88f6b8a206750afdff305ae1361f5b38dda2d82b288fdaa94d5f49b6c061d0c16f073c83e38018f2d7caa0b7b52696a51105237015a7e99b0725f89e471829c9ee81c1d6353974068f110f78b75045ec920a8f4c6871c845c3d2072a810489c8650aaffe710985e727c1a1c17701af66ac6e58c5fb3b0b8028306c057185dd45673e15474a6105ec590a1b79f6ad12e9c19d6cbff1b1dbe417bbbff5d91d90fb3413d7b30278247a1fbfde70ead002659561e76f56ea9eaa492e887b3f61b019518935c6d631cc0a72045861960c52c4df6b189d11117cdc4bf7808166b6657721fb8c543078dac24ae11c4b4e9cffe3e2c5cd462e68048676b2c6b168e63cfb5174725dbadbfeef8ad1a2da22710ecdab12d6448242953f31caa78f7ffdaab540ce971be76c745bedb48f5f80b23aa882f5f1387718954692cb4e51f2662201d1d3c09dd4a657616c87cda76157695aaffceaaea95b5b411f511a9b2e845524fd982086929f932035f6939b078bf82227d120a90433967d9a17191093a8bfc465ea6253406e77a6359f1d8d40a2506493bf4c81ff9489039cdd464a176256f1775b9c04b04c936bf41888b8b39f2c63179c934f2563c310bac74313bd048010d2017db5bf823a309181c097604df76de27eee700f9f4b3bf33eff614045a83ee664c95de2c402046c9d3b6d3fcb112e007f94e06d9f8dd4d2ec18917d10e3261f27830c40c69ca00cab1081347e8885e2a7535e841c143b8c5d5402b4f859f1f0d0faa9dd61755d48a769e5e6b513dfd8133c5d916f95e36c9f41c37880affbaed6a169e2bd53f5796dd47c5642b4d5960572f360d19f5de79090e5ed83c1c96745bdf6262ca005bf6997dfe15aaac442ea7f67f20d1660c0a40963f974f103211d28a266d3a6128c590123574f63479060783df4d3fa3bd87c28f28251006ba26e0690c218eaa634cde3fe300e7890e835abc35dff979c5bad40614e2c7c1705b9b85364c503be177a7eaf5d7c919b9f3ac40fd1ad7279f339ab8f13e1c03123594b721a696d530bc1c33444e31db04d8ae688d4276563d8326fb5dc58946e1e25aab4cbc03d20974fbcfafc39025e3b861af37b8caa058988c56f6e6f3ddee9d9709f738377b37ae7416c72c06db610ec572f80604fbdbc9975a41957e54783cb55578bce2741f91967b56dace29f5fea472773fbaf9fe004649100ff26529885727437615dcc6c579db9d0a95ee473e09cab81e23c6bbe11fd6af2ee829116e2698f1a87de45afa3c60bd858faf8fbc3ae4f86ef37c93fbf0a4eaaccaacca2f94430a01c93fc73ef4fe1b82fa88be6c61ce054f155b26004fef0f6da4f5769f56c6254bb9ed7063a943acc8b1302df146f8fd8ffcf79fef3842812b9295bb761c44c82d2976214127e2e085099b9aeabedddc168ebe542857174d60374aae52c02894eb5bbf3f167c9c7766eda961cb19bd52ca351acee657f815d753b1115a63d59d3cc0514890cdc16dc62fb29d1370cee5e80c044ce8c771f2963ba6a98730a79ffa5581c68bb24b77ad2acc465e29192b410a34fada5614a007848e7da8ab3f066cd41a07cb75b2c141dfd7af9e1d951189dc6462f516a285a3da2b426cec674d214d30821ef004f5b24e11ddc19c1a5b9cd945a835e9ae53e2e253b713e67e73ab2e62f69e97e05286d621b65c3729035f97866a52d4998900f034214d1885d24a77773b701c2532485d79888d93a7abb1bed1e1e5f1033b3e506e768aa8bedfe516516167686f758698b9ba102e5b658c929ea7bec3c8d0d1d9e9f600000000000000000000000000000000000000000000000000111c2737", + "tcId": 89 + } + ] } ] }
diff --git a/third_party/wycheproof_testvectors/mldsa_44_sign_seed_test.txt b/third_party/wycheproof_testvectors/mldsa_44_sign_seed_test.txt index f3e58a1..6787d60 100644 --- a/third_party/wycheproof_testvectors/mldsa_44_sign_seed_test.txt +++ b/third_party/wycheproof_testvectors/mldsa_44_sign_seed_test.txt
@@ -763,3 +763,16 @@ sig = 3013580858069a27e20ec28843a7b4dd035f0a371eb968a153007c24b5f2ea43295a678f18d7bbfaf7c5c8e1da5ca4dee9dc8efff72949b3db40ab99190d7f7b1fe71d547cfd783606217d9b15f34f776bf7c1fb7c2e97601356de57cde20c5afede2761c0c29fcb87da476d797e30580b5ca3ac6e4a813b30b9ffddf70f24caa5e17ed1ca5897a27d65718c7fe9501df96292dcac3421759cab218e02df6220bcdcfbda5940cbf59c0f503234c4c5fdbff4b1e4463e6c11b1e9e0ada40eeac4031f7b4c50cfe1c6bb4ec89230ce4c75f0e01c3c342e397af4972f69c284b84a99354be8dadf1f0ec35d969da686617167b2bdf430cde4bf627aecfe304f8b420cbfae6c4adf94b9a38d42185244b55f8a2bc4d7152ab0ef124b12698a95f1f53a4140b28819be698f167f164f7150d9a939c018548f1acb5217ea61d83830fa9b3ad00ca9bddd56a8d160e2a582860c2a9fa72d8a78d16c85103ef4bde97582d0bdf6a86aa51cff2add24096c95a2ced125601b328dd7b9db12c034de50c56a748c2bae3fb37215346ea1e51796d6c626a8c064ab9a41edfc231b53e8cff0904ef9be6cbe3bfd4a38da259839304b46988a088d10b610eb7fde95cbd241c77d49d553e6b1a0020907bcd3cd0a9cf6d8ed5c5fc1d162731cfc2d25f6475cf135f5a88b15ce18ab6f881470058310864a04fad2774d1b5170a229cc55eb2c6a6463aad0714142eca0e09627bd5961490c02e5dd697e9b2445077a0b43ef3ddde12ca08d7331de2e4d9449179a7fb9deeabd343a7cf74603d445ec359e190596f64119a7c3a31a0d4c48ce55cf95a3af50403b81f7238722b70945a30e586ad5292c3372331a373b2342154c8279cc35bd87fd56d2b704bfa8dd444a26547741026387b51d6615c4ccded7c843cce507f6760c4b85bf7de2a76975cacd3e904e11a59f8c429da662dfaca4ee1430c91d2728c67cfa56996006f4f1684fd25cd2b3c3bbc20fca4800485d5558fe53c539140e531af7fb457356a71136369186c743205135b0b6ceebe442f3487ace2b2334a8c6a7a6235194e1c73f179eb352dc2892ac8a4195098ee15c90dd6424f5d26d04b01543389bf00c0d3ba7eeef21cfed0c72230efe6610e8b7c29a8242ea94cb94f4b1ce7d6fdb12b329b409b59ecd2ab322a7673859493e6fa7bd3916303cb34c3fb58c7522cd42267126769a8cfa65f0764f9c063985cb0e2e2b446a0e810a2413f0ae91da132f05520f940aacc3a9a6b046045b7f6a3cd4012fea2c370c457642d25d1dbd48e6863e11e169aaa8f16c55e59c355075fb6b80389c90caf3a734d83cb0370f32b0ae6dc317c2c919354d842f71ff0e76ce033537f5e17ac8ae010059958e0eadcaf77e6ef9d47f733a283b379beac8e8a3d83bd24a0c03c9de97da8e56de2eb7e0835de8ae5a9e23ab5a5e299db8b18b2172767e597183a4f0a290d73a7b2948f7f5818c384944023c034e953f8de9babaf2f572272115cf673a182b32694decac34e7fab0318ff70f0b1ef4a71b1bb732f4108ce89707114673401e5c04d8d97e1c76d5b3d9fff763460a41bdd75c0c7d21a7fa10281fcbcf2a99d3a3cf65c5ed36f529c5d02384f1cd8e0b5271cfb604ead9ea8f3456e63a795f6165b465072f0712abe43658e4b03e28aa9a116737f2d8b04d42fdb8cc85a0def90dfa6da160d6497b7b6851b70be677ed182ccf685291e6ec4c6b45c09c351b92c3f41d944649fd418c4e32df092b22529f0b8b466203d9eeebb2f6051dd7defbc5f6c8204f2250f0d584f2ebf2706ba20ab919d20dc7ec20cbefca4ff1252b0b7e19a7337ae62653adbe41300c4d646f84c3656617466e8e7d977e4fe31a996ad543c5dd92c30c477de02c9cece8b4408acae564da7767a12f16ee0cdc5572cbb413d4c7ab0aa0a073574d31cca5ce98eca2aee7d552aefcde07383438b076247df6bf66eda1edad050932fa28cc96987b2597de0c7f3e2094b3f25df9c2ef8cca62ab14ce0fb0d962c484bf677970068b1ad17c95f72b10624e868fc04bd8376f492c8cf96b40f27164fec90b4142c19ca2e4f617b5badcbda33789e434538fe000677d332d0a0c50a9c1c8cbc1542d551fa6ef343008f9c26f88f44b42327fd8a863bae5c749ff4230763b21a85d88a9c6def7eab5eebc0083fbf4a385be6c0f5974306498ce52454219c197d967cfe74a6b923ad1c27a69f50bdea199345d602a6b506eeef9de7fcd787e42786dfc3a78143956bbbeebed6fd223b09c0adc44a24224f4b8d16710a48dffa965926eea729d6b626a7d68fd5a2eaf634f15f734957df77fc32eba7badb29fe333de9795b691fd83015d7ce799cd2f96bed3764000d4fc6ee0d91cf9c64135a83ca73ded4028456fef47922e09d1d61d2478e8e2ff8a7ccfc998884704298a8929b8bb28de1c0f2d1a9301a1d46c810e495789c62b42ed019193fcf67c25928a7bac2ba0a9b6be753345dfc55bfc0f880812cbe9008b81ea2cded285f8a4bfb69c550b30d6902676440a2053055783dbef1aad92eff6d3330508e72e7c3af8104032b663c0bfca65172886eab97776ebd82748a4d8b0e3e233b2f0ba31cd96ee460aa6d1d1fc87d6bba00242b27c37d8045fda7a4b6bdbaaa1b8d1d2325692ba84646197e927a34abf974234bdb238666a8af2aae6b6ece970ed1d154d0ece459f50e7be407d31714ca205a486ff9e044203f806cb97cfbe90b5946ef607ffc052ec9c441e19693546c5d7ad2a8489641a5891b66fe63056c01ec6ef974f5f80867723af11b40f3b89b0fa5b6652529b495f84a118bbc68285b84e12dad7012020c2b92213699fc86a80c097202cb57b2dd53b2bbe37655255927a9df414e274cccdede135d2668cb51a5abd08393949a8fb5fb72722e065803ca605398589954ce3fcf23d38263d17a738ec82798f0775ae2cfe597be351147ed977474d652a6e31553c4ba832eb0898b42cd588d1d27bb903a030b2a70b1ea9f1dfa9ab95bb962ab504ee4030e13d128057363de56435e5f0e3c6bfb278481934b540c5e6259de08b5aa0ff8558c419765c3114ce6ecfaad9fed04f66317118c7f28716b4224be4e8015eeb2f504d26579a9edee00ebc4b344c13025d5e723c6da5200400439403e9c428ea297c893aacaabedab4577198fa890b8cd6816e2a0bbcee75f98a7b6b453b6df560841dc15a6c964e84e8da61c9f6e23e596e87219ed8af5119955cb1d0c4a79e3d2e696f2c8a1dd218ff7385710a59035209b02f8634ec9587410f3653585f666e707b88a1a3cadeeb161a2d3031335360656a6e717c7d8bb9bcc0cacdd5e90949566f828d9da2a8b1d1070e25305557718f9b9cc6c9cfd50000000000000000000000000000000000000f25303e flags = ValidSignature,Internal +[privateSeed = a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0] +[publicKey = c90338d0d76b7bbb16a4fbb145ad7c7d093a4ce06a054107af4ca984f543d8f12267e61e3127aec0f9d9eb898c26dc6b9540d404cbc1009e7ac5dcfa5adc904bf7f88a87a4316d9eeaf2ebce301f8f1f9b590abd155e78fb76a069bc07514d472061e132a5caa682057994440e57542541187d0fd3993656578f8b5e7006868f7ecb89bf23198406795655e57220d361615c9548fae360fa10b4a88acb2bb106fee605533d2970d2f858a42895df5a381dd5d8a2293209eef7af0f33e5e7f76498810071eab6650bebc6aed6edd2b59c5a805fdbe2e40e1bed6931061758a3fbcea048ac31568304d8cef02fabadd76c4ef7016a30147dd7659c045c410ef4ad9c9b7a89690a653fb66576e0ae9c806486c83dd9edb10d4afe76bf5978777a13af5c706d3f500ee69c118c41fddc3a66fa92a94b4437a543daca7122d58181a5ed6c7f3b53ffafaa6c576e24ba19974c114ec158732abb92aaf1ccab2c9064aa6567130408072c7b46e8d7a3f28809472af86ce7b5f8f08c423a4c0f1900acb16aaa92eab1df95de4f9808d9cf3b9acd2797e8a7ce7990a26d4a1688839c4a79c5583ed37360db871960e2b2baf455f83d8720fad140969ff265fb2ede72ebb434a7be84d20dcb68ddf1edc18581a9dcafa5757af63ec64ea35b3623017e91e89605c540d7c29f7f44a7723b54bd243e711290519c8cfba027f3d07dd2ccabb292e076530ad1ac78c1695376f6b268b8559ce5f9a239465394d502d21fe4f611e37199864737baa8597b0cd1b1d992c95d9e04fe265954308944208b5811fe1a63ea5c1e7174d27d0a445d094c1402c162e3f57f290bf3e24929b558c181e2e80c8ef2185083e64a3b479bbf932267fb7bdcda0e1a22ea04de9e1fb3ab64ddad23baf1e0316b0d930a8763317c6d591e890a280f31807dda8fbea483da1a5f48427419aee2c6707b30f5644d1e74f4ccc64680e4adf01fcdb1edcb6de0f96ee6d84950a67cb89039c5407ee1929823f2fae55b73207f349fc643a14c5ec122f058e07a05f17d53f2930bea61a696f6db9deee1bf2ef4263f7e921acbf35cb79018692961e2da20b0422da00a7cfd100be7bd0b1a7d52d8e09f5339eb46a8d4c541e87a5f29f6d1e167449a02cb859e9936f327a9cc74a8e22e92c78d95a98a923be5138c0fb609cb9c2452a28852b76d49a67d2bc5034adb2abab1f170cdc0c1f15780078ad89bae88cb19352fc6c7d46f52d5aca0e14c1b0d47c8b694246a00cce7120b152eab57f300da90a7e05878c5d209ee5a3624c548a0178844f59e1ee5916a5e5e3e821a9739a95eed055374a3fe5cd3ea58e82512b46cd75d6b662fa6a225acd671c4e217c562c14a939fc5382d23337bf4597082fb5188ca0191bbb022844902769761ddf30802060f2eaa03a5846c1686478917af2a6b76b49b77df50e3f760ddd693a626d1d98e1855bbd52b1e66677f0b74b4a0a54bafcf61498b1ea5b8088c427acde10dcf4ed01d4d65604a2acd9d0b5ddc73ed0d21053eb4378e0cd5063090262b245960d7f6a695a4bbff9abb074975dc28127a05ba39a972bd1e9a1f149ba63e6f26e1909134edb04fd35ee384720606532432f8c62160dea380faa1b1609ce402d98cce40cdf366f3ef42533bdb4ae24aef25c86e45529728740f13df71cc72709b3c3205598dc9fa95314f2eaea71f078fc76399c9b5db704c26060e71afd3315c745dd791abe9335d5dd8248ee68d2a9d72d52dfbdca05fa6d20f5c00f803b92d0cbeb1c8cbf0777f604e4838d29fe2c026215040d988e5bab78476e81f77376961a8d3359aab83bc4a8dab215579acffddd5947645] + +# tcId = 89 +# deterministic signature with ctx length exactly 255 bytes (upper boundary of +# FIPS 204 domain separator) +ctx = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfe +msg = 577963686570726f6f66206374782d626f756e6461727920746573743a20637478206c656e6774682065786163746c7920323535206279746573 +mu = fda5f2240314857c7d76ff027bbc0be0f072723b6a9c07afef777a29aeae02f1413d1e8f051c34e410407a09f447df372340e2bff1af715862fe74933fc7ff3b +result = valid +sig = 8a10342703573f91cb9dec8f94ce46a16d1ec22c2246dfb33e8be1607f5b05fb0a0e751ab1610bb855ed310d6896500f57ef44d7365e991210cea78c0435f2b354ce9b4a59e883d1a8995960f5305f4c4a0fe9a265f88bfd9c652c724b961aa555e52d7aaf20759a7eb717352ffa8ae8939913cf30601bbaa9c866743ef95a3d2b2a73ca5cc8117834e00fee127bbff780d56a87ec3a53e1e11af0f4d1f6f466056f8c52fd33a9ed47f87105893e78cf8e35697cd4d7e8ef886975d78783c7acaf97b25c7ae43eec19d04d22979440901f402cce4fea51f8b34490913010473152a3a2ae6fc3349e95d8d2e500e86f1db6ec2b73ccc734a369d8e637ebf6657c05ea9133e6e3d0d12c5577d4b78ea80a190d50c0bae75bbb921f0ef1775e6a42ff45e8642cf2b30b02dd149881746d43f9867fff87c9ab05fa3e22004135d3528d4723003edfeac3cd08da3420c3aa8942b36fe8f7d86ae23b7e8adda0bdfe264afedd07346f117446537bd80640c867ddc31f46381e8e69573c210db39a25476c9a7930d29f4c36417f4f635ea0edf709b9c221213b6368c99b27905d74365fb35bf3f3a57d3b36780bb481b13ed81883d178d9e01abbe1cc84bf6a988675ab36949475f2c362b61cf32f74bd2ab65a3f296eaa44335b9e99913d0aee606e159e460cf74ecbf208f86a585098279343a92309a3cc39adbade7392456b13ec73797390755d858a910e40200b656016192a6cbf8f3eb27442138d10c929516c003a61001a111dcbdc8da6f223ea26bba0dd0eb970eb6b36e931602ec319421fe9cfe425dacb2faabaa08076a78dadef386528aa8c9f6b0199695797fe453085da79632d5e6209b055d77ba9945414260df6b82a68c44951eae4f10b5fba84cbc85f72b86f01f53a419019488b62c1ac194ddcaef9e74ecb7d99071eef2ed3abd894270f9a7a306c75c9445d1ff4c9ecfb267c968fcdfe382f1e9e0d553179cc84ac6c7676b6763984d7a0bbad9ef4c33f1b27246592cadcec2552e7a2847187a571277e856abdc3b1ecc519c8a9a785ba6b1eb30610df9112c53d094c2abc43d62ca3d5c0e166ab3aec51ac5f3259182b9b946a649f7fb32f04387bd58556f7a5bb3d6736a6b40acdd4b514f1b5b95b7c487f91926b4278e4696a63c6dc71b2470c9721dddcb2776a60a6504b5198169f407bbef933471073d4ba527ea6135612cb836beda357f2ffafadad68887237a85af96d68a19a8dcd60112ef5639bbb6aba6328d45b14a403f436761ded05fb2f72682772f1fba788c138d6ff3648ee9e8d717d63c4b320980a81df1a4b0236d94c19b526c2b29a0ac552e1288758fe8be11f40a47040c7592e7efcb257373a873121ac11784ad0107c0fddd4353b4a566cb8ed81454f171e5a5b6bbaee9911a9c7c396ab9c04039af1e618d6167cb26ba34923682e9984c01c7682060efc392e200961213cfb080ab29bdc0dec7db9871b684ae3cb92422d7a779854709f69daf353b9548a38e49a9c35ee5d6af5e2c992cbe42c12a6435285260befede33b92a745aeffdd6cc88f6b8a206750afdff305ae1361f5b38dda2d82b288fdaa94d5f49b6c061d0c16f073c83e38018f2d7caa0b7b52696a51105237015a7e99b0725f89e471829c9ee81c1d6353974068f110f78b75045ec920a8f4c6871c845c3d2072a810489c8650aaffe710985e727c1a1c17701af66ac6e58c5fb3b0b8028306c057185dd45673e15474a6105ec590a1b79f6ad12e9c19d6cbff1b1dbe417bbbff5d91d90fb3413d7b30278247a1fbfde70ead002659561e76f56ea9eaa492e887b3f61b019518935c6d631cc0a72045861960c52c4df6b189d11117cdc4bf7808166b6657721fb8c543078dac24ae11c4b4e9cffe3e2c5cd462e68048676b2c6b168e63cfb5174725dbadbfeef8ad1a2da22710ecdab12d6448242953f31caa78f7ffdaab540ce971be76c745bedb48f5f80b23aa882f5f1387718954692cb4e51f2662201d1d3c09dd4a657616c87cda76157695aaffceaaea95b5b411f511a9b2e845524fd982086929f932035f6939b078bf82227d120a90433967d9a17191093a8bfc465ea6253406e77a6359f1d8d40a2506493bf4c81ff9489039cdd464a176256f1775b9c04b04c936bf41888b8b39f2c63179c934f2563c310bac74313bd048010d2017db5bf823a309181c097604df76de27eee700f9f4b3bf33eff614045a83ee664c95de2c402046c9d3b6d3fcb112e007f94e06d9f8dd4d2ec18917d10e3261f27830c40c69ca00cab1081347e8885e2a7535e841c143b8c5d5402b4f859f1f0d0faa9dd61755d48a769e5e6b513dfd8133c5d916f95e36c9f41c37880affbaed6a169e2bd53f5796dd47c5642b4d5960572f360d19f5de79090e5ed83c1c96745bdf6262ca005bf6997dfe15aaac442ea7f67f20d1660c0a40963f974f103211d28a266d3a6128c590123574f63479060783df4d3fa3bd87c28f28251006ba26e0690c218eaa634cde3fe300e7890e835abc35dff979c5bad40614e2c7c1705b9b85364c503be177a7eaf5d7c919b9f3ac40fd1ad7279f339ab8f13e1c03123594b721a696d530bc1c33444e31db04d8ae688d4276563d8326fb5dc58946e1e25aab4cbc03d20974fbcfafc39025e3b861af37b8caa058988c56f6e6f3ddee9d9709f738377b37ae7416c72c06db610ec572f80604fbdbc9975a41957e54783cb55578bce2741f91967b56dace29f5fea472773fbaf9fe004649100ff26529885727437615dcc6c579db9d0a95ee473e09cab81e23c6bbe11fd6af2ee829116e2698f1a87de45afa3c60bd858faf8fbc3ae4f86ef37c93fbf0a4eaaccaacca2f94430a01c93fc73ef4fe1b82fa88be6c61ce054f155b26004fef0f6da4f5769f56c6254bb9ed7063a943acc8b1302df146f8fd8ffcf79fef3842812b9295bb761c44c82d2976214127e2e085099b9aeabedddc168ebe542857174d60374aae52c02894eb5bbf3f167c9c7766eda961cb19bd52ca351acee657f815d753b1115a63d59d3cc0514890cdc16dc62fb29d1370cee5e80c044ce8c771f2963ba6a98730a79ffa5581c68bb24b77ad2acc465e29192b410a34fada5614a007848e7da8ab3f066cd41a07cb75b2c141dfd7af9e1d951189dc6462f516a285a3da2b426cec674d214d30821ef004f5b24e11ddc19c1a5b9cd945a835e9ae53e2e253b713e67e73ab2e62f69e97e05286d621b65c3729035f97866a52d4998900f034214d1885d24a77773b701c2532485d79888d93a7abb1bed1e1e5f1033b3e506e768aa8bedfe516516167686f758698b9ba102e5b658c929ea7bec3c8d0d1d9e9f600000000000000000000000000000000000000000000000000111c2737 +flags = ValidSignature,BoundaryCondition +
diff --git a/third_party/wycheproof_testvectors/mldsa_65_sign_seed_test.json b/third_party/wycheproof_testvectors/mldsa_65_sign_seed_test.json index 22b9910..d707fcc 100644 --- a/third_party/wycheproof_testvectors/mldsa_65_sign_seed_test.json +++ b/third_party/wycheproof_testvectors/mldsa_65_sign_seed_test.json
@@ -29,7 +29,7 @@ "description": "The private key has an incorrect length." } }, - "numberOfTests": 103, + "numberOfTests": 104, "schema": "mldsa_sign_seed_schema.json", "testGroups": [ { @@ -1702,6 +1702,30 @@ "mu": "5ff5effc5dd46efebb2aad50c9354a6a06095168aea3de72bf72253309da4dadcb1b6bc36907b7b1ce00cd20f3d7a12c3bdcb8d29bf55b5893686fc1b42168c6" } ] + }, + { + "type": "MlDsaSign", + "privateSeed": "a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1", + "publicKey": "72ed792728950e76e5fc1c23b5a95fdd7bfd22289734722fa5367873df2d5f9cad65c7dea4184713d9e422c6c01413b1542425f02c731d78c834e5e4c5516307ccb5e86e209f06e53871daa2ad8a0d98de7bf8716d17524c49d70d35935db881d9d56ed7d838aed59737010d2f4b13cbd54a019accf918164d7daca4a2ee2cae179b003ea4abb0571409f8250610cdbf1fc4be82bb9731d076e142890b4de1f7365c77de5a7c1ca8f43c56680d9c377f1e79337cd19017438423a551932712e2a2e8bb029aaf9d924e1c4f1c18ab4e4c269aeff48dc5692e22226466ead4a0b2bd34d33f7c7ac0e11aa58160ac9cd6dcf93b4ca73312aa4c70789de7111c97198136164e014ebdabe990919a9c2b016b8b16dc089bcef1fcca77d90e64ae8ef9e9406f426e31627d2aee6e78d5ec74e1c4bb6f10d263d43eeb59cffc5820342b4010a5d0822c2efbcfc7ede0044b4585b86b7aa26228ab5c6b567be4d13dbfdc7b13a818c5f30c9ad5f1e891a0c1b5bfe960ba2a9b2303f8c5e650ddeead7e521a91dc2f054641a0b49f6a84f3f42f3bc6c115fa916727827b7061f665799f4ede4ae7af7d158d92a4bde23aad655d278d93467d5f1d081236c1599c6db52a7404557a243dcab931e624a30f4be8fc6a57bb9a60eed4460ffecee474f4a0d649a668afa00e147f4c0690007cd4d23c618a3de7d20a85541a577537167f6c9bb7deb989d8b8682089a63943d8a0bbf50b2155c6b158b5fa09bf9a575ba0ba39348d3eb66174beaebc05697b64a13f59ebd5c737770b5a82e69bb6694fd1bdcfa9aa57ff5708343de7144b48009df51b0d0ac357d14898df1f0eb9a0fbed5ca74e6e653393b3e694c5560e2e338523aaa736afa3e284b814b1632c02d1f9589346fea897f7ac186700255c0d185677a255a487d31011f0be0f50b0b67fdaa78935bf553e567b46ec039682910f3ed2c97a5d2652fac6a37507738cf582469147a1794111f78e38d26c5dc457f9d36f3ac5e12c3a352a1371167c199713fde1e0e89699401c99624121d8dc45b2fc6ab8cc479b1dfb78c8e2f28fa6db7ea26d8da81d603362ce9cefcfe1c8645aed207b9d48923a169c91bfee9a17cc0c66b02261b9625ac4bb6e084e59e0160a8b1c4d2f76416e3f75480fce90e0cb318688b67df590e74608049e2a6bc731af763bd382de1a10273bc1a018687d752b924359d2ba75fe96f2c851507212a08a367de650e10b48f4dfdc79729ab687bb1a90cefe2f4383ef92d3c9617047a2fc05ac0a8ccbbfd085635e875dd40d82158f67b57c3e934a145b918b21cb0ab66c818661c7e8804b7e3547d3215ab8ddfd9d7315bc2b66c4761a955a5d963728bed34a879c69dca72f2034b495d092084956dc6b89c7cd801bbbfa9ff2e2dedf0ce6523b6f5fc5d5b2997e7a9ebb6412a8541a3543aae6024cd8dcaebe156f54425335053dda501bb2c4e15e2f43b1151cd1d5b56abe5989a35f5cf7f12dcde1ebc0633ec42057cb50ddaddc84ea39c883770832ef55148a01c594f838565a9ee4779b6cf17a617006ba0028fde9f22fd3b39009c56e41e27c14415e183f2d024d78596b885d76d11deaf11ca26dd7411238975e914aa18525d5d5c32f4c607b1d8e2fbd8ad6bf5904d61f71e7f41dfe6028551ce0f8d2d82b06b558833bae888f75981a66c0c6ca09c2ca70dea4420c42de7c208583d497f574aa8ef29e9b6c254d02d90761f32af71d63c4acf0ee338427bbd8a78c39ede1df7d2629d27ed634ae4a53a0a22e6712e8433e9e513836ddea5b62f8fd49fe0290efdd3b89c6e0c987101a31eb673cb1ac0da93a569c6fee357516830dd0346537a963893caea914c863834438251883f498ba61dea394ebc5cb7949c5216f291d900e7e6aba2d3af5e7dda43b7c603043e24dbdf6fa0222679f663bce83f970b8a378ec286de5030ae4437862903752000d3293e309cd20c63df828cc4c9affe4102e53eec0c92239eb9a42b5cc68eaaefca2155d397b57c7f7bba6692b00aa4f28f1b12bfb8b4cd14bf01d72f1066a80ddc075482c6cfb5d9b0dc7686054ccea4f6ebb343b7faa350714b4a22310e00e4231481bc528a0e94d0c53900681363f05c406a455421d6409e8064e36d8aad3b64a8c04911625d678cef77d3049ed4bd98ff9accc84f0ce212a47a5fc5232f69e676e22572958f1c8e3622bc5c86cb7b1fb34eff2ddeada1573ca5a1f5bb492aae4993cf21b6377f7b886d603c911e2337139f8e735da65f0b36e4cb337260995bf4ba21ff282bbabb64c6ba0771d02063095d61bbc6215964e575422f829220c697034b01e39732fcaa99c905fc41a48d9d268b32b441f9c8f21dd92d58318daba20945a3603d6879f1a65900c520352136edc0d6e0518741c1db894e6b5e11ae90c4dd2954f9a7cecae47e499a208db9ed3ab58eb50a16421af73599d9d479a0bbada381fe6dadcd2c6507007d7842dd1f325204e0e3351714a05fa4802d5f309ac1749b200be05f80a33aef15d31872bec8e4486c95fc974c5e660328c8ce21845c831fd9131a0d780286f83de99af6f3e3cb4738ce5191b80f04bc990ef8e545f3ed43641a9a1585b40c652c0e27ec25fabdb9ee72bb1e52e4cf255588fdfe123abb1b938bdaff2f687cabb15c1759a8e0a0924282fb2a90d399d5862f3fc3596c13686210aa57ecd0164c2afd1a12f51627e8a56477d16b1fc813316d795d18c5ced4849594ea7de", + "source": { + "name": "github/trailofbits/wycheproof/vector-forge", + "version": "0.1" + }, + "tests": [ + { + "comment": "deterministic signature with ctx length exactly 255 bytes (upper boundary of FIPS 204 domain separator)", + "ctx": "000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfe", + "flags": [ + "ValidSignature", + "BoundaryCondition" + ], + "msg": "577963686570726f6f66206374782d626f756e6461727920746573743a20637478206c656e6774682065786163746c7920323535206279746573", + "mu": "08d8a02f0de54826af362b7845f59d57b372b34eae122cdb9d95adbd1ff262aa3a50e963eae40f9a1a503c0fd91d6e9b22696f26c864e440ef7657d9366f60ec", + "result": "valid", + "sig": "68d1bca40339f92e5c14bbaa1f52739ebfc5d8509639ab4199e9783221b7fedd111fefee32882000f8184bd1cd8528b00dab31233ed90efadd6ae477ffbf31a8741e11643f83988f6320ad07926e4895349127a8e44f3399172ce89721fdc5c178201196e12a69fe1ae1359f23bd833e9dd5076429d2342cd4b7cfa1a00d5403d17d0055f180b4356c62e0b883e0ddd9e43cefbcad9ca6990ad0c8588c84fdeddc0b137e1af2cfd96b90f908dd3dc2212c445f7ac2029435ccccdf642ae3467f413a3c32718ed1a2128f347e14490db996cbbe78f045f4213d9f36df46ee37c41c285fe7e87b9e2c1f09fe0574dcb1f995cc34895e1c9b00d241dc55d1534d2f6fd426c439d7dc4b147125555fc67f87e1991433e4454c05d7d3dd4aa18db1e17655144c0aa4bd37ec8826a9a50957be42332f82e816b330dbb9e6726c4e6d4fff6718587fd7f367dc6b6649908055d8009c1cb501e87a8681df52f6c4264709324a9a731883ae8399495cc3fc31a9f1905157b8ad55f67aec4d1189db6ace67629b8ee952bcfb4ae925ecff806da046a57b98e0b0e56f6561a527e5e8f5cb7f93b0d5fa4dc3a88cc80017038b9386ddf60df5a5d6c5fc304b16517c6d201fc5344a5eb884f85824abf60c83e4b9e408cfc2dd174fbb4a6144c8f70fc014e46109f751928293dbc52369d0f71a53ffab407e0e12a734c3d25f746e538ff2dfcb242c151e326cfc25975e913173feb4dd497bd88e76a5716784c80bbc98396aeacf1eee010e5f73cacc950c5f4698908dd73df9ba5f46b4034982e87078fc779d0891e79e64a1049e3a04f621e053f3e22df95cc05ab41f84e13cc632ba27fed6ac1f129431776891149d2d872927ad2c2edbf308f77be1f33982cc0b988e12a86d32e32516cb489e147c06b4702e04d33c6e1d2af87d3f0cd40dddf0e4bd429f1e72d86130da5c80dfd4b6af7ff8c8f7542f2ae9d56d7e3659867495c198439d11445ac1ec56c24eb6444ea319560c6a1c681792e5dfa7ee0273227d263cece16ad38d2fb2a0516dba5b29790dbcf3b570bafc9cdb3144c04c990ea1ed5da0d6ca5f497a9b7fa1371102d9ef5c835aa343cb7fae12fa351611f636849834e805811bf2f6ecca87996bb271ef30e8193694f2bfa4701fef915b9ab79305d7d297636c4e686214601c95c669a44e5f5daa5a0906f34bcc12913a229a6dfe049a609f6842925bb5cc907371b9cc32be1087a6174a78e862f415c84af293c9a6382ede2144e93a7f7e4d62a29cefeed8857d0e4813650773d64659cf83ac6421a54f7d973dd3b1118dcaacccdaea15b15005f7d1f9129a4c6a6e153dd6a56ec38da0cc8b86ff9fe937ea5f175ea6c07f3aef6dc7039c28d5ced24edb67b1bcb5c951d89fe6c5772020694e648e1e60494a7e3812f77db2b30e0f0b14df998154c996243fb7182512093dca15ebb17ee9903e50d2d02ed136a4f2921e8d974d8eb3c02706d7658c2e8783f7783853810e50b5f46973ad6fa0c4163aa9d38dd2073b33d0c30188fd8b7c326d4f2cc27e4cf09c7f66e6cb13cb7163ed931cb2111118909bb83058c3d10639d178595cdd10b970c5d85618da4c679431a842a750c5d8b5d17d7e313d55114d51e4e471e7430149eef5f7df1e67c60b9ea19f932a1ca9c0ba978f8321440587872ce4f78ccf937ea5c7946129b263bf15a7985d2212797397d19d27d888272cc66831e7880db4dcc3763f93b05520c1aeab1706490f074c8e30eeac95d36d5caeb8bd8d13aa987f68e5a8860e375ededa391acfc30293eb6c6155cda86e12c02a7cd6a565c9eede4e643a2043c83987f8efb990ba66b2a4a9c8997b128b0ca32197808c7d05bf26e937bc61c02171621c53cdf3b7a58d0de1c5d377949b2a2ddae3e5c0ef1e4fe54293a0b13abaaf87a1862b931d7cc46b3405eaf337c7e5b73862e6018e99b137b0fa194ed13c4f6176b4550496827051888be91511770e84c97083549e67cc34a4f1b34fc85d2c321bc5e93837cdf79107cbc74d6b1822102a28ef33aeb593c23399ebcf05af093246204f5d2323fb032f80ccff2ca622c0036386c1584c4a8ac56bb6a17a2b2d30f07727c4e71b2f8eba94ab8365ce5b6b9aa19182c6db730a5e84e020e9590ab3fcdbfe484eae8339f3ef9389a1e735c880e191f77f3c24fc7a1e386c6299d65adc5d794064d96f48515ac3316f560866116cd8ab5e5558d59a38143c9a86c8069234cc7853090ada7734ffd0d75cb0c95b45014bd15063818fcac5eb2c4ad8f16d90e3a17b490e8fc26cfe160a3094a51bf2591fd75b18b71f6e5a3d0f5b819493ac5be7fd722f133e9d3625bf676caee7ab8e31c10509b9d4fb541587b2a043b8ce292dc039e065a264793f7123d28b7b69fdae5f8a770ecca985f4725f66b33652e48236a02929e9d299064077db7192efa5c9eaa0b45364b1ec6dcd3e0a4974552b2d377a2be12735b43199590538a52784318a792bf6dd44ca04427233de8f67c8e1581287f3fbb28b1ca01f4b392ec628346170828bfe0415d76deb02c98bfd746f22935f625681c247a1a570c7b021a459b83c3b9d7680d930a246dd15c3c5408c1d4d264486f9461108383f058b44ad98ae8ce8691239629949475759b4816bca7eb33e657307996f310e9a04e28834b2fe2eb20e99236a3634e5deebaeb678d8933966537add5f7e880f8ba39c7b25723624636daac7f86768d734b70fcc523310f70c0a12ddb15e58d4eed86541c34bdffebfa8d2f947be4c8b0398d5994a65dd6a30d79c6ce5cab4159e112f64bc2f1776dcd1c0814c30f7e5cded75bcc028b5579a41ac6e276f9a525664994d7115a23f583eb7809d588e49d1d269892cd32445307fcabffe7a826b1ec65224fef61d4351468fb936a974ce4476ac1ea7e6288573b4daa3cd936aced1691cb5b69111fd94c34be02dffb5ffdc410c68defe55332fc963e533c7bea56e2ab435cebad7f9bd414c102c778652fc15f59989f83632648722b8708d572c0f6fd050fc6d63910de311a739560a1d248421d68198708ba3acc08cf3b603a5763e2bfdf76e704a31bd20272ff5585f83f3966cd50c5b20bf9afc65cb082c97e5a9fc482aa0155c65ce0da2f17cf36bd87675919e2d1b6d8becd5b087ff43e5295ebd1cd7cdff5254babfd3ba524507cc454e1641520d69b58439c317f5274d0cabda11c69ffbb77667dd13afa1868896146901f2641897e3a4ab67d42bac1ddb5c5722ec95160049027509ca16e5b415b99f3d9799621ced579bf56722b9c563c0cc957db1d30870506a8548c55fb00c228a49741e30d45c8c25de37541cb268daabd60047344800bba0503be226cc20d0a1ff81e9ec05dc4a721ecdf9ee756c1dcd18fbad73443bff5fd967c871bc6de22f349d8863a1522957982dd31d3fd49868ff4b7cf65ed4261acfb6ed8017b5637ce36fee0ebfd59f1b5bad456313797a03f930c4425b16def7ec87a9b02dfc3f86919b3964f67f60032aa5af028f575075d03f6894fe53cf0fbe6de4f5ed37b80d356a130184ca1ea9079a21bf136b68b1606302655ef4bac1b13a325f6ecb89d02943c6a96bff47e323b03ac65df6feb4ebeed281b5538e5f938ef3ec00b9f0b0f5c9d3d09d05b9d5f388831bf42b032350f55ba15f35d710ef59d8b5f4612113d5a752aeb73cfe9e52ef5f5557a859c1fc3fd74ac57cd829821cc63f99adc2072a71a1fe7a197a712282e21864cae068d7db80b557a6dd3a380b3fd8dd9e1179616f98250d14cc44881eacbde57e627fe5e326a64f9590625d7bb2a56e923dcbe68491981fecb17f109d887123d1c3ae80940d254b1c238feda80ef2b39d35011c366b6c6d53e3cae73a3d699d0ff71867ce9b5b4a306169c6868a3ecbbf6ccf59ccd63624ce430a251f0b4bbb1c88e61196152701b9d59ca43fbe2310296860c791c660779ecfd60cd31218e2b31f6b5a0ca5a3c17f70ad2717997828eebc58e321d2fd899161867e0ae1ff41f448fdca1af09df79ff90d10984215e47ff502fdfd132b0fe1c963d6cc1dd75ca481a5f64adbf0e149a3b7b810103380c63e37f73ed240e079d2bbf07470249e648217698d758fceb8f9025dab82cba602aa0e716387a78a07e6b5c526092b1eae4d8f2860e7ac957ef06e238ab1058b3d8e6dacfa70c1f843f3c9386e05a04f7fc9ca81f58e1853667e5658dc1ee40233490efd9bdb4bc8844bc4d89c0922ecc8f4b5cbe7fe7de0d2e5387487459cab958e3456e96ddcfd1b15513f7464f8ee696f6db1ab2bd38ca8fc02bba882f9a29d75dffb480c79bf53b7334b83c772ff241398a23baecfef4e1d1f915d0202d46c6d6188cf49bb6af35c4e40e1eff0194d3308b76815fdb381bf10b96a5e0d06caf34a7e20e77910bfdc63e96cf1682578638bb98eacb503d2f1f7f3abf1b49898322103b87fa096e63dfb6a33954f144d28b7b66cb752574cfd562b30cabb106ac7b9136ca196b7272ddd6939a14a7ec5007da657730491647fb631d0056156c5b0724a2259b08a688c5e8deb3a880dfe43d2b64e62818f9d150f667dc9fd36435a757fa9c2c5dcf5353b8d96abb3c35784a6d81f0f114568758ba4a50000000000000000000000000000000000000000050f161a1b23", + "tcId": 108 + } + ] } ] }
diff --git a/third_party/wycheproof_testvectors/mldsa_65_sign_seed_test.txt b/third_party/wycheproof_testvectors/mldsa_65_sign_seed_test.txt index 70a9342..4d57b0b 100644 --- a/third_party/wycheproof_testvectors/mldsa_65_sign_seed_test.txt +++ b/third_party/wycheproof_testvectors/mldsa_65_sign_seed_test.txt
@@ -959,3 +959,16 @@ sig = 2d8fa11af3dc8c686dddcf63b8ff19168ceb18171240bde547deabadfc8c8709b78fbf7f917aad36266569ff9d4c5a192b96491f6825ed0b72e6c9371aecc8a442fed26e3ccb65af3cf3f309c46e60831e2f3b4e6c05c2aa1d9ad41ca2fda4a699d8b5b9c66ad808d9070f3901322873d243623c21f25f9e82eee297c5e374d19bc5f453d39a8097f7501915be85219aec5b8711a174a3ee91f85463639e1497b49ab5928791675622db88a6962b4511f49871ecfb306326f4bd1c18fe59739a5ee618342bb3ce5df31e3e37f77e4d990a07e563da3989590c713dd27d495fd952fa9921a382e079fc17aabfe08de90d2a296a34ce09d8d1dde5baae89b4dbc4c0b28c57cdabd20119c889942ebe9807d7b91c88da4c0aab8babf6a36b32c867b7a0291f18e05631902f8a4b8700561290ef2cebdc9d1cb9ea4118f5bac8b8f8114ef0d394b29fc5f578441f2980acb574db228225d4878cd8bb6b43a45f44e59c2fb396ffae42d3a2dc398ec854ad2fa7d0e5b0938c9f4d1f7b7997045dd7f7108b1a63a2af381a44e3c28303937d70df99abc2666d117693040edce32f366636a92afde14d5689478dff95685002be250009b3e041ffff8a7cf15c515d8681e0a77a9d16cfcdcf95ef32f43a2334c248438f89fc6aeca748469c2abae65ffed21b03db7d421baa1243556f2965b646ad21cb9a82410e530cc4267da07b98f8fbbb86a3a558a5e42468c6e8d06801817d7c3933182c8899ae938d80fc9a4240a616927be35f1ceb98f175b693acbcbf9984748b4e59b002e8713ad2632589fd6b45da58fd5b916b51d3123fee9155c3b4ec6e00e4ad97fa3ee76911600beb53e070fe1741bd6bb165b7171677395d4bdded7c6638be5962ec81a6b818bd499855880efbda02935e6bb47cd74acc4d15723039f281d06a5c8f6aa34fa5fd592faa42eb712835724b5977a6d497193b8a2027fd81cc3a3a23b5828f59de6ce7da93e3c70905a940ec7b7a32b6aa0296c583eccb5b6f7dc662648f3d9c55859e2d77c3c67714089315b6a8661c48b006cdb8d67c54b965502110ae54ba7695d0a8aa646b2662f780dd67b8cf11ae0ae3d63c974d2d8873114ff741fd1608715934a5ebece9e0b1f10d3b867fb72586f32dbc7dc625834a8462846aa59334a800c0010b8cf191a3458a0cbe4eb3880f64fed9e145112bec9816271805e9d017cb6cf12349d0d491c8d19e78bfa2759c7ca5221620d871cc8c456d25d0b1d47c10b622689fd35fe4f8f995bd3e83a9f019384ba97a85c041a9522928cc4fc3a90d09fcae6a1c79c50862c0c54adef1090d1a614bc66254521183bf93b0606e4511bc07a9558740fd2bd1dc76d9fd5a2ee5dc79824cb2b531ed3d58dd9f41643ff4d8befc9d83c7221da5cdd77e121568bbc137ae91bb3f4d98cc17754cd39a10bbf1eb08ba3bc5033ca7bb90ccfe09f65e72da957a7f14d519e510be9e69109b17c92f942758748190ea79864725c9ee8a32961c75ec7aeb0d287860beb60d299a3c4b3cb823c139c6195dc5ed10ed94f21d1767786bd55ae2d95f815a745d475d3ab50e224a998116dd06cf5b66733a857cb0ade1798c947f78a3ff79de0ea12984bce5358a4ba52ae7f29c86a96f0750607a8f56c2bc26087d4061ca565d1103f90a0c2d444b13f7f43192b35116cc21555d22fd7724230a1f114acbac0c0c7ab3b0c12914c8b63bc2f2a1f72cc535aec267700dc8dd596dd59e4fa35a762dbe0464b2eced1e6d3f771268c37b59237430f3237d3867f6965143e922bbb2bb16ba7b449c77162aac48701918fbe9a603e181e5579ff390f72a550d4b0e0726b8e5039c6a7f6354a8e3764c65702cf9ba4bd9eb92dd5dd8bc010d6a8eb8072fe436293ad9bb7dfbf898346898cddd942feb6fc59ac30f769d6abda1f7bcd3da565ad56dccd5b2e4976fe2fd75da93ca422f87777d18ad42c64e7bdbca9e87274da9c616622171ae95eae07c8e26bccec92b4d80afb91e80c27a0d297ce8a1ab2ab2c53d40422324c19493a926e60cdc8c0a88ca0272904c45eb84f3990a66a7cd332e995a66ff7c27a24c1f8a153aa946e1c1cc1eeedbbe7fc31e6f03309ce28cd2a5452bfcac734a7f0eac61b9e4812f722178108d226677f17e16cc4c0c44ff0ce145cc9d263506c5d6ecf61d1d8a6f7cbb6439ec7e2774aa130a97e12ecaadbca265157ac4931d26daf3f760bef5400cee7884ce42b9f7451c8d54a1ca4808cc40125e3b71ba2daef27cdeab9ef35e8eca4503cbde49c15d4c2ba87d33c11cee96e7488e9e22137c4abe2478954264b8a7e2636a15a3e256d4a26149f0b195452c11fda4b566a9ffcc2dd2af3a811738175fd85073bb85b5e71924938d7e04adf908292b2c45d57cca6692d08375c0d548aec67af325bc4e975ccd8f2e7b6244b58b428812b719bc0eae2de3b80c638b031b073b16a1577c467633b58c1fa59f6d5254f46ece9cd5bbc27cb71a1f9986b25e5d1df94a0e5f3b0dbda21a74ce827e08533599c1155fe15ac53e2141f991070cb153f7b622d5d861b8dd101708239d303cebbee113e0d55f3c8714e187ac94bd19ceeb867b029e5cd9200eba9d48f33b4d11325bfd779e8235f5d54d89dfb47328e1ade4e11ca79da904fa829ebc65dcc3fefced0aeff365eadb4a0dd8366239dd0f8693d14587f137d5d30993163b056302ab9d7a3aa948d6c110e7ffdc503fd70dd5977e968d636c84875989283b727d272d1d5005751fa4596507acf4fa5d2ca509ded882ffcf5b804d55cc6f6658439e21a055bd0b68c98f95a949d7dbf9026faec905dfe6b89f03c90c1de0ca1227acf8f44ad635836be0e5c6072fcb94ade38aea4f7f2cdddb931c174067f586a3baa0b1d07f6246c9dd885f1f2eadeba9a3bf337beaa092fccbf53abd383292deac4ac0b335121be06c43adee3a8e308da9fbb050030d62049f1ed881d8afe6317be61063bef0cea1c5363dc72ca189e3f03a45ec2f34cdcbcc06a29d5316279543dfa20e2883a0da2c7f889bb4b97e8d304d87dc10569a77394e3715d106852fc4df7cdc156383b0421d2a9f1b634594dbd02010919fef1be7a8bcf732daf405a5d4d32b4bf7e384caec406eb173a08fcd59754e29833d6897ed9b6cea3850f19680a849cd24aa1cff13833744723fa8374e4876498d0e2ab2267ff1cdd8c91d9c829c79ce9ee502cdc0b6d465edf4bf26715fa5abcf30c4eac1c197723f380dfc154b808ba0e529f42380f784705d8e64c76dc4564c92a3c0e5b397dcf36669609471811486d32f44f51e967975cc95515935820242def0c79ec12c057359811600b94003702a9087de87340558d961616b85a59b8a9183a2c11f8e885e9521dec6e0d02dc356cb78411f6a8053ffd47a4fed777c6ee0bfe47f0f05087a06314f81b6199af020c36a918952becf10773a49fe2dd55d1e844bebc1833a2c2a7379a8f3d2eb60b4343dfcc1da498718e92b415e4c58d0227af7383ca3aae3473b205281deedc2eb9cd08589ba7e25d08e0ee842393dc62881cba348a03eb102b40aa7b4ce92bd25231023c5c7d74a4ea5d85446b92d734281deff00a2116458e7c5e141d00246203f434b42fe863689c29592ec5812b90746b1abb7ab79d234746351c37f6218165667bcefa978f959dd147b512fa5fa77b278248d1571e18fcdc7f2232b4a20d2a42f43a6977358cbcabf71be4570f90897ea44141f5ecc017c69465d1a14efff4601bccd3c3a9a6dcc08f739bfdd2aff854df463c43a4f67c58d6c94d2230036ca68afc4fd3896435ecffaa06eb111c7f3566b4853e55b45dd35ec4dcfd996b5e8592f692d3f804a44b2d17b1be22cf23d0b89c72cdc03ecf1ad7b5164cb038c01c0f138ddbba53337706233c9719b5214c4fb3be16dd28245b52915b7c315231a52633bc3e900634e70e25df8828a5f5f510c6842d32c82a2abb948bc0b4b7f5700691d6aeaceb558109e535841cedd26679190711ffff6a9e2ce5dc09985a410d06878380a54e0080eccf0df48c4eef7bc188136acc052e3aa4fb08a31fce6aeab01baae4b52019150728a0c6d8440c7896292f3b1fd3b366896e5a55a3f241dccfa27e5fc6ea461168d7d12f24e9018dd6e0f6e804c65066e0cbc57e04b533d024f7d4fa7cd63f05f2f4425ae3b841a5eebf0529a4efe4c968b0830b7c94891bffd0b73e15713eb0eab6b8230ad8fed181b9520844bfa1f41516b5956cfc0076fa2034731946b753ddc16ffdee4945d2b4aad6457b9c6f6100e8e52764b7172f26a353183072b6360f09319ad9d9de783ecb927be0d5620be2b002f54295680918f3385a52cd9653aaec49ee04b3ca511bff7e56fe0ca67277502046583f17dc127f1134084ab8bc6f5edeedef241c3b1f174a68a598d294de2bd4fde87c6ac5da8efde7ec14262e0c5ae2f69cec5436f161ad88ded3ea4e11e9c2255b8b32a03f64b97481e09a217c6a42409161fe6ff4837d4ee7dbd1a4426f3817c7cc5c56e476bf323567fa9443bf0aa096cce4e7b566e52dbfe8d67770e343e9af238130ec9a351360a20328b9fa2e6e7e94c94c6d7e8289ed8f30d1526455e91a1a7afbdc0c31626414c8da6a9db5cbee3f100000000000000000000000000090e121e262a flags = ValidSignature,Internal +[privateSeed = a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1] +[publicKey = 72ed792728950e76e5fc1c23b5a95fdd7bfd22289734722fa5367873df2d5f9cad65c7dea4184713d9e422c6c01413b1542425f02c731d78c834e5e4c5516307ccb5e86e209f06e53871daa2ad8a0d98de7bf8716d17524c49d70d35935db881d9d56ed7d838aed59737010d2f4b13cbd54a019accf918164d7daca4a2ee2cae179b003ea4abb0571409f8250610cdbf1fc4be82bb9731d076e142890b4de1f7365c77de5a7c1ca8f43c56680d9c377f1e79337cd19017438423a551932712e2a2e8bb029aaf9d924e1c4f1c18ab4e4c269aeff48dc5692e22226466ead4a0b2bd34d33f7c7ac0e11aa58160ac9cd6dcf93b4ca73312aa4c70789de7111c97198136164e014ebdabe990919a9c2b016b8b16dc089bcef1fcca77d90e64ae8ef9e9406f426e31627d2aee6e78d5ec74e1c4bb6f10d263d43eeb59cffc5820342b4010a5d0822c2efbcfc7ede0044b4585b86b7aa26228ab5c6b567be4d13dbfdc7b13a818c5f30c9ad5f1e891a0c1b5bfe960ba2a9b2303f8c5e650ddeead7e521a91dc2f054641a0b49f6a84f3f42f3bc6c115fa916727827b7061f665799f4ede4ae7af7d158d92a4bde23aad655d278d93467d5f1d081236c1599c6db52a7404557a243dcab931e624a30f4be8fc6a57bb9a60eed4460ffecee474f4a0d649a668afa00e147f4c0690007cd4d23c618a3de7d20a85541a577537167f6c9bb7deb989d8b8682089a63943d8a0bbf50b2155c6b158b5fa09bf9a575ba0ba39348d3eb66174beaebc05697b64a13f59ebd5c737770b5a82e69bb6694fd1bdcfa9aa57ff5708343de7144b48009df51b0d0ac357d14898df1f0eb9a0fbed5ca74e6e653393b3e694c5560e2e338523aaa736afa3e284b814b1632c02d1f9589346fea897f7ac186700255c0d185677a255a487d31011f0be0f50b0b67fdaa78935bf553e567b46ec039682910f3ed2c97a5d2652fac6a37507738cf582469147a1794111f78e38d26c5dc457f9d36f3ac5e12c3a352a1371167c199713fde1e0e89699401c99624121d8dc45b2fc6ab8cc479b1dfb78c8e2f28fa6db7ea26d8da81d603362ce9cefcfe1c8645aed207b9d48923a169c91bfee9a17cc0c66b02261b9625ac4bb6e084e59e0160a8b1c4d2f76416e3f75480fce90e0cb318688b67df590e74608049e2a6bc731af763bd382de1a10273bc1a018687d752b924359d2ba75fe96f2c851507212a08a367de650e10b48f4dfdc79729ab687bb1a90cefe2f4383ef92d3c9617047a2fc05ac0a8ccbbfd085635e875dd40d82158f67b57c3e934a145b918b21cb0ab66c818661c7e8804b7e3547d3215ab8ddfd9d7315bc2b66c4761a955a5d963728bed34a879c69dca72f2034b495d092084956dc6b89c7cd801bbbfa9ff2e2dedf0ce6523b6f5fc5d5b2997e7a9ebb6412a8541a3543aae6024cd8dcaebe156f54425335053dda501bb2c4e15e2f43b1151cd1d5b56abe5989a35f5cf7f12dcde1ebc0633ec42057cb50ddaddc84ea39c883770832ef55148a01c594f838565a9ee4779b6cf17a617006ba0028fde9f22fd3b39009c56e41e27c14415e183f2d024d78596b885d76d11deaf11ca26dd7411238975e914aa18525d5d5c32f4c607b1d8e2fbd8ad6bf5904d61f71e7f41dfe6028551ce0f8d2d82b06b558833bae888f75981a66c0c6ca09c2ca70dea4420c42de7c208583d497f574aa8ef29e9b6c254d02d90761f32af71d63c4acf0ee338427bbd8a78c39ede1df7d2629d27ed634ae4a53a0a22e6712e8433e9e513836ddea5b62f8fd49fe0290efdd3b89c6e0c987101a31eb673cb1ac0da93a569c6fee357516830dd0346537a963893caea914c863834438251883f498ba61dea394ebc5cb7949c5216f291d900e7e6aba2d3af5e7dda43b7c603043e24dbdf6fa0222679f663bce83f970b8a378ec286de5030ae4437862903752000d3293e309cd20c63df828cc4c9affe4102e53eec0c92239eb9a42b5cc68eaaefca2155d397b57c7f7bba6692b00aa4f28f1b12bfb8b4cd14bf01d72f1066a80ddc075482c6cfb5d9b0dc7686054ccea4f6ebb343b7faa350714b4a22310e00e4231481bc528a0e94d0c53900681363f05c406a455421d6409e8064e36d8aad3b64a8c04911625d678cef77d3049ed4bd98ff9accc84f0ce212a47a5fc5232f69e676e22572958f1c8e3622bc5c86cb7b1fb34eff2ddeada1573ca5a1f5bb492aae4993cf21b6377f7b886d603c911e2337139f8e735da65f0b36e4cb337260995bf4ba21ff282bbabb64c6ba0771d02063095d61bbc6215964e575422f829220c697034b01e39732fcaa99c905fc41a48d9d268b32b441f9c8f21dd92d58318daba20945a3603d6879f1a65900c520352136edc0d6e0518741c1db894e6b5e11ae90c4dd2954f9a7cecae47e499a208db9ed3ab58eb50a16421af73599d9d479a0bbada381fe6dadcd2c6507007d7842dd1f325204e0e3351714a05fa4802d5f309ac1749b200be05f80a33aef15d31872bec8e4486c95fc974c5e660328c8ce21845c831fd9131a0d780286f83de99af6f3e3cb4738ce5191b80f04bc990ef8e545f3ed43641a9a1585b40c652c0e27ec25fabdb9ee72bb1e52e4cf255588fdfe123abb1b938bdaff2f687cabb15c1759a8e0a0924282fb2a90d399d5862f3fc3596c13686210aa57ecd0164c2afd1a12f51627e8a56477d16b1fc813316d795d18c5ced4849594ea7de] + +# tcId = 108 +# deterministic signature with ctx length exactly 255 bytes (upper boundary of +# FIPS 204 domain separator) +ctx = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfe +msg = 577963686570726f6f66206374782d626f756e6461727920746573743a20637478206c656e6774682065786163746c7920323535206279746573 +mu = 08d8a02f0de54826af362b7845f59d57b372b34eae122cdb9d95adbd1ff262aa3a50e963eae40f9a1a503c0fd91d6e9b22696f26c864e440ef7657d9366f60ec +result = valid +sig = 68d1bca40339f92e5c14bbaa1f52739ebfc5d8509639ab4199e9783221b7fedd111fefee32882000f8184bd1cd8528b00dab31233ed90efadd6ae477ffbf31a8741e11643f83988f6320ad07926e4895349127a8e44f3399172ce89721fdc5c178201196e12a69fe1ae1359f23bd833e9dd5076429d2342cd4b7cfa1a00d5403d17d0055f180b4356c62e0b883e0ddd9e43cefbcad9ca6990ad0c8588c84fdeddc0b137e1af2cfd96b90f908dd3dc2212c445f7ac2029435ccccdf642ae3467f413a3c32718ed1a2128f347e14490db996cbbe78f045f4213d9f36df46ee37c41c285fe7e87b9e2c1f09fe0574dcb1f995cc34895e1c9b00d241dc55d1534d2f6fd426c439d7dc4b147125555fc67f87e1991433e4454c05d7d3dd4aa18db1e17655144c0aa4bd37ec8826a9a50957be42332f82e816b330dbb9e6726c4e6d4fff6718587fd7f367dc6b6649908055d8009c1cb501e87a8681df52f6c4264709324a9a731883ae8399495cc3fc31a9f1905157b8ad55f67aec4d1189db6ace67629b8ee952bcfb4ae925ecff806da046a57b98e0b0e56f6561a527e5e8f5cb7f93b0d5fa4dc3a88cc80017038b9386ddf60df5a5d6c5fc304b16517c6d201fc5344a5eb884f85824abf60c83e4b9e408cfc2dd174fbb4a6144c8f70fc014e46109f751928293dbc52369d0f71a53ffab407e0e12a734c3d25f746e538ff2dfcb242c151e326cfc25975e913173feb4dd497bd88e76a5716784c80bbc98396aeacf1eee010e5f73cacc950c5f4698908dd73df9ba5f46b4034982e87078fc779d0891e79e64a1049e3a04f621e053f3e22df95cc05ab41f84e13cc632ba27fed6ac1f129431776891149d2d872927ad2c2edbf308f77be1f33982cc0b988e12a86d32e32516cb489e147c06b4702e04d33c6e1d2af87d3f0cd40dddf0e4bd429f1e72d86130da5c80dfd4b6af7ff8c8f7542f2ae9d56d7e3659867495c198439d11445ac1ec56c24eb6444ea319560c6a1c681792e5dfa7ee0273227d263cece16ad38d2fb2a0516dba5b29790dbcf3b570bafc9cdb3144c04c990ea1ed5da0d6ca5f497a9b7fa1371102d9ef5c835aa343cb7fae12fa351611f636849834e805811bf2f6ecca87996bb271ef30e8193694f2bfa4701fef915b9ab79305d7d297636c4e686214601c95c669a44e5f5daa5a0906f34bcc12913a229a6dfe049a609f6842925bb5cc907371b9cc32be1087a6174a78e862f415c84af293c9a6382ede2144e93a7f7e4d62a29cefeed8857d0e4813650773d64659cf83ac6421a54f7d973dd3b1118dcaacccdaea15b15005f7d1f9129a4c6a6e153dd6a56ec38da0cc8b86ff9fe937ea5f175ea6c07f3aef6dc7039c28d5ced24edb67b1bcb5c951d89fe6c5772020694e648e1e60494a7e3812f77db2b30e0f0b14df998154c996243fb7182512093dca15ebb17ee9903e50d2d02ed136a4f2921e8d974d8eb3c02706d7658c2e8783f7783853810e50b5f46973ad6fa0c4163aa9d38dd2073b33d0c30188fd8b7c326d4f2cc27e4cf09c7f66e6cb13cb7163ed931cb2111118909bb83058c3d10639d178595cdd10b970c5d85618da4c679431a842a750c5d8b5d17d7e313d55114d51e4e471e7430149eef5f7df1e67c60b9ea19f932a1ca9c0ba978f8321440587872ce4f78ccf937ea5c7946129b263bf15a7985d2212797397d19d27d888272cc66831e7880db4dcc3763f93b05520c1aeab1706490f074c8e30eeac95d36d5caeb8bd8d13aa987f68e5a8860e375ededa391acfc30293eb6c6155cda86e12c02a7cd6a565c9eede4e643a2043c83987f8efb990ba66b2a4a9c8997b128b0ca32197808c7d05bf26e937bc61c02171621c53cdf3b7a58d0de1c5d377949b2a2ddae3e5c0ef1e4fe54293a0b13abaaf87a1862b931d7cc46b3405eaf337c7e5b73862e6018e99b137b0fa194ed13c4f6176b4550496827051888be91511770e84c97083549e67cc34a4f1b34fc85d2c321bc5e93837cdf79107cbc74d6b1822102a28ef33aeb593c23399ebcf05af093246204f5d2323fb032f80ccff2ca622c0036386c1584c4a8ac56bb6a17a2b2d30f07727c4e71b2f8eba94ab8365ce5b6b9aa19182c6db730a5e84e020e9590ab3fcdbfe484eae8339f3ef9389a1e735c880e191f77f3c24fc7a1e386c6299d65adc5d794064d96f48515ac3316f560866116cd8ab5e5558d59a38143c9a86c8069234cc7853090ada7734ffd0d75cb0c95b45014bd15063818fcac5eb2c4ad8f16d90e3a17b490e8fc26cfe160a3094a51bf2591fd75b18b71f6e5a3d0f5b819493ac5be7fd722f133e9d3625bf676caee7ab8e31c10509b9d4fb541587b2a043b8ce292dc039e065a264793f7123d28b7b69fdae5f8a770ecca985f4725f66b33652e48236a02929e9d299064077db7192efa5c9eaa0b45364b1ec6dcd3e0a4974552b2d377a2be12735b43199590538a52784318a792bf6dd44ca04427233de8f67c8e1581287f3fbb28b1ca01f4b392ec628346170828bfe0415d76deb02c98bfd746f22935f625681c247a1a570c7b021a459b83c3b9d7680d930a246dd15c3c5408c1d4d264486f9461108383f058b44ad98ae8ce8691239629949475759b4816bca7eb33e657307996f310e9a04e28834b2fe2eb20e99236a3634e5deebaeb678d8933966537add5f7e880f8ba39c7b25723624636daac7f86768d734b70fcc523310f70c0a12ddb15e58d4eed86541c34bdffebfa8d2f947be4c8b0398d5994a65dd6a30d79c6ce5cab4159e112f64bc2f1776dcd1c0814c30f7e5cded75bcc028b5579a41ac6e276f9a525664994d7115a23f583eb7809d588e49d1d269892cd32445307fcabffe7a826b1ec65224fef61d4351468fb936a974ce4476ac1ea7e6288573b4daa3cd936aced1691cb5b69111fd94c34be02dffb5ffdc410c68defe55332fc963e533c7bea56e2ab435cebad7f9bd414c102c778652fc15f59989f83632648722b8708d572c0f6fd050fc6d63910de311a739560a1d248421d68198708ba3acc08cf3b603a5763e2bfdf76e704a31bd20272ff5585f83f3966cd50c5b20bf9afc65cb082c97e5a9fc482aa0155c65ce0da2f17cf36bd87675919e2d1b6d8becd5b087ff43e5295ebd1cd7cdff5254babfd3ba524507cc454e1641520d69b58439c317f5274d0cabda11c69ffbb77667dd13afa1868896146901f2641897e3a4ab67d42bac1ddb5c5722ec95160049027509ca16e5b415b99f3d9799621ced579bf56722b9c563c0cc957db1d30870506a8548c55fb00c228a49741e30d45c8c25de37541cb268daabd60047344800bba0503be226cc20d0a1ff81e9ec05dc4a721ecdf9ee756c1dcd18fbad73443bff5fd967c871bc6de22f349d8863a1522957982dd31d3fd49868ff4b7cf65ed4261acfb6ed8017b5637ce36fee0ebfd59f1b5bad456313797a03f930c4425b16def7ec87a9b02dfc3f86919b3964f67f60032aa5af028f575075d03f6894fe53cf0fbe6de4f5ed37b80d356a130184ca1ea9079a21bf136b68b1606302655ef4bac1b13a325f6ecb89d02943c6a96bff47e323b03ac65df6feb4ebeed281b5538e5f938ef3ec00b9f0b0f5c9d3d09d05b9d5f388831bf42b032350f55ba15f35d710ef59d8b5f4612113d5a752aeb73cfe9e52ef5f5557a859c1fc3fd74ac57cd829821cc63f99adc2072a71a1fe7a197a712282e21864cae068d7db80b557a6dd3a380b3fd8dd9e1179616f98250d14cc44881eacbde57e627fe5e326a64f9590625d7bb2a56e923dcbe68491981fecb17f109d887123d1c3ae80940d254b1c238feda80ef2b39d35011c366b6c6d53e3cae73a3d699d0ff71867ce9b5b4a306169c6868a3ecbbf6ccf59ccd63624ce430a251f0b4bbb1c88e61196152701b9d59ca43fbe2310296860c791c660779ecfd60cd31218e2b31f6b5a0ca5a3c17f70ad2717997828eebc58e321d2fd899161867e0ae1ff41f448fdca1af09df79ff90d10984215e47ff502fdfd132b0fe1c963d6cc1dd75ca481a5f64adbf0e149a3b7b810103380c63e37f73ed240e079d2bbf07470249e648217698d758fceb8f9025dab82cba602aa0e716387a78a07e6b5c526092b1eae4d8f2860e7ac957ef06e238ab1058b3d8e6dacfa70c1f843f3c9386e05a04f7fc9ca81f58e1853667e5658dc1ee40233490efd9bdb4bc8844bc4d89c0922ecc8f4b5cbe7fe7de0d2e5387487459cab958e3456e96ddcfd1b15513f7464f8ee696f6db1ab2bd38ca8fc02bba882f9a29d75dffb480c79bf53b7334b83c772ff241398a23baecfef4e1d1f915d0202d46c6d6188cf49bb6af35c4e40e1eff0194d3308b76815fdb381bf10b96a5e0d06caf34a7e20e77910bfdc63e96cf1682578638bb98eacb503d2f1f7f3abf1b49898322103b87fa096e63dfb6a33954f144d28b7b66cb752574cfd562b30cabb106ac7b9136ca196b7272ddd6939a14a7ec5007da657730491647fb631d0056156c5b0724a2259b08a688c5e8deb3a880dfe43d2b64e62818f9d150f667dc9fd36435a757fa9c2c5dcf5353b8d96abb3c35784a6d81f0f114568758ba4a50000000000000000000000000000000000000000050f161a1b23 +flags = ValidSignature,BoundaryCondition +
diff --git a/third_party/wycheproof_testvectors/mldsa_87_sign_seed_test.json b/third_party/wycheproof_testvectors/mldsa_87_sign_seed_test.json index c774a59..546c2dd 100644 --- a/third_party/wycheproof_testvectors/mldsa_87_sign_seed_test.json +++ b/third_party/wycheproof_testvectors/mldsa_87_sign_seed_test.json
@@ -29,7 +29,7 @@ "description": "The private key has an incorrect length." } }, - "numberOfTests": 94, + "numberOfTests": 95, "schema": "mldsa_sign_seed_schema.json", "testGroups": [ { @@ -1594,6 +1594,30 @@ "mu": "ac70d1f17d06f9455ccd9b5a5e9643f39d7c0c2ce16356225cba8d874ce05a2fbe0ada02ece5fdaa24fc8176f2846b22d2bc092e2251c0fbc5a4e25b5207f89b" } ] + }, + { + "type": "MlDsaSign", + "privateSeed": "a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2", + "publicKey": "d7cf648c58e499e236fddb4d5cd9432022463bc312dda201a66c929bc13cfd13e139f0897ef922566f89686eff02e850c095f69bc88b49a78b3ddd9b88bfd83b836d236232f98d39486e8e405f87b5a3b86f1276ea8cd1b208cdfd678b3b6a536654be66d2128f499a9ad70301331c7215e50bf40974ea7c37ff6b3b98f33d22cf756331cd8f0e05d88f3c432a33ae4c3f05f7c2418316789fa4a5b7e6c4e4b3ac554d7946e73367f38cecd554ab64696e3ecf0d9c8ca266897a32cdf402d9bc8df9b0f56b559af3613f6bc689773820a6a39feaa5a8b592bb057aa642fc5dc1f586dc359f4a2a9650897d8c969979c7927879b46ba2b300b5f789cd14dffb8f3df50d0859909af6320d1867e0ecf28c6ded766b93bfd5c2aff6cec0e8c19b24fc316c322f6b6120f8e37958d418f43a43164563d2e98481d17e1478aa48b1e43b8fbc8e0c6f043c01bfd7dfb7f6fee82b494bd8d2d2a52c173ad2f715b443bf49f5b6d160012479ddb374f6ed4fa8068149d6d9ccd2488f1324bff8cc6125232d94106ce403b951a0b1ee93b01870c7d7b3cbdcd728c0df9c7d03994e91aa5b9c9c88ae16633525977e1c8470bfe90046729a87e7de5f1038ce254e8194a70c2d6ea69852a6e5b80d02b9b9ea0481f5daa69fb9cf606b218d30975629b004e90375d32e09717479acd267ec55120aa6c8171dcadf0c265dfcbb7c1e498c2be7894f37f6611bac8d767339563085da403739e6ec4789de9b985c1be65e2de482fb6f704b5cc598fef32f2892149777520822f6e0d88213ed8748355b3649367b496bba857833e0e554aeb2a7da96c50c8b70b73dd73d1e5c51cb82cb390fa074570f7aa8e8e252d0a6f77c35ce93861809ab94c376b9b9b0da2138a7209ccd1cdc351f51b1543c3cea088b364f45d19f479a3e9edcecfc30ca69b5a7e0ad7cf8d2ffaef72879e997fb2d2f39435be74f09fed050f4fffc4f550229e97915c8a2c182ff0b0d7f59a7fcae60318ab9850c36e05611bc5ea6a73aa1493cd68e4fe20f14adc7e6239026f533a64f87709339865c4feb3e16d5cd4f5ff4c7e6e6ba3a83e2a23aac7e199cd1373dcb883f1ef65d5741be28cb0a4eac48a61bfe249342a52b4f9dc02cd48b8b7edf69a1d66594873c21460acf3259c802a2b4025d8703ddc68a004b706d209797433076c909dd43acda2a0aaab12dfa556a643e46f4c26b6304155a05d95faa4b8e9b9391e0cbc346de70daacaabf78e938aa3eb1907c84650f68ee299bdbde87fbe9a803c4752a9a10d2099f74193d9ede0baf13dbc3448cc9315faf4e438a4b5c65a1f9f96e6e2e918dc688f2b370c682259f23e5c2992892054b7232a002f11af7b3a4406d9e1efa1b4d49c8f763b5e2b99dbff8f57124506e93dbba3b6aa907eec647ecca1cbe3b13a2e22cca4b27a76e37ea694e3a39a788e0f26a347e605042e8f0fd1524df928df54e7de1904581b8b702428449b3010a88a4aaf9743a2a39103add3291abcbfac8c79616b2b2e8e3fa490dc742aa18d2a107ba397267c763ddc0184f591808f3b95da10ca931e99ce8defa750f36244580001ee6620bd5f7d2b2aa8ac2b6aa9a01979d2aff561a929ac291d3c5d68271225ca864508e4417515f3d98c8e528b5f083ecb21110e927e2aa0c00dd72375f835874cde6f712a0c053c14c39c7ddc8d83ef0f6ac68cdc0f1c1261c273ed6e0155f0e60b7a24e4304fe0551f3e6c532a17f9549a08cbebf3181d53356daba3f08e651f32030528feed98949648ff3d450a44f05fac74f19dbd20e9284da85f51342b7b8d7592b35a55f54425cdd389dfab07c67481bb4d1f640adfc5748ccf79697ebb5d908ba43ab2d4cde38420adc16a806010decc32a7fb5a57362de4cd36fd1de4e1cb0f879c0d659b4962de32fdd10848a63fc34345c7be45fa9828e382bb830dce4b7d20f94af3645638eae6101148f60911b3cc6f2a5d23cd39b7f58ceb96d510b454d60e8152034d91691a602faa74ac3e211233cb115af48fd8b369eac14194b86eed045507bc987f383ea098ff78c5d45b9ca28432913060c7a93d8f2fed453e6182ccae1a6b65e3f1c234bd4531298400711880b32a30e5eef5cc32a1775e8714b2ac2c8715e70c8a67dd4c8f1fc989e331c0206e1de36c692ae7665003e81b9d795adf96798685856d89c8bba8459794a1b48e496cab3ffd54e9ea81200fda42245fbf6c12da4a57f5e51d274be53b5ba17f334da01e2802cc22f1a10c03a72d98fccf6593902ddef311346e49e8786d75114e2556c34f14cc3b34d0c42970bafe1a516bfa4e1c7785dc1760acb7001f8b5500ed44b74ff0552759db3252b6e04162702eab9506dea3d0747ab8b7aa21b62f0fed562d3f372fbd092928068c70d9c2fcac6d9590951ae06c7a4f92196fe166a4ac63120cc551a9bd56d503a0d6b179624d7a7b985f59d0e2d13c4c4e2fc230c71c53e4d85c2cc3cd02defa91144aa2f229ab964b2daefd9e2aec7e2ff78d35b948d85bf60d6b997c0dba35876361fcad251ebb531a76b50e32c387e91ee113f632abca0af0846b48822f57ca529a9cd5f11da8b17e83d1baeffda090d8198a3aab7b2ce23298e44b7c6c4e57bc51cb4d8e00a7c116e52c604b50d398549c047c99f1753212c6bf6f82d8d3bbb871ec908bccaac7c81fb5835e436395e483315e6884ea90a079b5a23b1414ec30ea61cf38185bce1059d0745cce3b528072725a2f6afe2ca29ac4e55c18902f95afaf95a3cb20bc20b19c0ed3f218d769508819880b5139e3c73cb85a5e84527631d40645d44cc3846c3b0f8d4f8726ded0bea17a85daa1d7aee14e1dfb5256f25861ba9c6ef7bf92c9407d03c4d8f33d3ae13c8095f4da7826c2d66e147fa6724b6026c8ecca1308463feaac8b691216db9c69b692b0fc6f9faeac178bce1a89181601e9e89287ed9772e5bca7cae369e227cac1d88c932be910b9f35c54afaa48846ba74834c2a0f7b9ba24ada80ab098a81ee3e147e879a45a90233bce6d956a8348077d4fb0ff6941adbb1b1d709e2867240ac406bb40cbcd0f0589d86a0a404f61401cd7770a0365621ef8dd516c31560c6410b11bca5020ab6c8dcc4d66843e668c320b24889c11b29fcc0354390174236ef9f6887f7fe477e57c8395a57d308778c518f9e5052946627887fc15214deb5ec0a977c26502aecd8f9414a8341880a411a00b18f60d66d47f75c55c594f8734c8cf6da51485c931e021a5c2e4858f5ecfac458e19b89fd5ba60762818da8188d2cb0ced0f2565f9a8ef58c3a89b6c3245f15e80a54c65ce759afbdb58303d06f355bffc17fdcaf3bed731ed959807247a917075ed642dbfd4d573a7069c4707a2b1a59384b1924e76e76f587dd6f16cc50d4509e188e1fb2abd5a1c51095d74a5fb1a06f9e3b74af4cc1fbc05869f45ae16af3792182db40573b75d13b6bc5efdddde60b2fca66f6918774b0ee3e3b9a69b06e76a9c60098c3e32ab58ac17243d39eb281751dadbf0159d5651bf505e2ab10dc42373b50981bc72501c37b84790ebcb36409d85b11e8e465f0a9b8458ed23ce62f42d83e22881f1ae0aac22aff722c88b8364a8aabc9fa3f9889dda39234b98c3b84fc8a2d08f1006d99fff074e2", + "source": { + "name": "github/trailofbits/wycheproof/vector-forge", + "version": "0.1" + }, + "tests": [ + { + "comment": "deterministic signature with ctx length exactly 255 bytes (upper boundary of FIPS 204 domain separator)", + "ctx": "000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfe", + "flags": [ + "ValidSignature", + "BoundaryCondition" + ], + "msg": "577963686570726f6f66206374782d626f756e6461727920746573743a20637478206c656e6774682065786163746c7920323535206279746573", + "mu": "57725f34470365450e91ea448c06438d1edb91e8b6ded0919e41eaf201f636566a2f621d77e6d895c5942a43a276db3ec5272d0255fad332fa793eb30e5bf7a0", + "result": "valid", + "sig": "bdd61a3987d53f4372afad76cff93a935e47a502c14b38f4f63710291ebf8d342888a07d38e39e5267bc94d871f38a11c53484e0b87d636a1c0c2e86a6233cd143a9dd85a75445aebeb3ce0a540ac0d28cbc067fd139a205650904bd7e3b9820383ff150930f6b34d13984c256fbe296ee5ea27782e4a426e708c4a2d97da81684b1d42d905a1ea091ec854b6a5356172c44af125d40c0e943e977dac11e89c75eace4c020de36c1caf60924e6cb8c22e7d003240e0cee071fea5cdfd5a84580565a3db09e64f01a1b18e6b35bcdab2b056d520467e071b80b86625e24410473dd04c3728349244c947e73face6102ec340bf4a0a79521b8b4b4979e4cf5c2eab4297f745694a9a726af5d12532645f7a06ba8c7c325a70d8c509f1a49d058c9515c9cea4a36802f92b4812f9ed4a2752a774ac72a02d0d51cccd10b8e7a825dd7b316677f6ddd235d34cc7a8df00a98c318f5d78ef55bba91817eac4d6cf0d6c2686b606f87ef37f06dab9c249a32c892cd8546df1deba9ada6104cd5e9b6c52454197cd7ba536c51854bd69cefe7bcae8a1bd2d74cb6b3fc6cea8d3482d72c3662c4b7cf1b762692ddd8f313a80de9193df140d7180f11d13b184d79aab03b3bc41d35bc83004a2120ba1e1167b706f1aeaf3f4124c980a410986a462f7bfc969992ef5818ed4ffbb9a5201ced6579daeef6574ab62fd535388c288dc367878c99b526efdd70ea5c094e60aba6ac91fd5b174b6f21b48c882834563ea54ea61586cff3da69f8da353e18d4e9b135123abcb1022059ca0a7b6b06823415a6f3ef8cdfdedadff8313186ef94ae797eec06c4783a2003afcf08c369e4e3cca3632e0bda3a43d1633239efc2bef49ba5c5fa7083dc7efa97da682d6d3543274e74f7a21427eb17713bde504a1eaeb2bf0cda8531de6b748eccca60e64c30775d12a3ef650a03f420357517001c331d5a079da1206fde84ed1043f7f663167292306010f4354ccc1d35ac9a88a511b34c53ba9df9beba7b32ac3d458615114d79708f28c927d5a67558d4e6f20665e0b3f3e22b10d777401d85f9e38cb6eaa215187e329adc458631a4701f0a25f3ff7459367a4ed1eeb9ef765e0cb6bf0e3f924023a5947cb415067880dd9287e70707f9d84c91ddcb88a12154d143db06e086035e33431a4dd9f1423cab23a81cca278e58c24f7ba417d65595be987c950fed680ac60da86382dd32d4c3e74f54b409f51667ad606ed37a8c0e51ce7589d63a7a3b893ae8fcbeab915afc07f87b24acd0ade8e86788b14c241cd1ec3eb3634dfd8567bb4747f5385bbc449b9e83344f7740c2dccf2efec69cfb324f02a47e58a7ae74951b3b5285ff11c94a29139d9f639c2edde48e5b3125dd960fa5592ab125f2ecc633f27a7fa819f80ce2e1d182b9342221b4c764fab760ffe27a3b5907de717c9564a6098a240e4ad7b55572971a1fa3cae51bedd14109bdd6dc216b4dbe2f4b381046426d84f148404fd52a4a0d912d03499d2dc0ab945820298f69fcaf0787a357a80bf215992a9203b2414f1aa1032df0c0817ecda2e4782544413ba3f6c82dc7d1e3a5ef0a7f1f1c1fa9339079ce6d33841e862f452cca988d06665f74d5989bfbe7c6ef0455c8aa002a8bffb2ebd5099f8fff65243916c4ab43d5cedffcd9bd9098176741e48795b59aec225735047b903062f871f6c89ce50b1e9013a66a136bc51ebab1aed366f211e279cc6f48c836cfcc2a77d176b37c76df1ce34f7ca98a35cfff23dd95106e361072f8871ed5db04cdfa5b5220242f59746e5c5e3b7977b64a27794b2412fc6f5b7055f231c5d710fa405e02518dd1f16ce2415bd00c8a4e6bb8194177e18db3963d5d5b33871007e58db14120c53b0361506b2eea5bf1ee6f46af4a6f653e206b687d0a6d8b2b92aed621146232904ec6ca94473e06d380afe0e4bd847feba6d801ce860746e487c7296410907721d641a6078ab153add24c76812befdcf3c695b6f6b4d798e3cc290c61548c265fc532007971cbe7dec05bfe7bfb3593af14c8cb6dd124d32785f28bb51fa61f1cf38cd54cbe9814e6db6042a3dae34a02b01eefe27b7f032fc7e43eefd2a353ada2add589dbfa19e5b9df02d59709e70a627b320271a79c52db52f4ae7d4520ee79b4476f19514930a4eecc604afcae8acf72752ba29a8c5abaa22a1bf13ba2de6a2dc084e503e6c9429e9c43247ab6fcb02de07a7f7b710efa965783ceffea6f685b19df703a7e85b75f3b243fcdc813bdb98d203186bcc1370efb892899c7f32c716f64851875bebadd525536988b810ee5086d900b7ae315a50aa29ce4af14e95b41f8246870cbc071a3bf9cb69de0b76879b125f3f89bd4f91108cc3365f7fb5c4a2fe4a21fb8954e5a8762bc7c9ab4f1ee59ff83fd0ed1bf2fb233f3ce289aa43dd51ac99048048a2b0b042865e26dcce93ac2cd69931e25f1d9e642a99e88c87f75ae511f6799daa78c07d20300239314ecabfc9cfe88943b26410352eb99de7f6a07e52db4fb297a0d5854bbce6b7b8410d34c0df8d97b047b11f4ce091d6444eec225326a256124134186ea4d82ddeb8028a747d2768599e23cc8f21ea1b30962471a207651fa6862dcddd822bc824db9c15b3d4ff87853ca5d029d3162c3ea995507b2065a4a31c0c29950b554e733ccade40cc1fb68256112e8c82d0d2591cb665aa5f3f0ef99c6865cd1f727ef143428db6a5856c391cb2cff0d778e3376fe0a1760089fa11d6cf5931a5ffe2873484356436cef0f91c1e16bf21f60864bc8e4b5c268d762367861c6777204681790c23f7a9352af9d93ea5403ccbfe61d53f87f9a98efa3e1533a5a402b1a12098cde560cf9c1885a1c2fdacf60056d0ea8ae731f3be7e4c14a61e57ebe43d092c9f4be0c7f5a1d994930e2d75f12b7dd9aec2b8da332173522a0322cc3110358f7949e5b5b24ce56a9c67a8185b407f463624d017d4486d07d9bd45f81bb7e9a139c9552c86e80a4358c7784707ad9fe38cd4dc71e0a44efbe969e3fa00315c1dc629d38a4f08d19e80f50327e264b0ace02576d0ac701287e76e01d327025ba97b6adb86a27d0ce28d09f7ba60207af97d33b5bee9ea0bc48bcd9716b625506952fc5440e2fd783db7858a1c37c404b577f0338480aec900a4c69bed770612ac2683197bcf6dd917b8b634a169e9dcf3389e7383dc29361c9c3cbc692ede3c3d71eae58818c74e4bfa20ebdbf55419cd56db154fe8b9df2c454c71ee82db339dc033efde518e08f62790a87edf0bf9220289d2c7206b1d159b72e65a3a839d003c41fb4bf01e02f1d5beef7c01770c64487588d5352c3d6baead9f498a09596d98f73012f52fb83755b2ff29918c29b8d1572678e07cfc06edd75ac495e8b81cd78334b4f0c68b42e7692f1d2e81914fbf7e63dee69b3cdc56bcf5d12907b53f22ef4c6eabc3b6d124e0d163e4560f514dab950c776026479bd248ff1edb1caba72853ff0e06bfa4eadf3f503b187de81630a64b961b15c2ef47a54e00d7a63441d0c4516bf8989714878e652eef53ca8e8311c5932160cfd81714b5af31de7dbf7cee3dce70fe3fe4b88378115fee5a516ee6174ceb571fa67ca9f45494744fbc9f3046b1f1bb3e4928e621e90a93e611d07a34590a0f7fbfa9967af1790024609b649fe8393adf72c89bd0b253e0cf483e1c226bdc865ae62bec74675dc43cfbf6cc49eefe262cb46fdce535039f30ceb73dafa051be98cd75bda7ff4f1b516353c20d470b0880e00ec20e212164370888088b8a98edc998c9c2796945d5ee60e7e5ec2dcea708000df1e485b2cec327937f0e315b14c6e40909aab73c3f47e989108a269b0b0f38b682b6b0e064543320c57ea1c54f78b6ff47eb4a5c929b72db5014d4a481992448aba46a6bd8b0048a99aac347b91e581b3ad550c4d73b3f10ae1106e75b671c347a332c995db6d095593290cb5effd9853b24b57aba3aaf01ccbcba04028a06fc5e22fc2240fbd0a66db34a50f1b208815d56aba4bc6219798a0b6bce13f28bd50ef5deb64f1639815c45d513436b038c2ff60117d6a3c2e1c08b24b78ef71cc13c534c662996c2fe501ea46a47d41099b9c0b0b0b155141b66e2d1ee92bc79c5920f3d905da122fc77218a22c4553391ef94ba4a139e10e07ca16e6a763a183b84feb309d5e0d7caf643d0073dd360bd5ba2809acd22a79ff2afe7f889124adba9ad7a56d166ba70288651e946f477c681a6f78c8834c39c62c66c235af1563fb06163144643d12e0ac6074940982bc82bdedd3892a7571d6c953ad211e0047635e174f7933c59bd34e6471b8cb8f73c1aedf905ce38c87bddf1eedacc3b323990567eae716359f07743e245bc11301290c972e0adb88f1f7e3b99831a5ffaa1bee8c4f08bfd2947089ed95bd8ad8857b107917eeddc9c4e713e735fbb9a57d8aa4a3cedc8e331a9a1b7af81427f3bd66ac2acb9d2a3721bad0b1c4907dfe80329c5f1dc83b8d34695df63794c1a748f8879d745b33e0554af562c6e36caa3eb970ff51979cdc56efdcf99f40c795f361fb89768cddb5d07c6eb9297237c8b201124df2252c24debc6b4d42ef2c969356dd3f319d49aa7a2015d679fe29c8ae19c161658e10d072a944bace5d5058b3921c7fa768a3aba8877535aa05d587e59426ea40994eab9da467292a5ad17c13cbb20fdb7d9b7f99f1255b5fceaf281a0886d8fb8c21ed7c5e2856e0a99af50df2ded69e504701172e571922e63d50b96b2ec5a4d6aad2f3bf2940303066f77c8db2c55dddb4aa5512a1265151da6c769e01ef0c8d7d0b8568e9a23f31cead15fc43a93f47502d9d14995a05acf96bdba4f8942d9917a9b0989f913482a46e1c42ec4f942adc62516a2dc726c965b8d5e5cfdad5dc7e4bb840b18b9fe50b05f9e73dec315efab8191f2807e87e1b957a57ae6462062f11ea13761dd37dfa0e7def636f5a4393f5949556870cfbb690a8a49303e2c1b188469d4f639a15ebdaeffa585be16dcf7e91618eb11cb0d95ff9e05079dd511f12d3dd45a29c08992d77f2d8b7e7d7af3e5cd6943d7688cbfa25aab585cb3fd329e8b423f2b6924db51f6ebc0a2966c68e7faacddaaa77462d12054fb52748599122af3a392ca80d2777ffd0855e4d83f8465dc07f34a6d9573792529e3e935302013d82e056dac5def81cfa8982c34ff90783b4c406a7114d6bc3b6a9d1b36f4b312aabd103d1c1b0d11ffc78c4decb5612ddef743b380f1d8f4e599b79fc758a84bc72f4cff01b1f789f91f3474742f37bbafac0426e514eb2efa39bfc9f4255b1c38ddce01267156a33ef9d4b099d6c77f3aa77fc492d0467d723b6a7f409123b35e643589d8f76cbb47b6561823ebce7f44e82366dea19976189a1d8ab315e9cf8d627b2a4e37b38ed9dd4d7756d42d8d1be9449b182542e4460aa7dd9a54353f3f7301c5d6eba7a571e3707118cead54810644bbca55119592f94595d32f1663501bf2fc67dd2986537f670c40a51d24d03780575d99144bf902d032c1ce07975f050c11dd72547d7a518a0b9f1d190ca1bd5a582e9531e83fc50ddcd9b2db0bf8782fa75adcb9cc985c43244cd2b14abf8d32e2e54bb60a369c9d77196bcc39d214e671c33d4fc82261f97410b9d59715857cdd6f788bfa23af48a13f4cbb107bec4c5ad4eb791938a45eff24205e81c937562e3f73a9c127312ce0d81dbf4ea1e9b35e1f37f44ecd24eb38ab22c00f8ecd008c358437260f38768f1421202945be2909f626d59bd7df8c248cd14ed81dbce773ccc7626631538dc58075c9eefd45fe797aad1c47337a104bfa3c8b64140c0ec9f895873ab5e623cbd4703aed65b76a788485cc0cd97c31f1d77ab5add10313df3522a0006731eb0accf3d491ca798914f2ef61ed278ad6c35f9481f2afa55bd8efafb18e2d176d097dc7e3158da3d67f0694b7c8a9c19d00a8c2e15976105ca66f5efd8a9b96d4c7cc47227c8965f95497d6b74092685489db64623ecd23c22265882516484ea133f23c8e89a0fb9f5b4ca8ad7666365c7efb2422b4e607d9281a12d88798902dcc5c31d750d0f17c24b8675889250a4fe3df5728ba6dcf8e231f354c2f28f8d40da64c15b69d24cd5b4dbb9df5379878ea8f027ba80b3b3d721bec1391a911a28d736a9b31d0e24fefa6341c6b8ebf9c8ba4aaf6dd90879ecdedeeccdf701c3c0b4742f39ec89633e5a737bd65fb2ad135c7846176b8457ee1c2863ad14dd65781055b7f7ba9c30e4de39c29df168cabcda769e10d57706c55c23c0ef6439bae6cd78a1147040f07dcb191acb34a7ebe337e1783d7c727b4eb4b8b7bf3951ed23596c5f82c417b9248c58447e43ba5cef3f09cf8521228d72c7cc2d59d782632d47d70c1a1b2e385b5e89e2f80c0d17363873aac8f5f60e2339444c61a1617087999dc246e102292e41457491bac2c5d1e5fd0106213c697596ed141b2e718ca6a70000000000000000000000000a141b212330383f", + "tcId": 99 + } + ] } ] }
diff --git a/third_party/wycheproof_testvectors/mldsa_87_sign_seed_test.txt b/third_party/wycheproof_testvectors/mldsa_87_sign_seed_test.txt index 2341e7d..09026d3 100644 --- a/third_party/wycheproof_testvectors/mldsa_87_sign_seed_test.txt +++ b/third_party/wycheproof_testvectors/mldsa_87_sign_seed_test.txt
@@ -887,3 +887,16 @@ sig = 11cf735d5366ad8dae0d5b98770ad572a09635840e4636c14195f39a18834745203d076094c55f3dcb564f534009c0524b31bd936b1f701b90e1db0acda71a436fe02d36cc1c7044cb6e0d460c031dc0c7f0c486c226044532381916c0d747421e1004e4dd6c5a541e56b40ee34ef5c85a77391b259cbfc8fe05faf5e244aa379f0230732c6fc5b7dc0361463fcdabd6f75ee8970776f026eae39c5a4a5aeade306f4c5a70db95c91ae14d1800368b9e3295764e6c240ee9f74ff7884771f139c2c559852985121ec830b211dfa01798e1d5949e22b6c15b1e69a2b4a2b7cbf51709a96f60c1511fa11aae92e575ba1263110d8d79c434a4eded1df39ef9d218073d9426eb7b5d1ed78fcf7e33ba785f837d9bba6a18f5c23642aaad4522d6f234c50bd8c2c6dfe54fe5039320b209954dcb941c2c615d7b437101dfd5b4944d7af4c49f104c480ce33fe4952089fd9d2c52d7a5d6cf94ba0ad59384da5e0402273ade4cd2bfe33b89e34b4bab3111c4d9ce64987314610a4e91f178fdd51f4fcd8b33a6b6de589ba3dd159d18b06e30c4951bfb001ae9681720f5696ba127e6f657d5fdfd977be77d609b0a4c526fac0ed2a41a17df3e7475809d7548e35b5cebb4108be9b456ea3e488c50dcb8797e7ac8347716e85a4cd6d02dbc11825488af3648c6fe1ce222e91be90a73ac8db8932a138c6c97cb07970f41096478a57abe6c7102ea81d7a0780fc2abf139d092bcaca32ba0965e2103ec64fc966c7c243f88f2bc8bc18f15f74e5a288d41fe54510c8a4bf827b40fa85947ebe56b4cb943c6f2b7b8867b9951b8eaa7df3d7c7034b023d89d43b81e50378c6fc45f62c53f053a6bafbb6d15dcc578307e5fee3a2b988471e67e42930ef2b3129370ec26a62caef030238c63960b3313c83d01446ab1cb009814761c1faf499eb51ef7b319f9baa74179dc56404937410d191440c36e1d29ee75cc379c64b38593cb4d19093a27254ee5ee847908727a9bb9759c7c1c7848ce8991d5aa2f37985336aab3827efcc9dd091580b6541d639bc9d737884889c2497da6a5f4c6a08f64fc96dcd480609cf8a4908d3f999666e0d187b31e4750db301712fe74887fbc8322ce0ab5061d91172484778df56f84ac109641502e4555470b0e7ecbd0aa7e6b28955f7d8056a31d20abc64a3bd4c0130cd487a28aae16fcbc5e80ada285faecfb3291ce0cdfcfb4a33ff74c0c2b402ea9f5a8f71dd80adfbe2d6ccf1c31345d7711601a4411cd2137fd6ad659caea2bf09ea49a4a1c002a4c358db9be0f7bf8fdf8a3d75fecf61e0345d482dcf45f0a534da2940ed0745c4fd9a9106fdd7506928d09744df9a5cd4416688bafc2ace6bc5fbb5de12dcb03809b6472f6121efb91d10e7a90dc784ad0850ec5692276d0d7e0595cdee635b79859efd471fbd972a3093e4a9b82c7c9e14d4407505728842790f6db342d78f0a798ae300f3fe90cd4dbdaebaa4c3b407448bb4714b3dc72c6b52cd5efb958c5bb6982833ebed8165e68491eb5a5e48adbe24524d7b890c06983a4dfa10309930b4cf967e7ee400c819663cea966dbc9e42bf2de46ab29556c03a98ebed16af5ebf244e13d41048266220e3c0a171ac9c7a63de133518c88dc4ce48aa930fe6ce1260f34810103b9e467c5323a5652fe1da76fd0f7c6ceda25f0df3d484675b9da999821e80601fc0511c8f256e2a2fd40a4b426d2064ed2b145524956a49f0d4d0bfda97651c29a757f81608752ff5aef3d5065b2dd545eca92929431694425a47d33f0defb21d299d2a2d22aeffdac6dd8d4c8fcae1b7c8e3033c4aba56c29e6fee14fc1bf238fb78f3b3386088caeca32f3e97bac041171de7576aea5f8865303aecbb51d763724bd22fce3b02dc4365431f3c4d0b200d80d5a4451340f69a89e1dd498fff978bfebf62e4b7456b0cad1248277318186b7edf28f579785a3d74a9fa51cd53a7666dbd77098fe01e3176337802a14fb88d1f7d82b7ae319e3879ca89a99d7c7ad31119cd9cb62a03285e5ea5a02beeecbdb164e2ec4fbcc8f0d25011b53355a52ba67407031f8c8cc25ea66f1f682192839ce7b5a93644eeb5d530b3d1ea31bcb321d48cd82607538b4a7b0793b6c4478189f86df0b52f0ec078b62e3754a5be082af57e3aa39139ace8f18342ed8b8d4dc91c2f53291cf0a4d15f9e59b4e7147628906b266a405370626aee408c2cda31ae52cddb44144be7d2e1fc9566f2bf5db248debe17df381c406021a9163c9a8e55a03081192560bc3f544495808c7798c242fdc3d49b655a1c4a2240f5cef2bdf02b879d7eadcb0f9d90e20dfc3831e82f299ec8072efb31ecea5889c08affe15929ed568b3ec0f2449ae8a013c473a84ec66fa9d660a4558c27c15c70b14864310ccca1a1e449f2178cf8f18bb4e006934464f9baa6164dab9aa7f317fa3e445a0b24c59ece6edd2c4064f47fc3b638d4e4bce86373ee08ce42c170a82ca72f4b33323e7f23110e303176b33e6302254108a97fdef4dbf151ef39e76564f0e66c85ccc0eb1f7eb6a7844f40ff74fe2acd05ede2034eaed1c33ec1f6226ea65db75670c1a1e1da7c0a85000744e9769517389be6b55bb2f9af730efeafb9247c2a0726e51efadc9f2d2624bb7be23b7adae40472f137aa81f386556f613879faa926059e73c082449b6d9fd2fe3a536571b44862d0eaed0843b3f344f85896f8f808a8a6d9f2457dd9f4203ecd53fc90cce7c04e5de79e890a1304dde190c0bd2b773fc3cab1d31938db1a03d883b54bfafcbb1d7a4563cf321d633abb83ba972030d35a66f2c2eb784365d4435c7df6ef0cc91fa176706b89cb74412906b226fea113d092ea8b66f5b3a040215d2d54696eec806c0a1e5b84f374eeb873f3644274d150e03ecc9df4dc5f81523df4a7ba1027036f7de335b3cccc4135ad64a8255eb788d32b29b584f0889d5ccf514cd32968e541ccf9108981e2bc98fef0d512239643b4b0b54edc1433b4d8fa709b5f3a9f7393ac04099dae4b2a94b4ddc2b94c824a874b4d85e199ec7988cd4a1694d43f8d169443135946bda6b2b4cd7279b31e4b8844c04ca3bd119c3c313fdfacfcb84e4df69fcb848b99db27f6d116b7b11162fe4adb5a300883e66e1c0c3d7c7ab33d55772057de821b0e412010fb07435e5545ee8196dcc8beed1a44d2965eab6b97a194bcfafebea383de18c0f5acf2fc6769cc39dd91b50f765d02c8b926edc6328e3870261cd0c17770da8ff815e2859e9b8993fdc452bde975a5ba146eec2dc370e007e36bfed272dcfbdc325d5ac78726158768499dc7d8f8a7d579cf1076a75b255bdfbf9a4ad7e6804e7e1d59cc39b8b5d33489d0f542bb5a8daf290ebd5b795053152edc2d00eab10d9f01c4ac2ae359e940e76ba106487dbe5d4691da08abee153cac5a82c5470bcc289ec6519ba59c55d96616f1ee510ff138bd91630ddf3788ca05b959f88386232d66998cfa43882e38a8d8416841a6e07dd1afd5948b83f2fce87535d4e2afc3669089477ff93f1ea82cc3560e9d9294d262548c5a0006ca139bdbbf7956ff80ddcdee38785c27cb6d3d18e293fe8c929036508d300886c15db80b44cef0e341a2d68eee257bfdf5b7ddad91437c1bffe7f7d60b998bc4477e3c73c39cd0406197b21ac25b644a922659000034b17dcce0cabacadc610c5a9ebaa7be009513f31f8ea996b183bc93237e34bab86d7e4c0b2ef51f1239871a6a983475471bc48677422f5ba5d29d6f2b7c6acdadc71c51ddeab920cdb93a9437e7259aa6c77d96161f4620fb41d9c12103b1ba63c9c38d515856548140a13753552a0f877db8a8cf54ab5b2579a81c9fbdd5d81c7a458f467b7cba17d4ddd9efdaa600703ba95089fd9ace2cfec2c5c5d5346d4c1732957a4baeeb6a1b6ee92bfb10ee577d27fb3fdfda393ac7446cf30d8b47d1ed3f00fc7583de326fe34e9a3215e8b4549443648d623fa6484814cf0f6d0915457a2072a350a1aa169d15d74cd886ad6102858fa51cd4cc28447242dcc6b9869db8cdd6bf1b74f7453afc2da5e80035b8ec3f9e51a40b9da71a0cd8f933f03e35a8411e5530f4795bb25fbbed7e1eaaace84cac4a562f81e626cae47719e89d870d35b4b619d3ae62e0ef1ab40a94ff3c80b6db2ebddfad0c03b7055bef64c7b24946e9b748d23c88c1554f04e93eccae2b1bc0ac98c9979b331ed0e38caf3eb370f23efb9e3dea3f97e9e8ac8ad9dc2fe1bad54e23e226379a7929f1d1c1023c8a2cb73dbb5612d96ef62b2aadc8246f63579103a644467bad6c21f3def43acbb7c1e66659a4d0e1f9c1e43ffae04cab766fe977580944375de63fb05362a8b5ea957a8f895f0491056250d3dda5c3d1e606bfbf92f39d50db37baa65b43ecfc32e61a4ff9ec7945a05ab7dd7cb6e4f96a6fd9bbf2ebf345ce66ba6cb1dc25b4685d3cbfda220218faf1150cfa5caea1564d273ed34bea9d7faf8c6b63740b196633947af089946b5a3b0aa5c0c21393f046cdfc55a1ddef69f18effe978bca9bb4a796c263ab4e0e5c50f52b8bd464f86ba1a7686d99e7402608c7e91a5142c950319b1bbe5b6c4027bc26e466986e5ea73f2db1a137ebf5077593b9ee1302d7fddd01e2a9f1002e2f7cbc349d725f0062a45883001257073b0e604452df036be8d55246dbe2e03ea470f3d2072aa281c3cb7e565ecafaaa0f42a2ce4250ee281c74e6ad2f24e9a9365efc3862d8510790ed54b012864a70244989596329a6bd9e8a4522730ef0643d9faa970a0acd25a966ca64a3178059ad34dddb90b91127a62cdf4cdd17d9369eb827041f5a2324ea62f6c9519c8227691c30351ebbbc50440871422c27945835f0093e2415b1dd59b158c0d5c71c2f6f955094dfcd1472e441e366b73acb6e78d4e0720c76321f07dd44ebcc08a12d3e8ab25c13b2518c874691b0d276f88964886b080c894b3bef4a16d78c76f6f4cd06e17f2e120aad730e6e5439c0f47b28fb05a4c8845d249a8203261a0a1f6ed4640a3e2d25f115a9459bfbd75e59ae406cc9b7dc01be02fe101a7531b2c3648a926a23cda44c79de6b248ede72ee0e5ad34a82d235630ba1b5d041771b44164a328127281e5bea6961bb34f8f5cada3e223e338b5e097cdfed3a0f5370cd43bcd5ab62abf8c71ffdaba639adce5a5d6493d16cd515f9f209eb78bef409ff09e433b9b14fa9b16d3ce51d8fa450a15837168eb2fe2002bc5a04735f1d809d5e16a6f6d1af315f9365912c3939a215d17296685406d380d4bf2dd942912bb38306e414a095e3c145606d0d7ba68bdccbf3d25de34bfd5bb7d27d364c37f76fedc80268ac371c1b491b1a47642e727618da2a8f60b3b37c4d82d218c3068d3988d8f21b6479ff888f489391af092946b4675f4aeab1b90f87d688af09212ce59299040c18c5b4b322b59f909ade9ad4ecb7c9e5a86f90bfc1191470d47d6d3085f7327bd25bccb0f821ec8498f98beaeabd0241f9dbfaf53dce189ee3816b55e02f303d3925de393bcc44bf39f66a15ab94b1fc8c0c19a6e060b807fa61aff154ef6116c94d0e7e0c6847e85fe1252cfe4312d1d00faf2343a827ebbdd229693bf10fe3877ff7bed9a3308a897f5898c8616b33520e360f233733824fd21d4f63afb815aeb84c91f5a628c8c6eaade8e0c68315b8465f025dd6a4f250814047f330a61db1c461bc0ccecde4b438855f3e23c3b16304672ca454e19d3f0eb7f24fcf5976429d3fd8d01d310ad8c0d2ac8babe7cff8de9785107d07f08735fb8c058bfe73f97cbeb3c7790c93a1a260a9b53f2b49d9822e1b6f8cbb60d5bcf73f558ac48b13c850efb6f106f662c8a64fd81ebd003a5505f92b368afa0aa0da9a562ea5ceecc258d6652d963114703e6ebd506c828afffaee14134705d70ca90da6898a68f419e8e77a44489589025e344aca4dc8c4829a1c3d0a5f72a0c29bdb56b1152fc912571995c53937933f6cfa669e3769d7e4e55df84a3e8af10c2e8d8fff8b65287792e900856181f92ec8a498cda8f5536362bcabe22a5b1e5234cb7f015a1d8ce8280179976879d4b435476c0b6affa5e5673abe9242cb13946929deaa4bfd21fa5cdad16b5a8ad2f6e9194a3e239b45372967bba3f35aa0d77dec55f2a6e460659ade3527374fed6fcb4ffe24ced7138b522de934f6f84ee4ab3789a83946743a25b0e5c5701ce223fe3ac65d6c35298cb59ac2b5488346e026e54d667326a60c43860d558a4768e0ae15dbb70841fa7ef18836d2d7f5f11fc270c395f1e1b05b57107f57c161e70fa54dbca1b88d83ef13051d2d8237a446d3df716c2f7e9f2b4cfa820caaa3f8debef1e48cf341161fdce8d8c1d09db6e920ff106ab2170e72333278ae2ab28b2017424f5665a1aaace11135b2e819203c8dbfe8f3277887e5092b475c67a6f572767a98a8c1cfe6eb214f77f7fc172a818b92bfebf4fd000000000000000000000000000000000000000000090d14181f282d36 flags = ValidSignature,Internal +[privateSeed = a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2] +[publicKey = d7cf648c58e499e236fddb4d5cd9432022463bc312dda201a66c929bc13cfd13e139f0897ef922566f89686eff02e850c095f69bc88b49a78b3ddd9b88bfd83b836d236232f98d39486e8e405f87b5a3b86f1276ea8cd1b208cdfd678b3b6a536654be66d2128f499a9ad70301331c7215e50bf40974ea7c37ff6b3b98f33d22cf756331cd8f0e05d88f3c432a33ae4c3f05f7c2418316789fa4a5b7e6c4e4b3ac554d7946e73367f38cecd554ab64696e3ecf0d9c8ca266897a32cdf402d9bc8df9b0f56b559af3613f6bc689773820a6a39feaa5a8b592bb057aa642fc5dc1f586dc359f4a2a9650897d8c969979c7927879b46ba2b300b5f789cd14dffb8f3df50d0859909af6320d1867e0ecf28c6ded766b93bfd5c2aff6cec0e8c19b24fc316c322f6b6120f8e37958d418f43a43164563d2e98481d17e1478aa48b1e43b8fbc8e0c6f043c01bfd7dfb7f6fee82b494bd8d2d2a52c173ad2f715b443bf49f5b6d160012479ddb374f6ed4fa8068149d6d9ccd2488f1324bff8cc6125232d94106ce403b951a0b1ee93b01870c7d7b3cbdcd728c0df9c7d03994e91aa5b9c9c88ae16633525977e1c8470bfe90046729a87e7de5f1038ce254e8194a70c2d6ea69852a6e5b80d02b9b9ea0481f5daa69fb9cf606b218d30975629b004e90375d32e09717479acd267ec55120aa6c8171dcadf0c265dfcbb7c1e498c2be7894f37f6611bac8d767339563085da403739e6ec4789de9b985c1be65e2de482fb6f704b5cc598fef32f2892149777520822f6e0d88213ed8748355b3649367b496bba857833e0e554aeb2a7da96c50c8b70b73dd73d1e5c51cb82cb390fa074570f7aa8e8e252d0a6f77c35ce93861809ab94c376b9b9b0da2138a7209ccd1cdc351f51b1543c3cea088b364f45d19f479a3e9edcecfc30ca69b5a7e0ad7cf8d2ffaef72879e997fb2d2f39435be74f09fed050f4fffc4f550229e97915c8a2c182ff0b0d7f59a7fcae60318ab9850c36e05611bc5ea6a73aa1493cd68e4fe20f14adc7e6239026f533a64f87709339865c4feb3e16d5cd4f5ff4c7e6e6ba3a83e2a23aac7e199cd1373dcb883f1ef65d5741be28cb0a4eac48a61bfe249342a52b4f9dc02cd48b8b7edf69a1d66594873c21460acf3259c802a2b4025d8703ddc68a004b706d209797433076c909dd43acda2a0aaab12dfa556a643e46f4c26b6304155a05d95faa4b8e9b9391e0cbc346de70daacaabf78e938aa3eb1907c84650f68ee299bdbde87fbe9a803c4752a9a10d2099f74193d9ede0baf13dbc3448cc9315faf4e438a4b5c65a1f9f96e6e2e918dc688f2b370c682259f23e5c2992892054b7232a002f11af7b3a4406d9e1efa1b4d49c8f763b5e2b99dbff8f57124506e93dbba3b6aa907eec647ecca1cbe3b13a2e22cca4b27a76e37ea694e3a39a788e0f26a347e605042e8f0fd1524df928df54e7de1904581b8b702428449b3010a88a4aaf9743a2a39103add3291abcbfac8c79616b2b2e8e3fa490dc742aa18d2a107ba397267c763ddc0184f591808f3b95da10ca931e99ce8defa750f36244580001ee6620bd5f7d2b2aa8ac2b6aa9a01979d2aff561a929ac291d3c5d68271225ca864508e4417515f3d98c8e528b5f083ecb21110e927e2aa0c00dd72375f835874cde6f712a0c053c14c39c7ddc8d83ef0f6ac68cdc0f1c1261c273ed6e0155f0e60b7a24e4304fe0551f3e6c532a17f9549a08cbebf3181d53356daba3f08e651f32030528feed98949648ff3d450a44f05fac74f19dbd20e9284da85f51342b7b8d7592b35a55f54425cdd389dfab07c67481bb4d1f640adfc5748ccf79697ebb5d908ba43ab2d4cde38420adc16a806010decc32a7fb5a57362de4cd36fd1de4e1cb0f879c0d659b4962de32fdd10848a63fc34345c7be45fa9828e382bb830dce4b7d20f94af3645638eae6101148f60911b3cc6f2a5d23cd39b7f58ceb96d510b454d60e8152034d91691a602faa74ac3e211233cb115af48fd8b369eac14194b86eed045507bc987f383ea098ff78c5d45b9ca28432913060c7a93d8f2fed453e6182ccae1a6b65e3f1c234bd4531298400711880b32a30e5eef5cc32a1775e8714b2ac2c8715e70c8a67dd4c8f1fc989e331c0206e1de36c692ae7665003e81b9d795adf96798685856d89c8bba8459794a1b48e496cab3ffd54e9ea81200fda42245fbf6c12da4a57f5e51d274be53b5ba17f334da01e2802cc22f1a10c03a72d98fccf6593902ddef311346e49e8786d75114e2556c34f14cc3b34d0c42970bafe1a516bfa4e1c7785dc1760acb7001f8b5500ed44b74ff0552759db3252b6e04162702eab9506dea3d0747ab8b7aa21b62f0fed562d3f372fbd092928068c70d9c2fcac6d9590951ae06c7a4f92196fe166a4ac63120cc551a9bd56d503a0d6b179624d7a7b985f59d0e2d13c4c4e2fc230c71c53e4d85c2cc3cd02defa91144aa2f229ab964b2daefd9e2aec7e2ff78d35b948d85bf60d6b997c0dba35876361fcad251ebb531a76b50e32c387e91ee113f632abca0af0846b48822f57ca529a9cd5f11da8b17e83d1baeffda090d8198a3aab7b2ce23298e44b7c6c4e57bc51cb4d8e00a7c116e52c604b50d398549c047c99f1753212c6bf6f82d8d3bbb871ec908bccaac7c81fb5835e436395e483315e6884ea90a079b5a23b1414ec30ea61cf38185bce1059d0745cce3b528072725a2f6afe2ca29ac4e55c18902f95afaf95a3cb20bc20b19c0ed3f218d769508819880b5139e3c73cb85a5e84527631d40645d44cc3846c3b0f8d4f8726ded0bea17a85daa1d7aee14e1dfb5256f25861ba9c6ef7bf92c9407d03c4d8f33d3ae13c8095f4da7826c2d66e147fa6724b6026c8ecca1308463feaac8b691216db9c69b692b0fc6f9faeac178bce1a89181601e9e89287ed9772e5bca7cae369e227cac1d88c932be910b9f35c54afaa48846ba74834c2a0f7b9ba24ada80ab098a81ee3e147e879a45a90233bce6d956a8348077d4fb0ff6941adbb1b1d709e2867240ac406bb40cbcd0f0589d86a0a404f61401cd7770a0365621ef8dd516c31560c6410b11bca5020ab6c8dcc4d66843e668c320b24889c11b29fcc0354390174236ef9f6887f7fe477e57c8395a57d308778c518f9e5052946627887fc15214deb5ec0a977c26502aecd8f9414a8341880a411a00b18f60d66d47f75c55c594f8734c8cf6da51485c931e021a5c2e4858f5ecfac458e19b89fd5ba60762818da8188d2cb0ced0f2565f9a8ef58c3a89b6c3245f15e80a54c65ce759afbdb58303d06f355bffc17fdcaf3bed731ed959807247a917075ed642dbfd4d573a7069c4707a2b1a59384b1924e76e76f587dd6f16cc50d4509e188e1fb2abd5a1c51095d74a5fb1a06f9e3b74af4cc1fbc05869f45ae16af3792182db40573b75d13b6bc5efdddde60b2fca66f6918774b0ee3e3b9a69b06e76a9c60098c3e32ab58ac17243d39eb281751dadbf0159d5651bf505e2ab10dc42373b50981bc72501c37b84790ebcb36409d85b11e8e465f0a9b8458ed23ce62f42d83e22881f1ae0aac22aff722c88b8364a8aabc9fa3f9889dda39234b98c3b84fc8a2d08f1006d99fff074e2] + +# tcId = 99 +# deterministic signature with ctx length exactly 255 bytes (upper boundary of +# FIPS 204 domain separator) +ctx = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfe +msg = 577963686570726f6f66206374782d626f756e6461727920746573743a20637478206c656e6774682065786163746c7920323535206279746573 +mu = 57725f34470365450e91ea448c06438d1edb91e8b6ded0919e41eaf201f636566a2f621d77e6d895c5942a43a276db3ec5272d0255fad332fa793eb30e5bf7a0 +result = valid +sig = bdd61a3987d53f4372afad76cff93a935e47a502c14b38f4f63710291ebf8d342888a07d38e39e5267bc94d871f38a11c53484e0b87d636a1c0c2e86a6233cd143a9dd85a75445aebeb3ce0a540ac0d28cbc067fd139a205650904bd7e3b9820383ff150930f6b34d13984c256fbe296ee5ea27782e4a426e708c4a2d97da81684b1d42d905a1ea091ec854b6a5356172c44af125d40c0e943e977dac11e89c75eace4c020de36c1caf60924e6cb8c22e7d003240e0cee071fea5cdfd5a84580565a3db09e64f01a1b18e6b35bcdab2b056d520467e071b80b86625e24410473dd04c3728349244c947e73face6102ec340bf4a0a79521b8b4b4979e4cf5c2eab4297f745694a9a726af5d12532645f7a06ba8c7c325a70d8c509f1a49d058c9515c9cea4a36802f92b4812f9ed4a2752a774ac72a02d0d51cccd10b8e7a825dd7b316677f6ddd235d34cc7a8df00a98c318f5d78ef55bba91817eac4d6cf0d6c2686b606f87ef37f06dab9c249a32c892cd8546df1deba9ada6104cd5e9b6c52454197cd7ba536c51854bd69cefe7bcae8a1bd2d74cb6b3fc6cea8d3482d72c3662c4b7cf1b762692ddd8f313a80de9193df140d7180f11d13b184d79aab03b3bc41d35bc83004a2120ba1e1167b706f1aeaf3f4124c980a410986a462f7bfc969992ef5818ed4ffbb9a5201ced6579daeef6574ab62fd535388c288dc367878c99b526efdd70ea5c094e60aba6ac91fd5b174b6f21b48c882834563ea54ea61586cff3da69f8da353e18d4e9b135123abcb1022059ca0a7b6b06823415a6f3ef8cdfdedadff8313186ef94ae797eec06c4783a2003afcf08c369e4e3cca3632e0bda3a43d1633239efc2bef49ba5c5fa7083dc7efa97da682d6d3543274e74f7a21427eb17713bde504a1eaeb2bf0cda8531de6b748eccca60e64c30775d12a3ef650a03f420357517001c331d5a079da1206fde84ed1043f7f663167292306010f4354ccc1d35ac9a88a511b34c53ba9df9beba7b32ac3d458615114d79708f28c927d5a67558d4e6f20665e0b3f3e22b10d777401d85f9e38cb6eaa215187e329adc458631a4701f0a25f3ff7459367a4ed1eeb9ef765e0cb6bf0e3f924023a5947cb415067880dd9287e70707f9d84c91ddcb88a12154d143db06e086035e33431a4dd9f1423cab23a81cca278e58c24f7ba417d65595be987c950fed680ac60da86382dd32d4c3e74f54b409f51667ad606ed37a8c0e51ce7589d63a7a3b893ae8fcbeab915afc07f87b24acd0ade8e86788b14c241cd1ec3eb3634dfd8567bb4747f5385bbc449b9e83344f7740c2dccf2efec69cfb324f02a47e58a7ae74951b3b5285ff11c94a29139d9f639c2edde48e5b3125dd960fa5592ab125f2ecc633f27a7fa819f80ce2e1d182b9342221b4c764fab760ffe27a3b5907de717c9564a6098a240e4ad7b55572971a1fa3cae51bedd14109bdd6dc216b4dbe2f4b381046426d84f148404fd52a4a0d912d03499d2dc0ab945820298f69fcaf0787a357a80bf215992a9203b2414f1aa1032df0c0817ecda2e4782544413ba3f6c82dc7d1e3a5ef0a7f1f1c1fa9339079ce6d33841e862f452cca988d06665f74d5989bfbe7c6ef0455c8aa002a8bffb2ebd5099f8fff65243916c4ab43d5cedffcd9bd9098176741e48795b59aec225735047b903062f871f6c89ce50b1e9013a66a136bc51ebab1aed366f211e279cc6f48c836cfcc2a77d176b37c76df1ce34f7ca98a35cfff23dd95106e361072f8871ed5db04cdfa5b5220242f59746e5c5e3b7977b64a27794b2412fc6f5b7055f231c5d710fa405e02518dd1f16ce2415bd00c8a4e6bb8194177e18db3963d5d5b33871007e58db14120c53b0361506b2eea5bf1ee6f46af4a6f653e206b687d0a6d8b2b92aed621146232904ec6ca94473e06d380afe0e4bd847feba6d801ce860746e487c7296410907721d641a6078ab153add24c76812befdcf3c695b6f6b4d798e3cc290c61548c265fc532007971cbe7dec05bfe7bfb3593af14c8cb6dd124d32785f28bb51fa61f1cf38cd54cbe9814e6db6042a3dae34a02b01eefe27b7f032fc7e43eefd2a353ada2add589dbfa19e5b9df02d59709e70a627b320271a79c52db52f4ae7d4520ee79b4476f19514930a4eecc604afcae8acf72752ba29a8c5abaa22a1bf13ba2de6a2dc084e503e6c9429e9c43247ab6fcb02de07a7f7b710efa965783ceffea6f685b19df703a7e85b75f3b243fcdc813bdb98d203186bcc1370efb892899c7f32c716f64851875bebadd525536988b810ee5086d900b7ae315a50aa29ce4af14e95b41f8246870cbc071a3bf9cb69de0b76879b125f3f89bd4f91108cc3365f7fb5c4a2fe4a21fb8954e5a8762bc7c9ab4f1ee59ff83fd0ed1bf2fb233f3ce289aa43dd51ac99048048a2b0b042865e26dcce93ac2cd69931e25f1d9e642a99e88c87f75ae511f6799daa78c07d20300239314ecabfc9cfe88943b26410352eb99de7f6a07e52db4fb297a0d5854bbce6b7b8410d34c0df8d97b047b11f4ce091d6444eec225326a256124134186ea4d82ddeb8028a747d2768599e23cc8f21ea1b30962471a207651fa6862dcddd822bc824db9c15b3d4ff87853ca5d029d3162c3ea995507b2065a4a31c0c29950b554e733ccade40cc1fb68256112e8c82d0d2591cb665aa5f3f0ef99c6865cd1f727ef143428db6a5856c391cb2cff0d778e3376fe0a1760089fa11d6cf5931a5ffe2873484356436cef0f91c1e16bf21f60864bc8e4b5c268d762367861c6777204681790c23f7a9352af9d93ea5403ccbfe61d53f87f9a98efa3e1533a5a402b1a12098cde560cf9c1885a1c2fdacf60056d0ea8ae731f3be7e4c14a61e57ebe43d092c9f4be0c7f5a1d994930e2d75f12b7dd9aec2b8da332173522a0322cc3110358f7949e5b5b24ce56a9c67a8185b407f463624d017d4486d07d9bd45f81bb7e9a139c9552c86e80a4358c7784707ad9fe38cd4dc71e0a44efbe969e3fa00315c1dc629d38a4f08d19e80f50327e264b0ace02576d0ac701287e76e01d327025ba97b6adb86a27d0ce28d09f7ba60207af97d33b5bee9ea0bc48bcd9716b625506952fc5440e2fd783db7858a1c37c404b577f0338480aec900a4c69bed770612ac2683197bcf6dd917b8b634a169e9dcf3389e7383dc29361c9c3cbc692ede3c3d71eae58818c74e4bfa20ebdbf55419cd56db154fe8b9df2c454c71ee82db339dc033efde518e08f62790a87edf0bf9220289d2c7206b1d159b72e65a3a839d003c41fb4bf01e02f1d5beef7c01770c64487588d5352c3d6baead9f498a09596d98f73012f52fb83755b2ff29918c29b8d1572678e07cfc06edd75ac495e8b81cd78334b4f0c68b42e7692f1d2e81914fbf7e63dee69b3cdc56bcf5d12907b53f22ef4c6eabc3b6d124e0d163e4560f514dab950c776026479bd248ff1edb1caba72853ff0e06bfa4eadf3f503b187de81630a64b961b15c2ef47a54e00d7a63441d0c4516bf8989714878e652eef53ca8e8311c5932160cfd81714b5af31de7dbf7cee3dce70fe3fe4b88378115fee5a516ee6174ceb571fa67ca9f45494744fbc9f3046b1f1bb3e4928e621e90a93e611d07a34590a0f7fbfa9967af1790024609b649fe8393adf72c89bd0b253e0cf483e1c226bdc865ae62bec74675dc43cfbf6cc49eefe262cb46fdce535039f30ceb73dafa051be98cd75bda7ff4f1b516353c20d470b0880e00ec20e212164370888088b8a98edc998c9c2796945d5ee60e7e5ec2dcea708000df1e485b2cec327937f0e315b14c6e40909aab73c3f47e989108a269b0b0f38b682b6b0e064543320c57ea1c54f78b6ff47eb4a5c929b72db5014d4a481992448aba46a6bd8b0048a99aac347b91e581b3ad550c4d73b3f10ae1106e75b671c347a332c995db6d095593290cb5effd9853b24b57aba3aaf01ccbcba04028a06fc5e22fc2240fbd0a66db34a50f1b208815d56aba4bc6219798a0b6bce13f28bd50ef5deb64f1639815c45d513436b038c2ff60117d6a3c2e1c08b24b78ef71cc13c534c662996c2fe501ea46a47d41099b9c0b0b0b155141b66e2d1ee92bc79c5920f3d905da122fc77218a22c4553391ef94ba4a139e10e07ca16e6a763a183b84feb309d5e0d7caf643d0073dd360bd5ba2809acd22a79ff2afe7f889124adba9ad7a56d166ba70288651e946f477c681a6f78c8834c39c62c66c235af1563fb06163144643d12e0ac6074940982bc82bdedd3892a7571d6c953ad211e0047635e174f7933c59bd34e6471b8cb8f73c1aedf905ce38c87bddf1eedacc3b323990567eae716359f07743e245bc11301290c972e0adb88f1f7e3b99831a5ffaa1bee8c4f08bfd2947089ed95bd8ad8857b107917eeddc9c4e713e735fbb9a57d8aa4a3cedc8e331a9a1b7af81427f3bd66ac2acb9d2a3721bad0b1c4907dfe80329c5f1dc83b8d34695df63794c1a748f8879d745b33e0554af562c6e36caa3eb970ff51979cdc56efdcf99f40c795f361fb89768cddb5d07c6eb9297237c8b201124df2252c24debc6b4d42ef2c969356dd3f319d49aa7a2015d679fe29c8ae19c161658e10d072a944bace5d5058b3921c7fa768a3aba8877535aa05d587e59426ea40994eab9da467292a5ad17c13cbb20fdb7d9b7f99f1255b5fceaf281a0886d8fb8c21ed7c5e2856e0a99af50df2ded69e504701172e571922e63d50b96b2ec5a4d6aad2f3bf2940303066f77c8db2c55dddb4aa5512a1265151da6c769e01ef0c8d7d0b8568e9a23f31cead15fc43a93f47502d9d14995a05acf96bdba4f8942d9917a9b0989f913482a46e1c42ec4f942adc62516a2dc726c965b8d5e5cfdad5dc7e4bb840b18b9fe50b05f9e73dec315efab8191f2807e87e1b957a57ae6462062f11ea13761dd37dfa0e7def636f5a4393f5949556870cfbb690a8a49303e2c1b188469d4f639a15ebdaeffa585be16dcf7e91618eb11cb0d95ff9e05079dd511f12d3dd45a29c08992d77f2d8b7e7d7af3e5cd6943d7688cbfa25aab585cb3fd329e8b423f2b6924db51f6ebc0a2966c68e7faacddaaa77462d12054fb52748599122af3a392ca80d2777ffd0855e4d83f8465dc07f34a6d9573792529e3e935302013d82e056dac5def81cfa8982c34ff90783b4c406a7114d6bc3b6a9d1b36f4b312aabd103d1c1b0d11ffc78c4decb5612ddef743b380f1d8f4e599b79fc758a84bc72f4cff01b1f789f91f3474742f37bbafac0426e514eb2efa39bfc9f4255b1c38ddce01267156a33ef9d4b099d6c77f3aa77fc492d0467d723b6a7f409123b35e643589d8f76cbb47b6561823ebce7f44e82366dea19976189a1d8ab315e9cf8d627b2a4e37b38ed9dd4d7756d42d8d1be9449b182542e4460aa7dd9a54353f3f7301c5d6eba7a571e3707118cead54810644bbca55119592f94595d32f1663501bf2fc67dd2986537f670c40a51d24d03780575d99144bf902d032c1ce07975f050c11dd72547d7a518a0b9f1d190ca1bd5a582e9531e83fc50ddcd9b2db0bf8782fa75adcb9cc985c43244cd2b14abf8d32e2e54bb60a369c9d77196bcc39d214e671c33d4fc82261f97410b9d59715857cdd6f788bfa23af48a13f4cbb107bec4c5ad4eb791938a45eff24205e81c937562e3f73a9c127312ce0d81dbf4ea1e9b35e1f37f44ecd24eb38ab22c00f8ecd008c358437260f38768f1421202945be2909f626d59bd7df8c248cd14ed81dbce773ccc7626631538dc58075c9eefd45fe797aad1c47337a104bfa3c8b64140c0ec9f895873ab5e623cbd4703aed65b76a788485cc0cd97c31f1d77ab5add10313df3522a0006731eb0accf3d491ca798914f2ef61ed278ad6c35f9481f2afa55bd8efafb18e2d176d097dc7e3158da3d67f0694b7c8a9c19d00a8c2e15976105ca66f5efd8a9b96d4c7cc47227c8965f95497d6b74092685489db64623ecd23c22265882516484ea133f23c8e89a0fb9f5b4ca8ad7666365c7efb2422b4e607d9281a12d88798902dcc5c31d750d0f17c24b8675889250a4fe3df5728ba6dcf8e231f354c2f28f8d40da64c15b69d24cd5b4dbb9df5379878ea8f027ba80b3b3d721bec1391a911a28d736a9b31d0e24fefa6341c6b8ebf9c8ba4aaf6dd90879ecdedeeccdf701c3c0b4742f39ec89633e5a737bd65fb2ad135c7846176b8457ee1c2863ad14dd65781055b7f7ba9c30e4de39c29df168cabcda769e10d57706c55c23c0ef6439bae6cd78a1147040f07dcb191acb34a7ebe337e1783d7c727b4eb4b8b7bf3951ed23596c5f82c417b9248c58447e43ba5cef3f09cf8521228d72c7cc2d59d782632d47d70c1a1b2e385b5e89e2f80c0d17363873aac8f5f60e2339444c61a1617087999dc246e102292e41457491bac2c5d1e5fd0106213c697596ed141b2e718ca6a70000000000000000000000000a141b212330383f +flags = ValidSignature,BoundaryCondition +