CryptExportPublicKeyInfoFromBCryptKeyHandle 函式 (wincrypt.h)

CryptExportPublicKeyInfoFromBCryptKeyHandle 函式會導出與提供者對應私鑰相關聯的公鑰資訊。

語法

BOOL CryptExportPublicKeyInfoFromBCryptKeyHandle(
  [in]            BCRYPT_KEY_HANDLE     hBCryptKey,
  [in]            DWORD                 dwCertEncodingType,
  [in, optional]  LPSTR                 pszPublicKeyObjId,
  [in]            DWORD                 dwFlags,
  [in, optional]  void                  *pvAuxInfo,
  [out, optional] PCERT_PUBLIC_KEY_INFO pInfo,
  [in, out]       DWORD                 *pcbInfo
);

參數

[in] hBCryptKey

要從中匯出公鑰資訊的金鑰句柄。

[in] dwCertEncodingType

指定要比對的編碼類型。

這個值可以是目前定義的編碼類型位元組合:

  • X509_ASN_ENCODING
  • PKCS_7_ASN_ENCODING

[in, optional] pszPublicKeyObjId

物件標識碼的指標 (OID) ,可識別要用來匯出密鑰的可安裝函式。 如果 OID 的高序字不是零, pszPublicKeyObjId 是 OID 字串的指標,例如 “2.5.29.1 或 ASCII 字串串,例如 ”file“。如果 OID 的高序單字為零,則低序字會指定要當做物件識別碼使用的整數標識碼。

[in] dwFlags

指出如何匯出公鑰資訊的 DWORD 值。

意義
CRYPT_OID_INFO_PUBKEY_SIGN_KEY_FLAG
0x80000000
過CRYPT_PUBKEY_ALG_OID_GROUP_ID 群組中明確標幟 為 CRYPT_OID_PUBKEY_ENCRYPT_ONLY_FLAG 旗標的公鑰。
CRYPT_OID_INFO_PUBKEY_ENCRYPT_KEY_FLAG
0x40000000
過CRYPT_PUBKEY_ALG_OID_GROUP_ID 群組中明確標幟 為 CRYPT_OID_PUBKEY_SIGN_ONLY_FLAG 旗標的公鑰。

[in, optional] pvAuxInfo

此參數保留供日後使用,且必須設定為 NULL

[out, optional] pInfo

要匯出之公鑰資訊的 CERT_PUBLIC_KEY_INFO 結構的指標。

此參數可以是 NULL ,可設定此資訊的大小以供記憶體配置之用。 如需詳細資訊,請參閱 擷取未知長度的數據

[in, out] pcbInfo

DWORD 的指標,其中包含 pInfo 參數所指向之緩衝區的大小,以位元組為單位。 當函式傳回時, DWORD 會包含儲存在緩衝區中的位元元組數目。

傳回值

如果函式成功,函式會傳回 TRUE ;否則會傳回 FALSE

備註

如果 CryptExportPublicKeyInfoFromBCryptKeyHandle 函式找不到 pszPublicKeyObjId 參數所指定 OID 的可安裝 OID 函式,它會嘗試將密鑰導出為 RSA 公鑰 (szOID_RSA_RSA) 。 如果密鑰導出為 RSA 公鑰,就不會使用 dwFlagspvAuxInfo 參數的值。

規格需求

需求
最低支援的用戶端 Windows 7 [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2008 R2 [僅限桌面應用程式]
目標平台 Windows
標頭 wincrypt.h
程式庫 Crypt32.lib
Dll Crypt32.dll