summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortb <>2024-04-18 11:51:53 +0000
committertb <>2024-04-18 11:51:53 +0000
commit234c1d2673681d3e4a56440ba30ec613fe3dc127 (patch)
tree353222e90a672b124e98ec342faef5ba7690bc96
parent45650e0e51a410d1f54301ae6a26f175869dba56 (diff)
downloadopenbsd-234c1d2673681d3e4a56440ba30ec613fe3dc127.tar.gz
openbsd-234c1d2673681d3e4a56440ba30ec613fe3dc127.tar.bz2
openbsd-234c1d2673681d3e4a56440ba30ec613fe3dc127.zip
Test and assign in ecdh_cms_set_shared_info()
ok jsing
-rw-r--r--src/lib/libcrypto/ec/ec_ameth.c16
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)