diff options
| author | tb <> | 2023-11-07 16:27:56 +0000 |
|---|---|---|
| committer | tb <> | 2023-11-07 16:27:56 +0000 |
| commit | d81ce38e761116e2dfae6fac4628dca1fe2d3577 (patch) | |
| tree | eece479e6e86e72a06a3b76e1de266775db19d82 /src/regress/lib | |
| parent | cd953df35017b973cd4188ac48d1e0b04d576a7e (diff) | |
| download | openbsd-d81ce38e761116e2dfae6fac4628dca1fe2d3577.tar.gz openbsd-d81ce38e761116e2dfae6fac4628dca1fe2d3577.tar.bz2 openbsd-d81ce38e761116e2dfae6fac4628dca1fe2d3577.zip | |
Add stringer interfaces to the test groups
This simplifies and unifies a lot of error messages.
Diffstat (limited to 'src/regress/lib')
| -rw-r--r-- | src/regress/lib/libcrypto/wycheproof/wycheproof.go | 228 |
1 files changed, 126 insertions, 102 deletions
diff --git a/src/regress/lib/libcrypto/wycheproof/wycheproof.go b/src/regress/lib/libcrypto/wycheproof/wycheproof.go index 39f1456b67..fa5a55b93a 100644 --- a/src/regress/lib/libcrypto/wycheproof/wycheproof.go +++ b/src/regress/lib/libcrypto/wycheproof/wycheproof.go | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: wycheproof.go,v 1.151 2023/11/06 15:21:44 tb Exp $ */ | 1 | /* $OpenBSD: wycheproof.go,v 1.152 2023/11/07 16:27:56 tb Exp $ */ |
| 2 | /* | 2 | /* |
| 3 | * Copyright (c) 2018 Joel Sing <jsing@openbsd.org> | 3 | * Copyright (c) 2018 Joel Sing <jsing@openbsd.org> |
| 4 | * Copyright (c) 2018,2019,2022 Theo Buehler <tb@openbsd.org> | 4 | * Copyright (c) 2018,2019,2022 Theo Buehler <tb@openbsd.org> |
| @@ -119,6 +119,10 @@ func (variant testVariant) String() string { | |||
| 119 | return variants[variant] | 119 | return variants[variant] |
| 120 | } | 120 | } |
| 121 | 121 | ||
| 122 | func wycheproofFormatTestCase(tcid int, comment string, flags []string, result string) string { | ||
| 123 | return fmt.Sprintf("Test case %d (%q) %v %v", tcid, comment, flags, result) | ||
| 124 | } | ||
| 125 | |||
| 122 | var testc *testCoordinator | 126 | var testc *testCoordinator |
| 123 | 127 | ||
| 124 | type wycheproofJWKPublic struct { | 128 | type wycheproofJWKPublic struct { |
| @@ -156,6 +160,10 @@ type wycheproofTestAesCbcPkcs5 struct { | |||
| 156 | Flags []string `json:"flags"` | 160 | Flags []string `json:"flags"` |
| 157 | } | 161 | } |
| 158 | 162 | ||
| 163 | func (wt *wycheproofTestAesCbcPkcs5) String() string { | ||
| 164 | return wycheproofFormatTestCase(wt.TCID, wt.Comment, wt.Flags, wt.Result) | ||
| 165 | } | ||
| 166 | |||
| 159 | type wycheproofTestGroupAead struct { | 167 | type wycheproofTestGroupAead struct { |
| 160 | IVSize int `json:"ivSize"` | 168 | IVSize int `json:"ivSize"` |
| 161 | KeySize int `json:"keySize"` | 169 | KeySize int `json:"keySize"` |
| @@ -180,6 +188,10 @@ type wycheproofTestAead struct { | |||
| 180 | Flags []string `json:"flags"` | 188 | Flags []string `json:"flags"` |
| 181 | } | 189 | } |
| 182 | 190 | ||
| 191 | func (wt *wycheproofTestAead) String() string { | ||
| 192 | return wycheproofFormatTestCase(wt.TCID, wt.Comment, wt.Flags, wt.Result) | ||
| 193 | } | ||
| 194 | |||
| 183 | type wycheproofTestGroupAesCmac struct { | 195 | type wycheproofTestGroupAesCmac struct { |
| 184 | KeySize int `json:"keySize"` | 196 | KeySize int `json:"keySize"` |
| 185 | TagSize int `json:"tagSize"` | 197 | TagSize int `json:"tagSize"` |
| @@ -197,6 +209,10 @@ type wycheproofTestAesCmac struct { | |||
| 197 | Flags []string `json:"flags"` | 209 | Flags []string `json:"flags"` |
| 198 | } | 210 | } |
| 199 | 211 | ||
| 212 | func (wt *wycheproofTestAesCmac) String() string { | ||
| 213 | return wycheproofFormatTestCase(wt.TCID, wt.Comment, wt.Flags, wt.Result) | ||
| 214 | } | ||
| 215 | |||
| 200 | type wycheproofDSAKey struct { | 216 | type wycheproofDSAKey struct { |
| 201 | G string `json:"g"` | 217 | G string `json:"g"` |
| 202 | KeySize int `json:"keySize"` | 218 | KeySize int `json:"keySize"` |
| @@ -215,6 +231,10 @@ type wycheproofTestDSA struct { | |||
| 215 | Flags []string `json:"flags"` | 231 | Flags []string `json:"flags"` |
| 216 | } | 232 | } |
| 217 | 233 | ||
| 234 | func (wt *wycheproofTestDSA) String() string { | ||
| 235 | return wycheproofFormatTestCase(wt.TCID, wt.Comment, wt.Flags, wt.Result) | ||
| 236 | } | ||
| 237 | |||
| 218 | type wycheproofTestGroupDSA struct { | 238 | type wycheproofTestGroupDSA struct { |
| 219 | Key *wycheproofDSAKey `json:"key"` | 239 | Key *wycheproofDSAKey `json:"key"` |
| 220 | KeyDER string `json:"keyDer"` | 240 | KeyDER string `json:"keyDer"` |
| @@ -234,6 +254,10 @@ type wycheproofTestECDH struct { | |||
| 234 | Flags []string `json:"flags"` | 254 | Flags []string `json:"flags"` |
| 235 | } | 255 | } |
| 236 | 256 | ||
| 257 | func (wt *wycheproofTestECDH) String() string { | ||
| 258 | return wycheproofFormatTestCase(wt.TCID, wt.Comment, wt.Flags, wt.Result) | ||
| 259 | } | ||
| 260 | |||
| 237 | type wycheproofTestGroupECDH struct { | 261 | type wycheproofTestGroupECDH struct { |
| 238 | Curve string `json:"curve"` | 262 | Curve string `json:"curve"` |
| 239 | Encoding string `json:"encoding"` | 263 | Encoding string `json:"encoding"` |
| @@ -251,6 +275,10 @@ type wycheproofTestECDHWebCrypto struct { | |||
| 251 | Flags []string `json:"flags"` | 275 | Flags []string `json:"flags"` |
| 252 | } | 276 | } |
| 253 | 277 | ||
| 278 | func (wt *wycheproofTestECDHWebCrypto) String() string { | ||
| 279 | return wycheproofFormatTestCase(wt.TCID, wt.Comment, wt.Flags, wt.Result) | ||
| 280 | } | ||
| 281 | |||
| 254 | type wycheproofTestGroupECDHWebCrypto struct { | 282 | type wycheproofTestGroupECDHWebCrypto struct { |
| 255 | Curve string `json:"curve"` | 283 | Curve string `json:"curve"` |
| 256 | Encoding string `json:"encoding"` | 284 | Encoding string `json:"encoding"` |
| @@ -276,6 +304,10 @@ type wycheproofTestECDSA struct { | |||
| 276 | Flags []string `json:"flags"` | 304 | Flags []string `json:"flags"` |
| 277 | } | 305 | } |
| 278 | 306 | ||
| 307 | func (wt *wycheproofTestECDSA) String() string { | ||
| 308 | return wycheproofFormatTestCase(wt.TCID, wt.Comment, wt.Flags, wt.Result) | ||
| 309 | } | ||
| 310 | |||
| 279 | type wycheproofTestGroupECDSA struct { | 311 | type wycheproofTestGroupECDSA struct { |
| 280 | Key *wycheproofECDSAKey `json:"key"` | 312 | Key *wycheproofECDSAKey `json:"key"` |
| 281 | KeyDER string `json:"keyDer"` | 313 | KeyDER string `json:"keyDer"` |
| @@ -320,6 +352,10 @@ type wycheproofTestEdDSA struct { | |||
| 320 | Flags []string `json:"flags"` | 352 | Flags []string `json:"flags"` |
| 321 | } | 353 | } |
| 322 | 354 | ||
| 355 | func (wt *wycheproofTestEdDSA) String() string { | ||
| 356 | return wycheproofFormatTestCase(wt.TCID, wt.Comment, wt.Flags, wt.Result) | ||
| 357 | } | ||
| 358 | |||
| 323 | type wycheproofTestGroupEdDSA struct { | 359 | type wycheproofTestGroupEdDSA struct { |
| 324 | JWK *wycheproofJWKEdDSA `json:"jwk"` | 360 | JWK *wycheproofJWKEdDSA `json:"jwk"` |
| 325 | Key *wycheproofEdDSAKey `json:"key"` | 361 | Key *wycheproofEdDSAKey `json:"key"` |
| @@ -341,6 +377,10 @@ type wycheproofTestHkdf struct { | |||
| 341 | Flags []string `json:"flags"` | 377 | Flags []string `json:"flags"` |
| 342 | } | 378 | } |
| 343 | 379 | ||
| 380 | func (wt *wycheproofTestHkdf) String() string { | ||
| 381 | return wycheproofFormatTestCase(wt.TCID, wt.Comment, wt.Flags, wt.Result) | ||
| 382 | } | ||
| 383 | |||
| 344 | type wycheproofTestGroupHkdf struct { | 384 | type wycheproofTestGroupHkdf struct { |
| 345 | Type string `json:"type"` | 385 | Type string `json:"type"` |
| 346 | KeySize int `json:"keySize"` | 386 | KeySize int `json:"keySize"` |
| @@ -357,6 +397,10 @@ type wycheproofTestHmac struct { | |||
| 357 | Flags []string `json:"flags"` | 397 | Flags []string `json:"flags"` |
| 358 | } | 398 | } |
| 359 | 399 | ||
| 400 | func (wt *wycheproofTestHmac) String() string { | ||
| 401 | return wycheproofFormatTestCase(wt.TCID, wt.Comment, wt.Flags, wt.Result) | ||
| 402 | } | ||
| 403 | |||
| 360 | type wycheproofTestGroupHmac struct { | 404 | type wycheproofTestGroupHmac struct { |
| 361 | KeySize int `json:"keySize"` | 405 | KeySize int `json:"keySize"` |
| 362 | TagSize int `json:"tagSize"` | 406 | TagSize int `json:"tagSize"` |
| @@ -374,6 +418,10 @@ type wycheproofTestKW struct { | |||
| 374 | Flags []string `json:"flags"` | 418 | Flags []string `json:"flags"` |
| 375 | } | 419 | } |
| 376 | 420 | ||
| 421 | func (wt *wycheproofTestKW) String() string { | ||
| 422 | return wycheproofFormatTestCase(wt.TCID, wt.Comment, wt.Flags, wt.Result) | ||
| 423 | } | ||
| 424 | |||
| 377 | type wycheproofTestGroupKW struct { | 425 | type wycheproofTestGroupKW struct { |
| 378 | KeySize int `json:"keySize"` | 426 | KeySize int `json:"keySize"` |
| 379 | Type string `json:"type"` | 427 | Type string `json:"type"` |
| @@ -388,6 +436,10 @@ type wycheproofTestPrimality struct { | |||
| 388 | Flags []string `json:"flags"` | 436 | Flags []string `json:"flags"` |
| 389 | } | 437 | } |
| 390 | 438 | ||
| 439 | func (wt *wycheproofTestPrimality) String() string { | ||
| 440 | return wycheproofFormatTestCase(wt.TCID, wt.Comment, wt.Flags, wt.Result) | ||
| 441 | } | ||
| 442 | |||
| 391 | type wycheproofTestGroupPrimality struct { | 443 | type wycheproofTestGroupPrimality struct { |
| 392 | Type string `json:"type"` | 444 | Type string `json:"type"` |
| 393 | Tests []*wycheproofTestPrimality `json:"tests"` | 445 | Tests []*wycheproofTestPrimality `json:"tests"` |
| @@ -403,6 +455,10 @@ type wycheproofTestRSA struct { | |||
| 403 | Flags []string `json:"flags"` | 455 | Flags []string `json:"flags"` |
| 404 | } | 456 | } |
| 405 | 457 | ||
| 458 | func (wt *wycheproofTestRSA) String() string { | ||
| 459 | return wycheproofFormatTestCase(wt.TCID, wt.Comment, wt.Flags, wt.Result) | ||
| 460 | } | ||
| 461 | |||
| 406 | type wycheproofTestGroupRSA struct { | 462 | type wycheproofTestGroupRSA struct { |
| 407 | E string `json:"e"` | 463 | E string `json:"e"` |
| 408 | KeyASN string `json:"keyAsn"` | 464 | KeyASN string `json:"keyAsn"` |
| @@ -439,6 +495,10 @@ type wycheproofTestRsaes struct { | |||
| 439 | Flags []string `json:"flags"` | 495 | Flags []string `json:"flags"` |
| 440 | } | 496 | } |
| 441 | 497 | ||
| 498 | func (wt *wycheproofTestRsaes) String() string { | ||
| 499 | return wycheproofFormatTestCase(wt.TCID, wt.Comment, wt.Flags, wt.Result) | ||
| 500 | } | ||
| 501 | |||
| 442 | type wycheproofTestGroupRsaesOaep struct { | 502 | type wycheproofTestGroupRsaesOaep struct { |
| 443 | D string `json:"d"` | 503 | D string `json:"d"` |
| 444 | E string `json:"e"` | 504 | E string `json:"e"` |
| @@ -475,6 +535,10 @@ type wycheproofTestRsassa struct { | |||
| 475 | Flags []string `json:"flags"` | 535 | Flags []string `json:"flags"` |
| 476 | } | 536 | } |
| 477 | 537 | ||
| 538 | func (wt *wycheproofTestRsassa) String() string { | ||
| 539 | return wycheproofFormatTestCase(wt.TCID, wt.Comment, wt.Flags, wt.Result) | ||
| 540 | } | ||
| 541 | |||
| 478 | type wycheproofTestGroupRsassa struct { | 542 | type wycheproofTestGroupRsassa struct { |
| 479 | E string `json:"e"` | 543 | E string `json:"e"` |
| 480 | KeyASN string `json:"keyAsn"` | 544 | KeyASN string `json:"keyAsn"` |
| @@ -501,6 +565,10 @@ type wycheproofTestX25519 struct { | |||
| 501 | Flags []string `json:"flags"` | 565 | Flags []string `json:"flags"` |
| 502 | } | 566 | } |
| 503 | 567 | ||
| 568 | func (wt *wycheproofTestX25519) String() string { | ||
| 569 | return wycheproofFormatTestCase(wt.TCID, wt.Comment, wt.Flags, wt.Result) | ||
| 570 | } | ||
| 571 | |||
| 504 | type wycheproofTestGroupX25519 struct { | 572 | type wycheproofTestGroupX25519 struct { |
| 505 | Curve string `json:"curve"` | 573 | Curve string `json:"curve"` |
| 506 | Tests []*wycheproofTestX25519 `json:"tests"` | 574 | Tests []*wycheproofTestX25519 `json:"tests"` |
| @@ -645,12 +713,10 @@ func checkAesCbcPkcs5(ctx *C.EVP_CIPHER_CTX, doEncrypt int, key []byte, keyLen i | |||
| 645 | (*C.uchar)(unsafe.Pointer(&in[0])), C.int(inLen)) | 713 | (*C.uchar)(unsafe.Pointer(&in[0])), C.int(inLen)) |
| 646 | if ret != 1 { | 714 | if ret != 1 { |
| 647 | if wt.Result == "invalid" { | 715 | if wt.Result == "invalid" { |
| 648 | fmt.Printf("INFO: Test case %d (%q) [%v] %v - EVP_CipherUpdate() = %d, want %v\n", | 716 | fmt.Printf("INFO: %s [%v] - EVP_CipherUpdate() = %d\n", wt, action, ret) |
| 649 | wt.TCID, wt.Comment, action, wt.Flags, ret, wt.Result) | ||
| 650 | return true | 717 | return true |
| 651 | } | 718 | } |
| 652 | fmt.Printf("FAIL: Test case %d (%q) [%v] %v - EVP_CipherUpdate() = %d, want %v\n", | 719 | fmt.Printf("FAIL: %s [%v] - EVP_CipherUpdate() = %d\n", wt, action, ret) |
| 653 | wt.TCID, wt.Comment, action, wt.Flags, ret, wt.Result) | ||
| 654 | return false | 720 | return false |
| 655 | } | 721 | } |
| 656 | 722 | ||
| @@ -660,15 +726,13 @@ func checkAesCbcPkcs5(ctx *C.EVP_CIPHER_CTX, doEncrypt int, key []byte, keyLen i | |||
| 660 | if wt.Result == "invalid" { | 726 | if wt.Result == "invalid" { |
| 661 | return true | 727 | return true |
| 662 | } | 728 | } |
| 663 | fmt.Printf("FAIL: Test case %d (%q) [%v] %v - EVP_CipherFinal_ex() = %d, want %v\n", | 729 | fmt.Printf("FAIL: %s [%v] - EVP_CipherFinal_ex() = %d\n", wt, action, ret) |
| 664 | wt.TCID, wt.Comment, action, wt.Flags, ret, wt.Result) | ||
| 665 | return false | 730 | return false |
| 666 | } | 731 | } |
| 667 | 732 | ||
| 668 | cipherOutLen += finallen | 733 | cipherOutLen += finallen |
| 669 | if cipherOutLen != C.int(outLen) && wt.Result != "invalid" { | 734 | if cipherOutLen != C.int(outLen) && wt.Result != "invalid" { |
| 670 | fmt.Printf("FAIL: Test case %d (%q) [%v] %v - open length mismatch: got %d, want %d\n", | 735 | fmt.Printf("FAIL: %s [%v] - open length mismatch: got %d, want %d\n", wt, action, cipherOutLen, outLen) |
| 671 | wt.TCID, wt.Comment, action, wt.Flags, cipherOutLen, outLen) | ||
| 672 | return false | 736 | return false |
| 673 | } | 737 | } |
| 674 | 738 | ||
| @@ -681,8 +745,7 @@ func checkAesCbcPkcs5(ctx *C.EVP_CIPHER_CTX, doEncrypt int, key []byte, keyLen i | |||
| 681 | if bytes.Equal(openedMsg, out) == (wt.Result != "invalid") { | 745 | if bytes.Equal(openedMsg, out) == (wt.Result != "invalid") { |
| 682 | success = true | 746 | success = true |
| 683 | } else { | 747 | } else { |
| 684 | fmt.Printf("FAIL: Test case %d (%q) [%v] %v - msg match: %t; want %v\n", | 748 | fmt.Printf("FAIL: %s [%v] - msg match: %t\n", wt, action, bytes.Equal(openedMsg, out)) |
| 685 | wt.TCID, wt.Comment, action, wt.Flags, bytes.Equal(openedMsg, out), wt.Result) | ||
| 686 | } | 749 | } |
| 687 | return success | 750 | return success |
| 688 | } | 751 | } |
| @@ -804,8 +867,7 @@ func checkAesAead(algorithm string, ctx *C.EVP_CIPHER_CTX, doEncrypt int, | |||
| 804 | wt.Comment == "0 size IV is not valid" || wt.Comment == "Very long nonce" { | 867 | wt.Comment == "0 size IV is not valid" || wt.Comment == "Very long nonce" { |
| 805 | return true | 868 | return true |
| 806 | } | 869 | } |
| 807 | fmt.Printf("FAIL: Test case %d (%q) [%v] %v - setting IV len to %d failed. got %d, want %v\n", | 870 | fmt.Printf("FAIL: %s [%v] - setting IV len to %d failed: %d.\n", wt, action, ivLen, ret) |
| 808 | wt.TCID, wt.Comment, action, wt.Flags, ivLen, ret, wt.Result) | ||
| 809 | return false | 871 | return false |
| 810 | } | 872 | } |
| 811 | 873 | ||
| @@ -815,8 +877,7 @@ func checkAesAead(algorithm string, ctx *C.EVP_CIPHER_CTX, doEncrypt int, | |||
| 815 | if wt.Comment == "Invalid tag size" { | 877 | if wt.Comment == "Invalid tag size" { |
| 816 | return true | 878 | return true |
| 817 | } | 879 | } |
| 818 | fmt.Printf("FAIL: Test case %d (%q) [%v] %v - setting tag length to %d failed. got %d, want %v\n", | 880 | fmt.Printf("FAIL: %s [%v] - setting tag length to %d failed: %d.\n", wt, action, tagLen, ret) |
| 819 | wt.TCID, wt.Comment, action, wt.Flags, tagLen, ret, wt.Result) | ||
| 820 | return false | 881 | return false |
| 821 | } | 882 | } |
| 822 | } | 883 | } |
| @@ -824,8 +885,7 @@ func checkAesAead(algorithm string, ctx *C.EVP_CIPHER_CTX, doEncrypt int, | |||
| 824 | ret = C.EVP_CipherInit_ex(ctx, nil, nil, (*C.uchar)(unsafe.Pointer(&key[0])), | 885 | ret = C.EVP_CipherInit_ex(ctx, nil, nil, (*C.uchar)(unsafe.Pointer(&key[0])), |
| 825 | (*C.uchar)(unsafe.Pointer(&iv[0])), C.int(doEncrypt)) | 886 | (*C.uchar)(unsafe.Pointer(&iv[0])), C.int(doEncrypt)) |
| 826 | if ret != 1 { | 887 | if ret != 1 { |
| 827 | fmt.Printf("FAIL: Test case %d (%q) [%v] %v - setting key and IV failed. got %d, want %v\n", | 888 | fmt.Printf("FAIL: %s [%v] - setting key and IV failed: %d.\n", wt, action, ret) |
| 828 | wt.TCID, wt.Comment, action, wt.Flags, ret, wt.Result) | ||
| 829 | return false | 889 | return false |
| 830 | } | 890 | } |
| 831 | 891 | ||
| @@ -833,16 +893,14 @@ func checkAesAead(algorithm string, ctx *C.EVP_CIPHER_CTX, doEncrypt int, | |||
| 833 | if doCCM { | 893 | if doCCM { |
| 834 | ret = C.EVP_CipherUpdate(ctx, nil, &cipherOutLen, nil, C.int(inLen)) | 894 | ret = C.EVP_CipherUpdate(ctx, nil, &cipherOutLen, nil, C.int(inLen)) |
| 835 | if ret != 1 { | 895 | if ret != 1 { |
| 836 | fmt.Printf("FAIL: Test case %d (%q) [%v] %v - setting input length to %d failed. got %d, want %v\n", | 896 | fmt.Printf("FAIL: %s [%v] - setting input length to %d failed: %d.\n", wt, action, inLen, ret) |
| 837 | wt.TCID, wt.Comment, action, wt.Flags, inLen, ret, wt.Result) | ||
| 838 | return false | 897 | return false |
| 839 | } | 898 | } |
| 840 | } | 899 | } |
| 841 | 900 | ||
| 842 | ret = C.EVP_CipherUpdate(ctx, nil, &cipherOutLen, (*C.uchar)(unsafe.Pointer(&aad[0])), C.int(aadLen)) | 901 | ret = C.EVP_CipherUpdate(ctx, nil, &cipherOutLen, (*C.uchar)(unsafe.Pointer(&aad[0])), C.int(aadLen)) |
| 843 | if ret != 1 { | 902 | if ret != 1 { |
| 844 | fmt.Printf("FAIL: Test case %d (%q) [%v] %v - processing AAD failed. got %d, want %v\n", | 903 | fmt.Printf("FAIL: %s [%v] - processing AAD failed: %d.\n", wt, action, ret) |
| 845 | wt.TCID, wt.Comment, action, wt.Flags, ret, wt.Result) | ||
| 846 | return false | 904 | return false |
| 847 | } | 905 | } |
| 848 | 906 | ||
| @@ -858,8 +916,7 @@ func checkAesAead(algorithm string, ctx *C.EVP_CIPHER_CTX, doEncrypt int, | |||
| 858 | if wt.Result == "invalid" { | 916 | if wt.Result == "invalid" { |
| 859 | return true | 917 | return true |
| 860 | } | 918 | } |
| 861 | fmt.Printf("FAIL: Test case %d (%q) [%v] %v - EVP_CipherUpdate() = %d, want %v\n", | 919 | fmt.Printf("FAIL: %s [%v] - EVP_CipherUpdate() = %d.\n", wt, action, ret) |
| 862 | wt.TCID, wt.Comment, action, wt.Flags, ret, wt.Result) | ||
| 863 | return false | 920 | return false |
| 864 | } | 921 | } |
| 865 | 922 | ||
| @@ -869,31 +926,27 @@ func checkAesAead(algorithm string, ctx *C.EVP_CIPHER_CTX, doEncrypt int, | |||
| 869 | 926 | ||
| 870 | ret = C.EVP_CipherFinal_ex(ctx, (*C.uchar)(unsafe.Pointer(&dummyOut[0])), &tmpLen) | 927 | ret = C.EVP_CipherFinal_ex(ctx, (*C.uchar)(unsafe.Pointer(&dummyOut[0])), &tmpLen) |
| 871 | if ret != 1 { | 928 | if ret != 1 { |
| 872 | fmt.Printf("FAIL: Test case %d (%q) [%v] %v - EVP_CipherFinal_ex() = %d, want %v\n", | 929 | fmt.Printf("FAIL: %s [%v] - EVP_CipherFinal_ex() = %d.\n", wt, action, ret) |
| 873 | wt.TCID, wt.Comment, action, wt.Flags, ret, wt.Result) | ||
| 874 | return false | 930 | return false |
| 875 | } | 931 | } |
| 876 | cipherOutLen += tmpLen | 932 | cipherOutLen += tmpLen |
| 877 | } | 933 | } |
| 878 | 934 | ||
| 879 | if cipherOutLen != C.int(outLen) { | 935 | if cipherOutLen != C.int(outLen) { |
| 880 | fmt.Printf("FAIL: Test case %d (%q) [%v] %v - cipherOutLen %d != outLen %d. Result %v\n", | 936 | fmt.Printf("FAIL: %s [%v] - cipherOutLen %d != outLen %d.\n", wt, action, cipherOutLen, outLen) |
| 881 | wt.TCID, wt.Comment, action, wt.Flags, cipherOutLen, outLen, wt.Result) | ||
| 882 | return false | 937 | return false |
| 883 | } | 938 | } |
| 884 | 939 | ||
| 885 | success := true | 940 | success := true |
| 886 | if !bytes.Equal(cipherOut, out) { | 941 | if !bytes.Equal(cipherOut, out) { |
| 887 | fmt.Printf("FAIL: Test case %d (%q) [%v] %v - expected and computed output do not match. Result: %v\n", | 942 | fmt.Printf("FAIL: %s [%v] - expected and computed output do not match.\n", wt, action) |
| 888 | wt.TCID, wt.Comment, action, wt.Flags, wt.Result) | ||
| 889 | success = false | 943 | success = false |
| 890 | } | 944 | } |
| 891 | if doEncrypt == 1 { | 945 | if doEncrypt == 1 { |
| 892 | tagOut := make([]byte, tagLen) | 946 | tagOut := make([]byte, tagLen) |
| 893 | ret = C.EVP_CIPHER_CTX_ctrl(ctx, ctrlGetTag, C.int(tagLen), unsafe.Pointer(&tagOut[0])) | 947 | ret = C.EVP_CIPHER_CTX_ctrl(ctx, ctrlGetTag, C.int(tagLen), unsafe.Pointer(&tagOut[0])) |
| 894 | if ret != 1 { | 948 | if ret != 1 { |
| 895 | fmt.Printf("FAIL: Test case %d (%q) [%v] %v - EVP_CIPHER_CTX_ctrl() = %d, want %v\n", | 949 | fmt.Printf("FAIL: %s [%v] - EVP_CIPHER_CTX_ctrl() = %d.\n", wt, action, ret) |
| 896 | wt.TCID, wt.Comment, action, wt.Flags, ret, wt.Result) | ||
| 897 | return false | 950 | return false |
| 898 | } | 951 | } |
| 899 | 952 | ||
| @@ -904,8 +957,7 @@ func checkAesAead(algorithm string, ctx *C.EVP_CIPHER_CTX, doEncrypt int, | |||
| 904 | // support to the length of 96 bits, to promote | 957 | // support to the length of 96 bits, to promote |
| 905 | // interoperability, efficiency and simplicity of design." | 958 | // interoperability, efficiency and simplicity of design." |
| 906 | if bytes.Equal(tagOut, tag) != (wt.Result == "valid" || wt.Result == "acceptable") { | 959 | if bytes.Equal(tagOut, tag) != (wt.Result == "valid" || wt.Result == "acceptable") { |
| 907 | fmt.Printf("FAIL: Test case %d (%q) [%v] %v - expected and computed tag do not match - ret: %d, Result: %v\n", | 960 | fmt.Printf("FAIL: %s [%v] - expected and computed tag do not match: %d.\n", wt, action, ret) |
| 908 | wt.TCID, wt.Comment, action, wt.Flags, ret, wt.Result) | ||
| 909 | success = false | 961 | success = false |
| 910 | } | 962 | } |
| 911 | } | 963 | } |
| @@ -1087,8 +1139,7 @@ func runAesCmacTest(cipher *C.EVP_CIPHER, wt *wycheproofTestAesCmac) bool { | |||
| 1087 | 1139 | ||
| 1088 | ret := C.EVP_DigestSignInit(mdctx, nil, nil, nil, pkey) | 1140 | ret := C.EVP_DigestSignInit(mdctx, nil, nil, nil, pkey) |
| 1089 | if ret != 1 { | 1141 | if ret != 1 { |
| 1090 | fmt.Printf("FAIL: Test case %d (%q) %v - EVP_DigestSignInit() = %d, want %v\n", | 1142 | fmt.Printf("FAIL: %s - EVP_DigestSignInit() = %d.\n", wt, ret) |
| 1091 | wt.TCID, wt.Comment, wt.Flags, ret, wt.Result) | ||
| 1092 | return false | 1143 | return false |
| 1093 | } | 1144 | } |
| 1094 | 1145 | ||
| @@ -1097,8 +1148,7 @@ func runAesCmacTest(cipher *C.EVP_CIPHER, wt *wycheproofTestAesCmac) bool { | |||
| 1097 | 1148 | ||
| 1098 | ret = C.EVP_DigestSign(mdctx, (*C.uchar)(unsafe.Pointer(&outTag[0])), &outLen, (*C.uchar)(unsafe.Pointer(&msg[0])), C.size_t(msgLen)) | 1149 | ret = C.EVP_DigestSign(mdctx, (*C.uchar)(unsafe.Pointer(&outTag[0])), &outLen, (*C.uchar)(unsafe.Pointer(&msg[0])), C.size_t(msgLen)) |
| 1099 | if ret != 1 { | 1150 | if ret != 1 { |
| 1100 | fmt.Printf("FAIL: Test case %d (%q) %v - EVP_DigestSign() = %d, want %v\n", | 1151 | fmt.Printf("FAIL: %s - EVP_DigestSign() = %d.\n", wt, ret) |
| 1101 | wt.TCID, wt.Comment, wt.Flags, ret, wt.Result) | ||
| 1102 | return false | 1152 | return false |
| 1103 | } | 1153 | } |
| 1104 | 1154 | ||
| @@ -1106,8 +1156,7 @@ func runAesCmacTest(cipher *C.EVP_CIPHER, wt *wycheproofTestAesCmac) bool { | |||
| 1106 | 1156 | ||
| 1107 | success := true | 1157 | success := true |
| 1108 | if bytes.Equal(tag, outTag) != (wt.Result == "valid") { | 1158 | if bytes.Equal(tag, outTag) != (wt.Result == "valid") { |
| 1109 | fmt.Printf("FAIL: Test case %d (%q) %v - want %v\n", | 1159 | fmt.Printf("FAIL: %s.\n", wt) |
| 1110 | wt.TCID, wt.Comment, wt.Flags, wt.Result) | ||
| 1111 | success = false | 1160 | success = false |
| 1112 | } | 1161 | } |
| 1113 | return success | 1162 | return success |
| @@ -1164,14 +1213,12 @@ func checkAeadOpen(ctx *C.EVP_AEAD_CTX, iv []byte, ivLen int, aad []byte, aadLen | |||
| 1164 | if wt.Result == "invalid" { | 1213 | if wt.Result == "invalid" { |
| 1165 | return true | 1214 | return true |
| 1166 | } | 1215 | } |
| 1167 | fmt.Printf("FAIL: Test case %d (%q) %v - EVP_AEAD_CTX_open() = %d, want %v\n", | 1216 | fmt.Printf("FAIL: %s - EVP_AEAD_CTX_open() = %d.\n", wt, int(openRet)) |
| 1168 | wt.TCID, wt.Comment, wt.Flags, int(openRet), wt.Result) | ||
| 1169 | return false | 1217 | return false |
| 1170 | } | 1218 | } |
| 1171 | 1219 | ||
| 1172 | if openedMsgLen != C.size_t(msgLen) { | 1220 | if openedMsgLen != C.size_t(msgLen) { |
| 1173 | fmt.Printf("FAIL: Test case %d (%q) %v - open length mismatch: got %d, want %d\n", | 1221 | fmt.Printf("FAIL: %s - open length mismatch: got %d, want %d.\n", wt, openedMsgLen, msgLen) |
| 1174 | wt.TCID, wt.Comment, wt.Flags, openedMsgLen, msgLen) | ||
| 1175 | return false | 1222 | return false |
| 1176 | } | 1223 | } |
| 1177 | 1224 | ||
| @@ -1184,8 +1231,7 @@ func checkAeadOpen(ctx *C.EVP_AEAD_CTX, iv []byte, ivLen int, aad []byte, aadLen | |||
| 1184 | if bytes.Equal(openedMsg, msg) == (wt.Result != "invalid") { | 1231 | if bytes.Equal(openedMsg, msg) == (wt.Result != "invalid") { |
| 1185 | success = true | 1232 | success = true |
| 1186 | } else { | 1233 | } else { |
| 1187 | fmt.Printf("FAIL: Test case %d (%q) %v - msg match: %t; want %v\n", | 1234 | fmt.Printf("FAIL: %s - msg match: %t.\n", wt, bytes.Equal(openedMsg, msg)) |
| 1188 | wt.TCID, wt.Comment, wt.Flags, bytes.Equal(openedMsg, msg), wt.Result) | ||
| 1189 | } | 1235 | } |
| 1190 | return success | 1236 | return success |
| 1191 | } | 1237 | } |
| @@ -1209,14 +1255,13 @@ func checkAeadSeal(ctx *C.EVP_AEAD_CTX, iv []byte, ivLen int, aad []byte, aadLen | |||
| 1209 | if sealRet != 1 { | 1255 | if sealRet != 1 { |
| 1210 | success := (wt.Result == "invalid") | 1256 | success := (wt.Result == "invalid") |
| 1211 | if !success { | 1257 | if !success { |
| 1212 | fmt.Printf("FAIL: Test case %d (%q) %v - EVP_AEAD_CTX_seal() = %d, want %v\n", wt.TCID, wt.Comment, wt.Flags, int(sealRet), wt.Result) | 1258 | fmt.Printf("FAIL: %s - EVP_AEAD_CTX_seal() = %d.\n", wt, int(sealRet)) |
| 1213 | } | 1259 | } |
| 1214 | return success | 1260 | return success |
| 1215 | } | 1261 | } |
| 1216 | 1262 | ||
| 1217 | if sealedLen != C.size_t(maxOutLen) { | 1263 | if sealedLen != C.size_t(maxOutLen) { |
| 1218 | fmt.Printf("FAIL: Test case %d (%q) %v - seal length mismatch: got %d, want %d\n", | 1264 | fmt.Printf("FAIL: %s - seal length mismatch: got %d, want %d.\n", wt, sealedLen, maxOutLen) |
| 1219 | wt.TCID, wt.Comment, wt.Flags, sealedLen, maxOutLen) | ||
| 1220 | return false | 1265 | return false |
| 1221 | } | 1266 | } |
| 1222 | 1267 | ||
| @@ -1227,9 +1272,7 @@ func checkAeadSeal(ctx *C.EVP_AEAD_CTX, iv []byte, ivLen int, aad []byte, aadLen | |||
| 1227 | if (bytes.Equal(sealedCt, ct) && bytes.Equal(sealedTag, tag)) == (wt.Result != "invalid") { | 1272 | if (bytes.Equal(sealedCt, ct) && bytes.Equal(sealedTag, tag)) == (wt.Result != "invalid") { |
| 1228 | success = true | 1273 | success = true |
| 1229 | } else { | 1274 | } else { |
| 1230 | fmt.Printf("FAIL: Test case %d (%q) %v - EVP_AEAD_CTX_seal() = %d, ct match: %t, tag match: %t; want %v\n", | 1275 | fmt.Printf("FAIL: %s - EVP_AEAD_CTX_seal() = %d, ct match: %t, tag match: %t.\n", wt, int(sealRet), bytes.Equal(sealedCt, ct), bytes.Equal(sealedTag, tag)) |
| 1231 | wt.TCID, wt.Comment, wt.Flags, int(sealRet), | ||
| 1232 | bytes.Equal(sealedCt, ct), bytes.Equal(sealedTag, tag), wt.Result) | ||
| 1233 | } | 1276 | } |
| 1234 | return success | 1277 | return success |
| 1235 | } | 1278 | } |
| @@ -1398,8 +1441,7 @@ func runDSATest(dsa *C.DSA, md *C.EVP_MD, variant testVariant, wt *wycheproofTes | |||
| 1398 | 1441 | ||
| 1399 | success := true | 1442 | success := true |
| 1400 | if ret == 1 != (wt.Result == "valid") { | 1443 | if ret == 1 != (wt.Result == "valid") { |
| 1401 | fmt.Printf("FAIL: Test case %d (%q) %v - DSA_verify() = %d, want %v\n", | 1444 | fmt.Printf("FAIL: %s - DSA_verify() = %d.\n", wt, wt.Result) |
| 1402 | wt.TCID, wt.Comment, wt.Flags, ret, wt.Result) | ||
| 1403 | success = false | 1445 | success = false |
| 1404 | } | 1446 | } |
| 1405 | return success | 1447 | return success |
| @@ -1525,8 +1567,7 @@ func runECDHTest(nid int, variant testVariant, wt *wycheproofTestECDH) bool { | |||
| 1525 | 1567 | ||
| 1526 | ret := C.EC_KEY_set_private_key(privKey, bnPriv) | 1568 | ret := C.EC_KEY_set_private_key(privKey, bnPriv) |
| 1527 | if ret != 1 { | 1569 | if ret != 1 { |
| 1528 | fmt.Printf("FAIL: Test case %d (%q) %v - EC_KEY_set_private_key() = %d, want %v\n", | 1570 | fmt.Printf("FAIL: %s - EC_KEY_set_private_key() = %d.\n", wt, ret) |
| 1529 | wt.TCID, wt.Comment, wt.Flags, ret, wt.Result) | ||
| 1530 | return false | 1571 | return false |
| 1531 | } | 1572 | } |
| 1532 | 1573 | ||
| @@ -1564,8 +1605,7 @@ func runECDHTest(nid int, variant testVariant, wt *wycheproofTestECDH) bool { | |||
| 1564 | if wt.Result == "invalid" || wt.Result == "acceptable" { | 1605 | if wt.Result == "invalid" || wt.Result == "acceptable" { |
| 1565 | return true | 1606 | return true |
| 1566 | } | 1607 | } |
| 1567 | fmt.Printf("FAIL: Test case %d (%q) %v - ASN decoding failed: want %v\n", | 1608 | fmt.Printf("FAIL: %s - ASN decoding failed.\n", wt) |
| 1568 | wt.TCID, wt.Comment, wt.Flags, wt.Result) | ||
| 1569 | return false | 1609 | return false |
| 1570 | } | 1610 | } |
| 1571 | 1611 | ||
| @@ -1585,8 +1625,7 @@ func runECDHTest(nid int, variant testVariant, wt *wycheproofTestECDH) bool { | |||
| 1585 | if wt.Result == "invalid" { | 1625 | if wt.Result == "invalid" { |
| 1586 | return true | 1626 | return true |
| 1587 | } | 1627 | } |
| 1588 | fmt.Printf("FAIL: Test case %d (%q) %v - ECDH_compute_key() = %d, want %d, result: %v\n", | 1628 | fmt.Printf("FAIL: %s - ECDH_compute_key() = %d, want %d.\n", wt, ret, int(secLen)) |
| 1589 | wt.TCID, wt.Comment, wt.Flags, ret, int(secLen), wt.Result) | ||
| 1590 | return false | 1629 | return false |
| 1591 | } | 1630 | } |
| 1592 | 1631 | ||
| @@ -1597,7 +1636,7 @@ func runECDHTest(nid int, variant testVariant, wt *wycheproofTestECDH) bool { | |||
| 1597 | 1636 | ||
| 1598 | // XXX The shared fields of the secp224k1 test cases have a 0 byte preprended. | 1637 | // XXX The shared fields of the secp224k1 test cases have a 0 byte preprended. |
| 1599 | if len(shared) == int(secLen)+1 && shared[0] == 0 { | 1638 | if len(shared) == int(secLen)+1 && shared[0] == 0 { |
| 1600 | fmt.Printf("INFO: Test case %d (%q) %v - prepending 0 byte\n", wt.TCID, wt.Comment, wt.Flags) | 1639 | fmt.Printf("INFO: %s - prepending 0 byte.\n", wt) |
| 1601 | // shared = shared[1:]; | 1640 | // shared = shared[1:]; |
| 1602 | zero := make([]byte, 1, secLen+1) | 1641 | zero := make([]byte, 1, secLen+1) |
| 1603 | secret = append(zero, secret...) | 1642 | secret = append(zero, secret...) |
| @@ -1605,8 +1644,7 @@ func runECDHTest(nid int, variant testVariant, wt *wycheproofTestECDH) bool { | |||
| 1605 | 1644 | ||
| 1606 | success := true | 1645 | success := true |
| 1607 | if !bytes.Equal(shared, secret) { | 1646 | if !bytes.Equal(shared, secret) { |
| 1608 | fmt.Printf("FAIL: Test case %d (%q) %v - expected and computed shared secret do not match, want %v\n", | 1647 | fmt.Printf("FAIL: %s - expected and computed shared secret do not match.\n", wt) |
| 1609 | wt.TCID, wt.Comment, wt.Flags, wt.Result) | ||
| 1610 | success = false | 1648 | success = false |
| 1611 | } | 1649 | } |
| 1612 | return success | 1650 | return success |
| @@ -1649,8 +1687,7 @@ func runECDHWebCryptoTest(nid int, wt *wycheproofTestECDHWebCrypto) bool { | |||
| 1649 | 1687 | ||
| 1650 | ret := C.EC_KEY_set_private_key(privKey, bnD) | 1688 | ret := C.EC_KEY_set_private_key(privKey, bnD) |
| 1651 | if ret != 1 { | 1689 | if ret != 1 { |
| 1652 | fmt.Printf("FAIL: Test case %d (%q) %v - EC_KEY_set_private_key() = %d, want %v\n", | 1690 | fmt.Printf("FAIL: %s - EC_KEY_set_private_key() = %d.\n", wt, ret) |
| 1653 | wt.TCID, wt.Comment, wt.Flags, ret, wt.Result) | ||
| 1654 | return false | 1691 | return false |
| 1655 | } | 1692 | } |
| 1656 | 1693 | ||
| @@ -1685,8 +1722,7 @@ func runECDHWebCryptoTest(nid int, wt *wycheproofTestECDHWebCrypto) bool { | |||
| 1685 | if wt.Result == "invalid" { | 1722 | if wt.Result == "invalid" { |
| 1686 | return true | 1723 | return true |
| 1687 | } | 1724 | } |
| 1688 | fmt.Printf("FAIL: Test case %d (%q) %v - EC_KEY_set_public_key_affine_coordinates() = %d, want %v\n", | 1725 | fmt.Printf("FAIL: %s - EC_KEY_set_public_key_affine_coordinates() = %d.\n", wt, ret) |
| 1689 | wt.TCID, wt.Comment, wt.Flags, ret, wt.Result) | ||
| 1690 | return false | 1726 | return false |
| 1691 | } | 1727 | } |
| 1692 | pubPoint := C.EC_KEY_get0_public_key(pubKey) | 1728 | pubPoint := C.EC_KEY_get0_public_key(pubKey) |
| @@ -1705,8 +1741,7 @@ func runECDHWebCryptoTest(nid int, wt *wycheproofTestECDHWebCrypto) bool { | |||
| 1705 | if wt.Result == "invalid" { | 1741 | if wt.Result == "invalid" { |
| 1706 | return true | 1742 | return true |
| 1707 | } | 1743 | } |
| 1708 | fmt.Printf("FAIL: Test case %d (%q) %v - ECDH_compute_key() = %d, want %d, result: %v\n", | 1744 | fmt.Printf("FAIL: %s - ECDH_compute_key() = %d, want %d.\n", wt, ret, int(secLen)) |
| 1709 | wt.TCID, wt.Comment, wt.Flags, ret, int(secLen), wt.Result) | ||
| 1710 | return false | 1745 | return false |
| 1711 | } | 1746 | } |
| 1712 | 1747 | ||
| @@ -1717,8 +1752,7 @@ func runECDHWebCryptoTest(nid int, wt *wycheproofTestECDHWebCrypto) bool { | |||
| 1717 | 1752 | ||
| 1718 | success := true | 1753 | success := true |
| 1719 | if !bytes.Equal(shared, secret) { | 1754 | if !bytes.Equal(shared, secret) { |
| 1720 | fmt.Printf("FAIL: Test case %d (%q) %v - expected and computed shared secret do not match, want %v\n", | 1755 | fmt.Printf("FAIL: %s - expected and computed shared secret do not match.\n", wt) |
| 1721 | wt.TCID, wt.Comment, wt.Flags, wt.Result) | ||
| 1722 | success = false | 1756 | success = false |
| 1723 | } | 1757 | } |
| 1724 | return success | 1758 | return success |
| @@ -1781,8 +1815,7 @@ func runECDSATest(ecKey *C.EC_KEY, md *C.EVP_MD, nid int, variant testVariant, w | |||
| 1781 | // XXX audit acceptable cases... | 1815 | // XXX audit acceptable cases... |
| 1782 | success := true | 1816 | success := true |
| 1783 | if ret == 1 != (wt.Result == "valid") && wt.Result != "acceptable" { | 1817 | if ret == 1 != (wt.Result == "valid") && wt.Result != "acceptable" { |
| 1784 | fmt.Printf("FAIL: Test case %d (%q) %v - ECDSA_verify() = %d, want %v\n", | 1818 | fmt.Printf("FAIL: %s - ECDSA_verify() = %d.\n", wt, int(ret)) |
| 1785 | wt.TCID, wt.Comment, wt.Flags, int(ret), wt.Result) | ||
| 1786 | success = false | 1819 | success = false |
| 1787 | } | 1820 | } |
| 1788 | return success | 1821 | return success |
| @@ -1977,8 +2010,7 @@ func runEdDSATest(pkey *C.EVP_PKEY, wt *wycheproofTestEdDSA) bool { | |||
| 1977 | 2010 | ||
| 1978 | success := true | 2011 | success := true |
| 1979 | if (ret == 1) != (wt.Result == "valid") { | 2012 | if (ret == 1) != (wt.Result == "valid") { |
| 1980 | fmt.Printf("FAIL: Test case %d (%q) %v - EVP_DigestVerify() = %d, want %v\n", | 2013 | fmt.Printf("FAIL: %s - EVP_DigestVerify() = %d.\n", wt, int(ret)) |
| 1981 | wt.TCID, wt.Comment, wt.Flags, int(ret), wt.Result) | ||
| 1982 | success = false | 2014 | success = false |
| 1983 | } | 2015 | } |
| 1984 | return success | 2016 | return success |
| @@ -2078,7 +2110,7 @@ func runHkdfTest(md *C.EVP_MD, wt *wycheproofTestHkdf) bool { | |||
| 2078 | if ret <= 0 { | 2110 | if ret <= 0 { |
| 2079 | success := wt.Result == "invalid" | 2111 | success := wt.Result == "invalid" |
| 2080 | if !success { | 2112 | if !success { |
| 2081 | fmt.Printf("FAIL: Test case %d (%q) %v - got %d, want %v\n", wt.TCID, wt.Comment, wt.Flags, ret, wt.Result) | 2113 | fmt.Printf("FAIL: %s - got %d.\n", wt, ret) |
| 2082 | } | 2114 | } |
| 2083 | return success | 2115 | return success |
| 2084 | } | 2116 | } |
| @@ -2088,7 +2120,7 @@ func runHkdfTest(md *C.EVP_MD, wt *wycheproofTestHkdf) bool { | |||
| 2088 | log.Fatalf("Failed to decode okm %q: %v", wt.Okm, err) | 2120 | log.Fatalf("Failed to decode okm %q: %v", wt.Okm, err) |
| 2089 | } | 2121 | } |
| 2090 | if !bytes.Equal(out[:outLen], okm) { | 2122 | if !bytes.Equal(out[:outLen], okm) { |
| 2091 | fmt.Printf("FAIL: Test case %d (%q) %v - expected and computed output don't match: %v\n", wt.TCID, wt.Comment, wt.Flags, wt.Result) | 2123 | fmt.Printf("FAIL: %s - expected and computed output don't match.\n", wt) |
| 2092 | } | 2124 | } |
| 2093 | 2125 | ||
| 2094 | return wt.Result == "valid" | 2126 | return wt.Result == "valid" |
| @@ -2140,13 +2172,13 @@ func runHmacTest(md *C.EVP_MD, tagBytes int, wt *wycheproofTestHmac) bool { | |||
| 2140 | if ret == nil { | 2172 | if ret == nil { |
| 2141 | if wt.Result != "invalid" { | 2173 | if wt.Result != "invalid" { |
| 2142 | success = false | 2174 | success = false |
| 2143 | fmt.Printf("FAIL: Test case %d (%q) %v - HMAC: got nil, want %v\n", wt.TCID, wt.Comment, wt.Flags, wt.Result) | 2175 | fmt.Printf("FAIL: Test case %s - HMAC: got nil.\n", wt) |
| 2144 | } | 2176 | } |
| 2145 | return success | 2177 | return success |
| 2146 | } | 2178 | } |
| 2147 | 2179 | ||
| 2148 | if int(gotLen) < tagBytes { | 2180 | if int(gotLen) < tagBytes { |
| 2149 | fmt.Printf("FAIL: Test case %d (%q) %v - HMAC length: got %d, want %d, expected %v\n", wt.TCID, wt.Comment, wt.Flags, gotLen, tagBytes, wt.Result) | 2181 | fmt.Printf("FAIL: %s - HMAC length: got %d, want %d.\n", wt, gotLen, tagBytes) |
| 2150 | return false | 2182 | return false |
| 2151 | } | 2183 | } |
| 2152 | 2184 | ||
| @@ -2158,7 +2190,7 @@ func runHmacTest(md *C.EVP_MD, tagBytes int, wt *wycheproofTestHmac) bool { | |||
| 2158 | success = bytes.Equal(got[:tagBytes], tag) == (wt.Result == "valid") | 2190 | success = bytes.Equal(got[:tagBytes], tag) == (wt.Result == "valid") |
| 2159 | 2191 | ||
| 2160 | if !success { | 2192 | if !success { |
| 2161 | fmt.Printf("FAIL: Test case %d (%q) %v - got %v want %v\n", wt.TCID, wt.Comment, wt.Flags, success, wt.Result) | 2193 | fmt.Printf("FAIL: %s - got %t.\n", wt, success) |
| 2162 | } | 2194 | } |
| 2163 | 2195 | ||
| 2164 | return success | 2196 | return success |
| @@ -2189,8 +2221,7 @@ func runKWTestWrap(keySize int, key []byte, keyLen int, msg []byte, msgLen int, | |||
| 2189 | 2221 | ||
| 2190 | ret := C.AES_set_encrypt_key((*C.uchar)(unsafe.Pointer(&key[0])), (C.int)(keySize), (*C.AES_KEY)(unsafe.Pointer(&aesKey))) | 2222 | ret := C.AES_set_encrypt_key((*C.uchar)(unsafe.Pointer(&key[0])), (C.int)(keySize), (*C.AES_KEY)(unsafe.Pointer(&aesKey))) |
| 2191 | if ret != 0 { | 2223 | if ret != 0 { |
| 2192 | fmt.Printf("FAIL: Test case %d (%q) %v - AES_set_encrypt_key() = %d, want %v\n", | 2224 | fmt.Printf("FAIL: %s - AES_set_encrypt_key() = %d.\n", wt, int(ret)) |
| 2193 | wt.TCID, wt.Comment, wt.Flags, int(ret), wt.Result) | ||
| 2194 | return false | 2225 | return false |
| 2195 | } | 2226 | } |
| 2196 | 2227 | ||
| @@ -2208,8 +2239,7 @@ func runKWTestWrap(keySize int, key []byte, keyLen int, msg []byte, msgLen int, | |||
| 2208 | success = true | 2239 | success = true |
| 2209 | } | 2240 | } |
| 2210 | if !success { | 2241 | if !success { |
| 2211 | fmt.Printf("FAIL: Test case %d (%q) %v - msgLen = %d, AES_wrap_key() = %d, want %v\n", | 2242 | fmt.Printf("FAIL: %s - msgLen = %d, AES_wrap_key() = %d.\n", wt, msgLen, int(ret)) |
| 2212 | wt.TCID, wt.Comment, wt.Flags, msgLen, int(ret), wt.Result) | ||
| 2213 | } | 2243 | } |
| 2214 | return success | 2244 | return success |
| 2215 | } | 2245 | } |
| @@ -2219,8 +2249,7 @@ func runKWTestUnWrap(keySize int, key []byte, keyLen int, msg []byte, msgLen int | |||
| 2219 | 2249 | ||
| 2220 | ret := C.AES_set_decrypt_key((*C.uchar)(unsafe.Pointer(&key[0])), (C.int)(keySize), (*C.AES_KEY)(unsafe.Pointer(&aesKey))) | 2250 | ret := C.AES_set_decrypt_key((*C.uchar)(unsafe.Pointer(&key[0])), (C.int)(keySize), (*C.AES_KEY)(unsafe.Pointer(&aesKey))) |
| 2221 | if ret != 0 { | 2251 | if ret != 0 { |
| 2222 | fmt.Printf("FAIL: Test case %d (%q) %v - AES_set_encrypt_key() = %d, want %v\n", | 2252 | fmt.Printf("FAIL: %s - AES_set_encrypt_key() = %d.\n", wt, int(ret)) |
| 2223 | wt.TCID, wt.Comment, wt.Flags, int(ret), wt.Result) | ||
| 2224 | return false | 2253 | return false |
| 2225 | } | 2254 | } |
| 2226 | 2255 | ||
| @@ -2239,8 +2268,7 @@ func runKWTestUnWrap(keySize int, key []byte, keyLen int, msg []byte, msgLen int | |||
| 2239 | success = true | 2268 | success = true |
| 2240 | } | 2269 | } |
| 2241 | if !success { | 2270 | if !success { |
| 2242 | fmt.Printf("FAIL: Test case %d (%q) %v - keyLen = %d, AES_unwrap_key() = %d, want %v\n", | 2271 | fmt.Printf("FAIL: %s - keyLen = %d, AES_unwrap_key() = %d.\n", wt, keyLen, int(ret)) |
| 2243 | wt.TCID, wt.Comment, wt.Flags, keyLen, int(ret), wt.Result) | ||
| 2244 | } | 2272 | } |
| 2245 | return success | 2273 | return success |
| 2246 | } | 2274 | } |
| @@ -2302,7 +2330,7 @@ func runPrimalityTest(wt *wycheproofTestPrimality) bool { | |||
| 2302 | ret := C.BN_is_prime_ex(bnValue, C.BN_prime_checks, (*C.BN_CTX)(unsafe.Pointer(nil)), (*C.BN_GENCB)(unsafe.Pointer(nil))) | 2330 | ret := C.BN_is_prime_ex(bnValue, C.BN_prime_checks, (*C.BN_CTX)(unsafe.Pointer(nil)), (*C.BN_GENCB)(unsafe.Pointer(nil))) |
| 2303 | success := wt.Result == "acceptable" || (ret == 0 && wt.Result == "invalid") || (ret == 1 && wt.Result == "valid") | 2331 | success := wt.Result == "acceptable" || (ret == 0 && wt.Result == "invalid") || (ret == 1 && wt.Result == "valid") |
| 2304 | if !success { | 2332 | if !success { |
| 2305 | fmt.Printf("FAIL: Test case %d (%q) %v failed - got %d, want %v\n", wt.TCID, wt.Comment, wt.Flags, ret, wt.Result) | 2333 | fmt.Printf("FAIL: %s - got %d.\n", wt, ret) |
| 2306 | } | 2334 | } |
| 2307 | return success | 2335 | return success |
| 2308 | } | 2336 | } |
| @@ -2340,7 +2368,7 @@ func runRsaesOaepTest(rsa *C.RSA, sha *C.EVP_MD, mgfSha *C.EVP_MD, wt *wycheproo | |||
| 2340 | success = (wt.Result == "invalid") | 2368 | success = (wt.Result == "invalid") |
| 2341 | 2369 | ||
| 2342 | if !success { | 2370 | if !success { |
| 2343 | fmt.Printf("FAIL: Test case %d (%q) %v - got %d, want %d. Expected: %v\n", wt.TCID, wt.Comment, wt.Flags, ret, rsaSize, wt.Result) | 2371 | fmt.Printf("FAIL: %s - RSA size got %d, want %d.\n", wt, ret, rsaSize) |
| 2344 | } | 2372 | } |
| 2345 | return success | 2373 | return success |
| 2346 | } | 2374 | } |
| @@ -2368,7 +2396,7 @@ func runRsaesOaepTest(rsa *C.RSA, sha *C.EVP_MD, mgfSha *C.EVP_MD, wt *wycheproo | |||
| 2368 | success = (wt.Result == "invalid") | 2396 | success = (wt.Result == "invalid") |
| 2369 | 2397 | ||
| 2370 | if !success { | 2398 | if !success { |
| 2371 | fmt.Printf("FAIL: Test case %d (%q) %v - got %d, want %d. Expected: %v\n", wt.TCID, wt.Comment, wt.Flags, ret, rsaSize, wt.Result) | 2399 | fmt.Printf("FAIL: %s - got %d, want %d.\n", wt, ret, msgLen) |
| 2372 | } | 2400 | } |
| 2373 | return success | 2401 | return success |
| 2374 | } | 2402 | } |
| @@ -2376,7 +2404,7 @@ func runRsaesOaepTest(rsa *C.RSA, sha *C.EVP_MD, mgfSha *C.EVP_MD, wt *wycheproo | |||
| 2376 | to = to[:msgLen] | 2404 | to = to[:msgLen] |
| 2377 | if !bytes.Equal(msg, to) { | 2405 | if !bytes.Equal(msg, to) { |
| 2378 | success = false | 2406 | success = false |
| 2379 | fmt.Printf("FAIL: Test case %d (%q) %v - expected and calculated message differ. Expected: %v", wt.TCID, wt.Comment, wt.Flags, wt.Result) | 2407 | fmt.Printf("FAIL: %s - expected and calculated message differ.\n", wt) |
| 2380 | } | 2408 | } |
| 2381 | 2409 | ||
| 2382 | return success | 2410 | return success |
| @@ -2463,7 +2491,7 @@ func runRsaesPkcs1Test(rsa *C.RSA, wt *wycheproofTestRsaes) bool { | |||
| 2463 | success = (wt.Result == "invalid") | 2491 | success = (wt.Result == "invalid") |
| 2464 | 2492 | ||
| 2465 | if !success { | 2493 | if !success { |
| 2466 | fmt.Printf("FAIL: Test case %d (%q) %v - got %d, want %d. Expected: %v\n", wt.TCID, wt.Comment, wt.Flags, ret, len(wt.Msg)/2, wt.Result) | 2494 | fmt.Printf("FAIL: %s - got %d, want %d.\n", wt, ret, len(wt.Msg)/2) |
| 2467 | } | 2495 | } |
| 2468 | return success | 2496 | return success |
| 2469 | } | 2497 | } |
| @@ -2475,10 +2503,10 @@ func runRsaesPkcs1Test(rsa *C.RSA, wt *wycheproofTestRsaes) bool { | |||
| 2475 | 2503 | ||
| 2476 | if int(ret) != len(msg) { | 2504 | if int(ret) != len(msg) { |
| 2477 | success = false | 2505 | success = false |
| 2478 | fmt.Printf("FAIL: Test case %d (%q) %v - got %d, want %d. Expected: %v\n", wt.TCID, wt.Comment, wt.Flags, ret, len(msg), wt.Result) | 2506 | fmt.Printf("FAIL: %s - got %d, want %d.\n", wt, ret, len(msg)) |
| 2479 | } else if !bytes.Equal(msg, decrypted[:len(msg)]) { | 2507 | } else if !bytes.Equal(msg, decrypted[:len(msg)]) { |
| 2480 | success = false | 2508 | success = false |
| 2481 | fmt.Printf("FAIL: Test case %d (%q) %v - expected and calculated message differ. Expected: %v", wt.TCID, wt.Comment, wt.Flags, wt.Result) | 2509 | fmt.Printf("FAIL: %s - expected and calculated message differ.\n", wt) |
| 2482 | } | 2510 | } |
| 2483 | 2511 | ||
| 2484 | return success | 2512 | return success |
| @@ -2564,8 +2592,7 @@ func runRsassaTest(rsa *C.RSA, sha *C.EVP_MD, mgfSha *C.EVP_MD, sLen int, wt *wy | |||
| 2564 | if wt.Result == "invalid" { | 2592 | if wt.Result == "invalid" { |
| 2565 | return true | 2593 | return true |
| 2566 | } | 2594 | } |
| 2567 | fmt.Printf("FAIL: Test case %d (%q) %v - RSA_public_decrypt() = %d, want %v\n", | 2595 | fmt.Printf("FAIL: %s - RSA_public_decrypt() = %d.\n", wt, int(ret)) |
| 2568 | wt.TCID, wt.Comment, wt.Flags, int(ret), wt.Result) | ||
| 2569 | return false | 2596 | return false |
| 2570 | } | 2597 | } |
| 2571 | 2598 | ||
| @@ -2580,8 +2607,7 @@ func runRsassaTest(rsa *C.RSA, sha *C.EVP_MD, mgfSha *C.EVP_MD, sLen int, wt *wy | |||
| 2580 | } else if ret == 0 && (wt.Result == "invalid" || wt.Result == "acceptable") { | 2607 | } else if ret == 0 && (wt.Result == "invalid" || wt.Result == "acceptable") { |
| 2581 | success = true | 2608 | success = true |
| 2582 | } else { | 2609 | } else { |
| 2583 | fmt.Printf("FAIL: Test case %d (%q) %v - RSA_verify_PKCS1_PSS_mgf1() = %d, want %v\n", | 2610 | fmt.Printf("FAIL: %s - RSA_verify_PKCS1_PSS_mgf1() = %d.\n", wt, int(ret)) |
| 2584 | wt.TCID, wt.Comment, wt.Flags, int(ret), wt.Result) | ||
| 2585 | } | 2611 | } |
| 2586 | return success | 2612 | return success |
| 2587 | } | 2613 | } |
| @@ -2663,8 +2689,7 @@ func runRSATest(rsa *C.RSA, md *C.EVP_MD, nid int, wt *wycheproofTestRSA) bool { | |||
| 2663 | // XXX audit acceptable cases... | 2689 | // XXX audit acceptable cases... |
| 2664 | success := true | 2690 | success := true |
| 2665 | if ret == 1 != (wt.Result == "valid") && wt.Result != "acceptable" { | 2691 | if ret == 1 != (wt.Result == "valid") && wt.Result != "acceptable" { |
| 2666 | fmt.Printf("FAIL: Test case %d (%q) %v - RSA_verify() = %d, want %v\n", | 2692 | fmt.Printf("FAIL: %s - RSA_verify() = %d.\n", wt, int(ret)) |
| 2667 | wt.TCID, wt.Comment, wt.Flags, int(ret), wt.Result) | ||
| 2668 | success = false | 2693 | success = false |
| 2669 | } | 2694 | } |
| 2670 | return success | 2695 | return success |
| @@ -2746,8 +2771,7 @@ func runX25519Test(wt *wycheproofTestX25519) bool { | |||
| 2746 | // XXX audit acceptable cases... | 2771 | // XXX audit acceptable cases... |
| 2747 | success := true | 2772 | success := true |
| 2748 | if result != (wt.Result == "valid") && wt.Result != "acceptable" { | 2773 | if result != (wt.Result == "valid") && wt.Result != "acceptable" { |
| 2749 | fmt.Printf("FAIL: Test case %d (%q) %v - X25519(), want %v\n", | 2774 | fmt.Printf("FAIL: %s - X25519().\n", wt) |
| 2750 | wt.TCID, wt.Comment, wt.Flags, wt.Result) | ||
| 2751 | success = false | 2775 | success = false |
| 2752 | } | 2776 | } |
| 2753 | return success | 2777 | return success |
