diff options
| author | tb <> | 2022-01-14 09:35:18 +0000 |
|---|---|---|
| committer | tb <> | 2022-01-14 09:35:18 +0000 |
| commit | feb7fb5302d1d5e7d7e1a286ba448e0de8b06a10 (patch) | |
| tree | 86b78d5d433b6cbfc78b63b75a9e4883bf50aa80 /src | |
| parent | 1971234e4aa9664ea0911eb0d1a4702cc521b822 (diff) | |
| download | openbsd-feb7fb5302d1d5e7d7e1a286ba448e0de8b06a10.tar.gz openbsd-feb7fb5302d1d5e7d7e1a286ba448e0de8b06a10.tar.bz2 openbsd-feb7fb5302d1d5e7d7e1a286ba448e0de8b06a10.zip | |
Convert wycheproof.go for opaque EVP_AEAD_CTX
Diffstat (limited to 'src')
| -rw-r--r-- | src/regress/lib/libcrypto/wycheproof/wycheproof.go | 29 |
1 files changed, 18 insertions, 11 deletions
diff --git a/src/regress/lib/libcrypto/wycheproof/wycheproof.go b/src/regress/lib/libcrypto/wycheproof/wycheproof.go index e23b100bf7..8d01b5d8b0 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.124 2021/11/21 11:55:00 tb Exp $ */ | 1 | /* $OpenBSD: wycheproof.go,v 1.125 2022/01/14 09:35:18 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 Theo Buehler <tb@openbsd.org> | 4 | * Copyright (c) 2018, 2019 Theo Buehler <tb@openbsd.org> |
| @@ -908,19 +908,23 @@ func runAesAeadTest(algorithm string, ctx *C.EVP_CIPHER_CTX, aead *C.EVP_AEAD, w | |||
| 908 | 908 | ||
| 909 | openAead, sealAead := true, true | 909 | openAead, sealAead := true, true |
| 910 | if aead != nil { | 910 | if aead != nil { |
| 911 | var ctx C.EVP_AEAD_CTX | 911 | ctx := C.EVP_AEAD_CTX_new() |
| 912 | if C.EVP_AEAD_CTX_init(&ctx, aead, (*C.uchar)(unsafe.Pointer(&key[0])), C.size_t(keyLen), C.size_t(tagLen), nil) != 1 { | 912 | if ctx == nil { |
| 913 | log.Fatal("EVP_AEAD_CTX_new() failed") | ||
| 914 | } | ||
| 915 | defer C.EVP_AEAD_CTX_free(ctx) | ||
| 916 | |||
| 917 | if C.EVP_AEAD_CTX_init(ctx, aead, (*C.uchar)(unsafe.Pointer(&key[0])), C.size_t(keyLen), C.size_t(tagLen), nil) != 1 { | ||
| 913 | log.Fatal("Failed to initialize AEAD context") | 918 | log.Fatal("Failed to initialize AEAD context") |
| 914 | } | 919 | } |
| 915 | defer C.EVP_AEAD_CTX_cleanup(&ctx) | ||
| 916 | 920 | ||
| 917 | // Make sure we don't accidentally prepend or compare against a 0. | 921 | // Make sure we don't accidentally prepend or compare against a 0. |
| 918 | if ctLen == 0 { | 922 | if ctLen == 0 { |
| 919 | ct = nil | 923 | ct = nil |
| 920 | } | 924 | } |
| 921 | 925 | ||
| 922 | openAead = checkAeadOpen(&ctx, iv, ivLen, aad, aadLen, msg, msgLen, ct, ctLen, tag, tagLen, wt) | 926 | openAead = checkAeadOpen(ctx, iv, ivLen, aad, aadLen, msg, msgLen, ct, ctLen, tag, tagLen, wt) |
| 923 | sealAead = checkAeadSeal(&ctx, iv, ivLen, aad, aadLen, msg, msgLen, ct, ctLen, tag, tagLen, wt) | 927 | sealAead = checkAeadSeal(ctx, iv, ivLen, aad, aadLen, msg, msgLen, ct, ctLen, tag, tagLen, wt) |
| 924 | } | 928 | } |
| 925 | 929 | ||
| 926 | return openEvp && sealEvp && openAead && sealAead | 930 | return openEvp && sealEvp && openAead && sealAead |
| @@ -1227,14 +1231,17 @@ func runChaCha20Poly1305Test(algorithm string, wt *wycheproofTestAead) bool { | |||
| 1227 | msg = append(tag, 0) | 1231 | msg = append(tag, 0) |
| 1228 | } | 1232 | } |
| 1229 | 1233 | ||
| 1230 | var ctx C.EVP_AEAD_CTX | 1234 | ctx := C.EVP_AEAD_CTX_new() |
| 1231 | if C.EVP_AEAD_CTX_init(&ctx, aead, (*C.uchar)(unsafe.Pointer(&key[0])), C.size_t(keyLen), C.size_t(tagLen), nil) != 1 { | 1235 | if ctx == nil { |
| 1236 | log.Fatal("EVP_AEAD_CTX_new() failed") | ||
| 1237 | } | ||
| 1238 | defer C.EVP_AEAD_CTX_free(ctx) | ||
| 1239 | if C.EVP_AEAD_CTX_init(ctx, aead, (*C.uchar)(unsafe.Pointer(&key[0])), C.size_t(keyLen), C.size_t(tagLen), nil) != 1 { | ||
| 1232 | log.Fatal("Failed to initialize AEAD context") | 1240 | log.Fatal("Failed to initialize AEAD context") |
| 1233 | } | 1241 | } |
| 1234 | defer C.EVP_AEAD_CTX_cleanup(&ctx) | ||
| 1235 | 1242 | ||
| 1236 | openSuccess := checkAeadOpen(&ctx, iv, ivLen, aad, aadLen, msg, msgLen, ct, ctLen, tag, tagLen, wt) | 1243 | openSuccess := checkAeadOpen(ctx, iv, ivLen, aad, aadLen, msg, msgLen, ct, ctLen, tag, tagLen, wt) |
| 1237 | sealSuccess := checkAeadSeal(&ctx, iv, ivLen, aad, aadLen, msg, msgLen, ct, ctLen, tag, tagLen, wt) | 1244 | sealSuccess := checkAeadSeal(ctx, iv, ivLen, aad, aadLen, msg, msgLen, ct, ctLen, tag, tagLen, wt) |
| 1238 | 1245 | ||
| 1239 | return openSuccess && sealSuccess | 1246 | return openSuccess && sealSuccess |
| 1240 | } | 1247 | } |
