summaryrefslogtreecommitdiffstats
path: root/crypto/store
diff options
context:
space:
mode:
authorRichard Levitte <levitte@openssl.org>2020-10-05 14:27:37 +0200
committerRichard Levitte <levitte@openssl.org>2020-10-10 20:23:39 +0200
commit113adc1f61ce56cc3fcb7404fb521988b792750c (patch)
tree0f1721ce6b32ce56ffc6e1dec1a8a3809b97cbf0 /crypto/store
parent25cf949fc620ff7053e51acca3ec4d0fd094f8b0 (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.c10
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;
}