本文整理汇总了C++中PANSC_ASN1_CERTIFICATE::GetKeyBits方法的典型用法代码示例。如果您正苦于以下问题:C++ PANSC_ASN1_CERTIFICATE::GetKeyBits方法的具体用法?C++ PANSC_ASN1_CERTIFICATE::GetKeyBits怎么用?C++ PANSC_ASN1_CERTIFICATE::GetKeyBits使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类PANSC_ASN1_CERTIFICATE
的用法示例。
在下文中一共展示了PANSC_ASN1_CERTIFICATE::GetKeyBits方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: if
ANSC_X509_KEY*
AnscX509CertGetPublicKey
(
void* raw_cert_data,
ULONG raw_cert_size
)
{
PANSC_ASN1_CERTIFICATE pAsnCert = NULL;
ANSC_X509_KEY* pX509Key = NULL;
PANSC_CRYPTO_PUB_KEY_GEN_PARAMS pGenParams;
/* decode the asn.1 certificate handle */
pAsnCert = (PANSC_ASN1_CERTIFICATE)
anscGetCertHandle
(
raw_cert_data,
raw_cert_size
);
if( pAsnCert == NULL)
{
goto EXIT;
}
/* export the public key */
pGenParams = (PANSC_CRYPTO_PUB_KEY_GEN_PARAMS)
AnscAllocateMemory(sizeof(ANSC_CRYPTO_PUB_KEY_GEN_PARAMS));
if( pGenParams == NULL)
{
goto EXIT;
}
if( ANSC_STATUS_SUCCESS !=
pAsnCert->ExportPublicKey(pAsnCert, pGenParams))
{
AnscFreeMemory(pGenParams);
goto EXIT;
}
/* create the X509_KEY */
pX509Key = (PANSC_X509_KEY)AnscAllocateMemory(sizeof(ANSC_X509_KEY));
if( pX509Key == NULL)
{
AnscFreeMemory(pGenParams);
goto EXIT;
}
pX509Key->KeySize = sizeof(ANSC_CRYPTO_PUB_KEY_GEN_PARAMS);
pX509Key->KeyData = (void*)pGenParams;
if( pAsnCert->GetKeyType(pAsnCert) == PKI_RSA_KEY)
{
pX509Key->KeyType = ANSC_CERT_keyType_rsa;
}
else if( pAsnCert->GetKeyType(pAsnCert) == PKI_DSA_KEY)
{
pX509Key->KeyType = ANSC_CERT_keyType_dsa;
}
pX509Key->KeyBits = pAsnCert->GetKeyBits(pAsnCert);
EXIT:
anscFreeCertHandle((ANSC_HANDLE)pAsnCert);
return pX509Key;
}