diff options
Diffstat (limited to 'src/lib/libcrypto/ec/ec_ameth.c')
-rw-r--r-- | src/lib/libcrypto/ec/ec_ameth.c | 16 |
1 files changed, 7 insertions, 9 deletions
diff --git a/src/lib/libcrypto/ec/ec_ameth.c b/src/lib/libcrypto/ec/ec_ameth.c index cbc8fa929e..883832ff7d 100644 --- a/src/lib/libcrypto/ec/ec_ameth.c +++ b/src/lib/libcrypto/ec/ec_ameth.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: ec_ameth.c,v 1.64 2024/04/18 11:51:01 tb Exp $ */ | 1 | /* $OpenBSD: ec_ameth.c,v 1.65 2024/04/18 11:51:53 tb Exp $ */ |
2 | /* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL | 2 | /* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL |
3 | * project 2006. | 3 | * project 2006. |
4 | */ | 4 | */ |
@@ -841,14 +841,13 @@ ecdh_cms_set_shared_info(EVP_PKEY_CTX *pctx, CMS_RecipientInfo *ri) | |||
841 | 841 | ||
842 | p = alg->parameter->value.sequence->data; | 842 | p = alg->parameter->value.sequence->data; |
843 | plen = alg->parameter->value.sequence->length; | 843 | plen = alg->parameter->value.sequence->length; |
844 | kekalg = d2i_X509_ALGOR(NULL, &p, plen); | 844 | if ((kekalg = d2i_X509_ALGOR(NULL, &p, plen)) == NULL) |
845 | if (!kekalg) | ||
846 | goto err; | 845 | goto err; |
847 | kekctx = CMS_RecipientInfo_kari_get0_ctx(ri); | 846 | if ((kekctx = CMS_RecipientInfo_kari_get0_ctx(ri)) == NULL) |
848 | if (!kekctx) | ||
849 | goto err; | 847 | goto err; |
850 | kekcipher = EVP_get_cipherbyobj(kekalg->algorithm); | 848 | if ((kekcipher = EVP_get_cipherbyobj(kekalg->algorithm)) == NULL) |
851 | if (!kekcipher || EVP_CIPHER_mode(kekcipher) != EVP_CIPH_WRAP_MODE) | 849 | goto err; |
850 | if (EVP_CIPHER_mode(kekcipher) != EVP_CIPH_WRAP_MODE) | ||
852 | goto err; | 851 | goto err; |
853 | if (!EVP_EncryptInit_ex(kekctx, kekcipher, NULL, NULL, NULL)) | 852 | if (!EVP_EncryptInit_ex(kekctx, kekcipher, NULL, NULL, NULL)) |
854 | goto err; | 853 | goto err; |
@@ -859,8 +858,7 @@ ecdh_cms_set_shared_info(EVP_PKEY_CTX *pctx, CMS_RecipientInfo *ri) | |||
859 | if (EVP_PKEY_CTX_set_ecdh_kdf_outlen(pctx, keylen) <= 0) | 858 | if (EVP_PKEY_CTX_set_ecdh_kdf_outlen(pctx, keylen) <= 0) |
860 | goto err; | 859 | goto err; |
861 | 860 | ||
862 | plen = CMS_SharedInfo_encode(&der, kekalg, ukm, keylen); | 861 | if ((plen = CMS_SharedInfo_encode(&der, kekalg, ukm, keylen)) <= 0) |
863 | if (plen <= 0) | ||
864 | goto err; | 862 | goto err; |
865 | 863 | ||
866 | if (EVP_PKEY_CTX_set0_ecdh_kdf_ukm(pctx, der, plen) <= 0) | 864 | if (EVP_PKEY_CTX_set0_ecdh_kdf_ukm(pctx, der, plen) <= 0) |