我可以使用一些帮助,我需要像双击证书时 Windows 一样显示公钥(见图)。谢谢。
我可以通过以下任一方式获取公钥:
RSA *pubKey = X509_get_pubkey( csc->current_cert )->pkey.rsa;
或者
EVP_PKEY *pubKey = X509_get_pubkey(csc->current_cert);
如果在某处找到此代码段,但我得到的值与 Windows 显示的值不同:
unsigned char enc_bin[1024] = {0};
int enc_len = 0;
unsigned char dec_bin[1024] = {0};
int dec_len = 0;
enc_len = RSA_size( pubKey );
memset( enc_bin, 1, enc_len );
if( 0 < ( dec_len = RSA_public_decrypt( enc_len, enc_bin, dec_bin, pubKey, RSA_NO_PADDING) ) )
{
for (int i = 0; i < dec_len; i++)
{
CString str;
if( 0 == i )
str.Format( L"%02X", dec_bin[i] );
else
str.Format( L" %02X", dec_bin[i] );
PubKey += str;
}
}