diff options
author | Richard Levitte <levitte@openssl.org> | 2020-10-05 14:27:37 +0200 |
---|---|---|
committer | Richard Levitte <levitte@openssl.org> | 2020-10-10 20:23:39 +0200 |
commit | 113adc1f61ce56cc3fcb7404fb521988b792750c (patch) | |
tree | 0f1721ce6b32ce56ffc6e1dec1a8a3809b97cbf0 /crypto/store | |
parent | 25cf949fc620ff7053e51acca3ec4d0fd094f8b0 (diff) |
Adapt some code to OSSL_ENCODER_to_data() / OSSL_DECODER_from_data()
The functions i2d_PrivateKey(), try_key_value() i store_result.c and
X509_PUBKEY_set() were all essentially duplicating this functionality
to some degree.
Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org>
(Merged from https://github.com/openssl/openssl/pull/13094)
Diffstat (limited to 'crypto/store')
-rw-r--r-- | crypto/store/store_result.c | 10 |
1 files changed, 3 insertions, 7 deletions
diff --git a/crypto/store/store_result.c b/crypto/store/store_result.c index 8ba4f8880c..200544d72d 100644 --- a/crypto/store/store_result.c +++ b/crypto/store/store_result.c @@ -251,21 +251,17 @@ static EVP_PKEY *try_key_value(struct extracted_param_data_st *data, { EVP_PKEY *pk = NULL; OSSL_DECODER_CTX *decoderctx = NULL; - BIO *membio = - BIO_new_mem_buf(data->octet_data, (int)data->octet_data_size); - - if (membio == NULL) - return 0; + const unsigned char *pdata = data->octet_data; + size_t pdatalen = data->octet_data_size; decoderctx = OSSL_DECODER_CTX_new_by_EVP_PKEY(&pk, "DER", NULL, libctx, propq); (void)OSSL_DECODER_CTX_set_passphrase_cb(decoderctx, cb, cbarg); /* No error if this couldn't be decoded */ - (void)OSSL_DECODER_from_bio(decoderctx, membio); + (void)OSSL_DECODER_from_data(decoderctx, &pdata, &pdatalen); OSSL_DECODER_CTX_free(decoderctx); - BIO_free(membio); return pk; } |