mirror of
https://github.com/openssl/openssl.git
synced 2024-11-27 05:21:51 +08:00
Adapt libcrypto functionality to specify the desired input structure
Reviewed-by: Shane Lontis <shane.lontis@oracle.com> (Merged from https://github.com/openssl/openssl/pull/13248)
This commit is contained in:
parent
2c090c1d1b
commit
4f2abe4378
@ -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;
|
||||
|
@ -255,7 +255,8 @@ static EVP_PKEY *try_key_value(struct extracted_param_data_st *data,
|
||||
size_t pdatalen = data->octet_data_size;
|
||||
|
||||
decoderctx =
|
||||
OSSL_DECODER_CTX_new_by_EVP_PKEY(&pk, "DER", NULL, libctx, propq);
|
||||
OSSL_DECODER_CTX_new_by_EVP_PKEY(&pk, NULL, NULL, NULL, 0,
|
||||
libctx, propq);
|
||||
(void)OSSL_DECODER_CTX_set_passphrase_cb(decoderctx, cb, cbarg);
|
||||
|
||||
/* No error if this couldn't be decoded */
|
||||
|
Loading…
Reference in New Issue
Block a user