Openssl 3.0.0. EVP_PKEY RSA is NULL

Matt Caswell matt at openssl.org
Tue Sep 14 23:29:48 UTC 2021



On 15/09/2021 00:19, Ken Goldman wrote:
> I am doing the following, but the EVP_PKEY->pkey->rsa is null.
> Am I misusing the API or missing a step?

Neither. This is normal. EVP_PKEY->pkey->rsa is only used if you have a 
legacy key.

Matt

> 
> (error checking removed)
> 
>      EVP_PKEY        *rsa_pub_key = NULL;
>      EVP_PKEY_CTX     *ctx = NULL;
>      OSSL_PARAM_BLD     *param_bld = NULL;
>      OSSL_PARAM         *params = NULL;
> 
>      BIGNUM *    n = NULL;
>      BIGNUM *    e = NULL;
> 
> [these bignums are initialized using bin2bn]
> 
>      param_bld = OSSL_PARAM_BLD_new();
>      irc = OSSL_PARAM_BLD_push_BN(param_bld, "n", n);
>      irc = OSSL_PARAM_BLD_push_BN(param_bld, "e", e);
>      params = OSSL_PARAM_BLD_to_param(param_bld);
> 
> (do I perhaps need an 'end'?
> 
>      ctx = EVP_PKEY_CTX_new_from_name(NULL, "RSA", NULL);
>      irc = EVP_PKEY_fromdata_init(ctx);
>      irc = EVP_PKEY_fromdata(ctx, (EVP_PKEY **)rsa_pub_key,        /* 
> freed by caller */
>                  EVP_PKEY_PUBLIC_KEY, params);
> 
> Probing rsa_pub_key here in the debugger.
> 
> 
> type = 6
> references = 1
> rsa = 0  (probably NULL)
> 


More information about the openssl-users mailing list