Going back to the original email in this thread:

On 02/11/2021 19:42, Jason Schultz wrote:
     mycert = PEM_read_X509(fp, NULL, 0, NULL);
     pkey = X509_get_pubkey(mycert);

All functions return good statuses or non-NULL pointers until the last one, X509_get_pubkey() returns NULL.


The PEM_read_X509 call looks suspicious. As I understand it you have a fips libctx and non-fips libctx, with no providers loaded into the default libctx. Correct?

The public key is actually decoded as part of the PEM_read_X509(). But, the PEM_read_X509() call does not take a libctx parameter. Subsequently, it attempts to decode the embedded X509 public key and will use the default libctx - which has no providers and so the decode of the key fails. Therefore when you subsequently try to obtain the public key with X509_get_pubkey() you get a NULL return.

Please raise this as an issue in github.

Matt

Reply via email to