CryptCreateKeyIdentifierFromCSP 函式 (wincrypt.h)
此函式會將 CSP 的 PUBLICKEYSTRUC 轉換成 X.509CERT_PUBLIC_KEY_INFO 結構,並將其編碼。 編碼的結構接著會以SHA1演算法 哈希 ,以取得金鑰標識碼。
語法
BOOL CryptCreateKeyIdentifierFromCSP(
[in] DWORD dwCertEncodingType,
[in] LPCSTR pszPubKeyOID,
[in] const PUBLICKEYSTRUC *pPubKeyStruc,
[in] DWORD cbPubKeyStruc,
[in] DWORD dwFlags,
[in] void *pvReserved,
[out] BYTE *pbHash,
[in, out] DWORD *pcbHash
);
參數
[in] dwCertEncodingType
指定使用的編碼類型。 將憑證和 訊息編碼類型 與位 OR 作業結合在一起,一律可以接受,如下列範例所示:
X509_ASN_ENCODING |PKCS_7_ASN_ENCODING
目前定義的編碼類型如下:
- X509_ASN_ENCODING
- PKCS_7_ASN_ENCODING
[in] pszPubKeyOID
公鑰 物件識別碼 的指標 (OID) 。 非 NULL 的值會覆寫 pPubKeyStruc 所指向之結構的 aiKeyAlg 成員取得的預設 OID。 若要使用預設的 OID,請將 pszPubKeyOID 設定為 NULL。
[in] pPubKeyStruc
PUBLICKEYSTRUC 結構的指標。 在預設案例中,pPubKeyStruc 所指向結構的 aiKeyAlg 成員是用來尋找公鑰 OID。 當 pszPubKeyOID 的值不是 NULL 時,它會覆寫預設值。
[in] cbPubKeyStruc
PUBLICKEYSTRUC 的大小,以位元組為單位。
[in] dwFlags
保留供日後使用,且必須為零。
[in] pvReserved
保留供日後使用,且必須是 NULL。
[out] pbHash
緩衝區的指標,用來接收公鑰和金鑰標識碼的 哈希 。
若要取得此資訊的大小以供記憶體配置之用,請將此參數設定為 NULL。 如需詳細資訊,請參閱 擷取未知長度的數據。
[in, out] pcbHash
DWORD 的指標,指定 pbHash 參數所指向之緩衝區的大小,以位元組為單位。 當函式傳回時, DWORD 會包含儲存在緩衝區中的位元元組數目。 使用SHA1哈希時,所需緩衝區的長度為20。
傳回值
如果函式成功,函式會傳回非零 (TRUE) 。
如果函式失敗,它會傳回零 (FALSE) 。 如需擴充錯誤資訊,請呼叫 GetLastError。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows XP [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2003 [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | wincrypt.h |
程式庫 | Crypt32.lib |
Dll | Crypt32.dll |
另請參閱
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應