[openssl-users] Get raw RSA public key from X509 certificate

Matt Caswell matt at openssl.org
Fri Apr 27 08:50:39 UTC 2018



On 26/04/18 23:48, Ken Goldman wrote:
> On 04/26/18 16:37, Matt Caswell wrote:
>>
>>
>> On 26/04/18 21:17, Ken Goldman wrote:
>>> I have to get the raw public modulus, but I cannot X509_get_pubkey()
>>> because of a non-standard object identifier.
>>>
>>> I can use X509_get_X509_PUBKEY() to get part way there.  I see the DER
>>> wrapped key in the public_key.data element, but I don't know an API to
>>> get to that element.
>>
>> How about X509_PUBKEY_get0_param():
>>
>> https://www.openssl.org/docs/man1.1.0/crypto/X509_PUBKEY_get0_param.html
>>
> 
> Thanks!  That got me halfway there.
> 
> That gives me a DER steam that is a SEQUENCE of two INTEGERs.  The first
> is the public modulus and the second one is the exponent.
> 
> How do I go from that SEQUENCE to the components, and then from the
> components to their byte streams and lengths?
> 
> I assume it's some raw DER function like d2i_something.
> 

How about create a mem-bio backed by the buffer containing the raw data
and then call d2i_RSAPublicKey_bio()?

Matt



More information about the openssl-users mailing list