From 4f2abe4378ce561c60674f3ac0642d3fb22da550 Mon Sep 17 00:00:00 2001 From: Richard Levitte Date: Mon, 26 Oct 2020 13:58:30 +0100 Subject: Adapt libcrypto functionality to specify the desired input structure Reviewed-by: Shane Lontis (Merged from https://github.com/openssl/openssl/pull/13248) --- crypto/cms/cms_ec.c | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-) (limited to 'crypto/cms') diff --git a/crypto/cms/cms_ec.c b/crypto/cms/cms_ec.c index 9a602bb81d..5dac7f0683 100644 --- a/crypto/cms/cms_ec.c +++ b/crypto/cms/cms_ec.c @@ -24,23 +24,16 @@ static EVP_PKEY *pkey_type2param(int ptype, const void *pval, if (ptype == V_ASN1_SEQUENCE) { const ASN1_STRING *pstr = pval; const unsigned char *pm = pstr->data; - int pmlen = pstr->length; + size_t pmlen = (size_t)pstr->length; OSSL_DECODER_CTX *ctx = NULL; - BIO *membio = NULL; + int selection = OSSL_KEYMGMT_SELECT_ALL_PARAMETERS; - /* TODO(3.0): Need to be able to specify here that only params will do */ - ctx = OSSL_DECODER_CTX_new_by_EVP_PKEY(&pkey, "DER", "EC", libctx, - propq); + ctx = OSSL_DECODER_CTX_new_by_EVP_PKEY(&pkey, "DER", NULL, "EC", + selection, libctx, propq); if (ctx == NULL) goto err; - membio = BIO_new_mem_buf(pm, pmlen); - if (membio == NULL) { - OSSL_DECODER_CTX_free(ctx); - goto err; - } - OSSL_DECODER_from_bio(ctx, membio); - BIO_free(membio); + OSSL_DECODER_from_data(ctx, &pm, &pmlen); OSSL_DECODER_CTX_free(ctx); } else if (ptype == V_ASN1_OBJECT) { const ASN1_OBJECT *poid = pval; -- cgit v1.2.3