diff options
-rw-r--r-- | src/regress/lib/libcrypto/ecdsa/ecdsatest.c | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/src/regress/lib/libcrypto/ecdsa/ecdsatest.c b/src/regress/lib/libcrypto/ecdsa/ecdsatest.c index 45ffd91ab4..6cbe345d08 100644 --- a/src/regress/lib/libcrypto/ecdsa/ecdsatest.c +++ b/src/regress/lib/libcrypto/ecdsa/ecdsatest.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: ecdsatest.c,v 1.11 2022/08/31 09:36:46 tb Exp $ */ | 1 | /* $OpenBSD: ecdsatest.c,v 1.12 2022/08/31 09:38:00 tb Exp $ */ |
2 | /* | 2 | /* |
3 | * Written by Nils Larsch for the OpenSSL project. | 3 | * Written by Nils Larsch for the OpenSSL project. |
4 | */ | 4 | */ |
@@ -251,7 +251,8 @@ test_builtin(BIO *out) | |||
251 | BIO_printf(out, "."); | 251 | BIO_printf(out, "."); |
252 | (void)BIO_flush(out); | 252 | (void)BIO_flush(out); |
253 | /* create signature */ | 253 | /* create signature */ |
254 | sig_len = ECDSA_size(eckey); | 254 | if ((sig_len = ECDSA_size(eckey)) == 0) |
255 | goto builtin_err; | ||
255 | if ((signature = malloc(sig_len)) == NULL) | 256 | if ((signature = malloc(sig_len)) == NULL) |
256 | goto builtin_err; | 257 | goto builtin_err; |
257 | if (!ECDSA_sign(0, digest, 20, signature, &sig_len, eckey)) { | 258 | if (!ECDSA_sign(0, digest, 20, signature, &sig_len, eckey)) { |
@@ -332,6 +333,12 @@ test_builtin(BIO *out) | |||
332 | r = NULL; | 333 | r = NULL; |
333 | s = NULL; | 334 | s = NULL; |
334 | 335 | ||
336 | if ((sig_len = i2d_ECDSA_SIG(ecdsa_sig, NULL)) <= 0) | ||
337 | goto builtin_err; | ||
338 | free(signature); | ||
339 | if ((signature = calloc(1, sig_len)) == NULL) | ||
340 | goto builtin_err; | ||
341 | |||
335 | sig_ptr2 = signature; | 342 | sig_ptr2 = signature; |
336 | sig_len = i2d_ECDSA_SIG(ecdsa_sig, &sig_ptr2); | 343 | sig_len = i2d_ECDSA_SIG(ecdsa_sig, &sig_ptr2); |
337 | if (ECDSA_verify(0, digest, 20, signature, sig_len, | 344 | if (ECDSA_verify(0, digest, 20, signature, sig_len, |
@@ -349,6 +356,12 @@ test_builtin(BIO *out) | |||
349 | r = NULL; | 356 | r = NULL; |
350 | s = NULL; | 357 | s = NULL; |
351 | 358 | ||
359 | if ((sig_len = i2d_ECDSA_SIG(ecdsa_sig, NULL)) <= 0) | ||
360 | goto builtin_err; | ||
361 | free(signature); | ||
362 | if ((signature = calloc(1, sig_len)) == NULL) | ||
363 | goto builtin_err; | ||
364 | |||
352 | sig_ptr2 = signature; | 365 | sig_ptr2 = signature; |
353 | sig_len = i2d_ECDSA_SIG(ecdsa_sig, &sig_ptr2); | 366 | sig_len = i2d_ECDSA_SIG(ecdsa_sig, &sig_ptr2); |
354 | if (ECDSA_verify(0, digest, 20, signature, sig_len, | 367 | if (ECDSA_verify(0, digest, 20, signature, sig_len, |