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 的值, 會覆寫從 aiKeyAl g 取得的預設 OID,pPubKeyStruc所指向之結構的成員。 若要使用預設 OID,請將 pszPubKeyOID
[in] pPubKeyStruc
PUBLICKEYSTRUC 結構的指標。 在預設案例中,aiKeyAlgpPubKeyStruc 所指向的結構成員會用來尋找公鑰 OID。 當 pszPubKeyOID
[in] cbPubKeyStruc
[in] dwFlags
保留供日後使用,且必須是零。
[in] pvReserved
保留供日後使用,且必須 NULL。
[out] pbHash
要接收公鑰和金鑰標識碼
若要取得此資訊的大小以供記憶體設定之用,請將此參數設定為 NULL。 如需詳細資訊,請參閱 擷取未知長度的數據。
[in, out] pcbHash
DWORD 指標,指定 pbHash 參數所指向之緩衝區的大小,以位元組為單位。 當函式傳回時,DWORD 包含儲存在緩衝區中的位元元組數目。 使用SHA1哈希,所需的緩衝區長度為20。
傳回值
如果函式成功,函式會傳回非零 (TRUE)。
如果函式失敗,則會傳回零 (FALSE)。
如需擴充錯誤資訊,請呼叫 getLastError
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | Windows XP [僅限傳統型應用程式] |
支援的最低伺服器 | Windows Server 2003 [僅限傳統型應用程式] |
目標平臺 | 窗戶 |
標頭 | wincrypt.h |
連結庫 | Crypt32.lib |
DLL | Crypt32.dll |