gpt4 book ai didi

c - 使用 openssl 从 x509 字符数组中提取 RSA 公钥

转载 作者:太空狗 更新时间:2023-10-29 15:52:45 26 4
gpt4 key购买 nike

这是一个存储公钥和模数的x509格式的证书:

const unsigned char *certificateDataBytes = {/*data*/};

使用 OpenSSL 和 C,如何将其转换为 RSA 对象?我尝试了几种方法,但无法在 RSA_public_encrypt

中使用

最佳答案

我认为你的意思是将公钥转换为 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);

请注意,如果证书有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);

我希望这一定能解决您的问题。如果证书编码不同,则使用不同的函数。一次,你得到 X509 *,其余步骤相同。

关于c - 使用 openssl 从 x509 字符数组中提取 RSA 公钥,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15536666/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com