我们使用以下openssl API从个人信息交换文件中检索证书
ret = PKCS12_parse ( p12, "mqroot", &pkey, &cert, &ca );
if ( 0 == ret )
{
printf ( "\tError: PKCS12_parse %d\n", GetLastError( ) );
hResult = GetLastError ( );
__leave;
}// if
此证书是否可以转换为与Windows CAPI兼容的任何数据类型。
hCertStore = PFXImportCertStore( &data, wszPassword, CRYPT_EXPORTABLE | CRYPT_USER_KEYSET );
if ( !hCertStore )
{
hResult = GetLastError();
__leave;
} // if
pUsrCertContext = CertEnumCertificatesInStore(
hCertStore,
pUsrCertContext );
if( !pUsrCertContext )
{
hResult = GetLastError( );
__leave;
} // if
使用上述功能,我们将编码的证书数据作为pUsrCertContext获取,并且有任何函数可以使用openssl获取编码的证书数据,以便在其他操作系统中可以忽略Windows API。
答案 0 :(得分:0)
您可以从OpenSSL获取PEM / DER编码证书,并使用CryptStringToBinary函数将PEM / DER转换为CryptoAPI二进制格式。
另请参阅此post的最底部。