这是一个x509格式的证书,用于存储公钥和模数:
const unsigned char *certificateDataBytes = {/*data*/};
Run Code Online (Sandbox Code Playgroud)
使用OpenSSL和C,如何将其转换为RSA对象?我尝试了几种方法,但我无法让它工作RSA_public_encrypt
dop*_*ime 10
我认为你的意思是RSA*结构的公钥.
因为,你有证书的字节,如果是DER编码的字节,那么你需要先将其转换为X509*结构.
X509 * cert;
EVP_PKEY * pubkey;
//length is the length of the certificateDataBytes in terms of bytes.
cert = d2i_x509 (NULL, certificateDataBytes, length);
pubkey = X509_get_pubkey (cert);
Run Code Online (Sandbox Code Playgroud)
请注意,如果证书具有RSA公钥,则可以按如下方式获取RSA公钥:
RSA * rsa
rsa = EVP_PKEY_get1_RSA(pubkey);
//Now rsa contains RSA public key. Use it.
//After use, free the pubkey
EVP_PKEY_free (pubkey);
Run Code Online (Sandbox Code Playgroud)
我希望这必须解决你的目的.如果证书编码不同,请使用不同的功能.一次,你得到X509*,休息步骤是一样的.
| 归档时间: |
|
| 查看次数: |
10025 次 |
| 最近记录: |