diff options
| author | tb <> | 2024-04-18 11:51:53 +0000 |
|---|---|---|
| committer | tb <> | 2024-04-18 11:51:53 +0000 |
| commit | 234c1d2673681d3e4a56440ba30ec613fe3dc127 (patch) | |
| tree | 353222e90a672b124e98ec342faef5ba7690bc96 /src | |
| parent | 45650e0e51a410d1f54301ae6a26f175869dba56 (diff) | |
| download | openbsd-234c1d2673681d3e4a56440ba30ec613fe3dc127.tar.gz openbsd-234c1d2673681d3e4a56440ba30ec613fe3dc127.tar.bz2 openbsd-234c1d2673681d3e4a56440ba30ec613fe3dc127.zip | |
Test and assign in ecdh_cms_set_shared_info()
ok jsing
Diffstat (limited to 'src')
| -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) |
