共用方式為


CryptCreateKeyIdentifierFromCSP 函式 (wincrypt.h)

重要 此 API 已被取代。 新的和現有的軟體應該開始使用 密碼編譯新一代 API。 Microsoft 在未來版本中可能會移除此 API。
 
CryptCreateKeyIdentifierFromCSP 函式會從 密碼編譯服務提供者 (CSP) 公鑰CRYPT_INTEGER_BLOB建立密鑰標識符。

此函式會將 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 設為 NULL

[in] pPubKeyStruc

PUBLICKEYSTRUC 結構的指標。 在預設案例中,aiKeyAlgpPubKeyStruc 所指向的結構成員會用來尋找公鑰 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 [僅限傳統型應用程式]
目標平臺 窗戶
標頭 wincrypt.h
連結庫 Crypt32.lib
DLL Crypt32.dll

另請參閱

CryptEnumKeyIdentifierProperties

CryptGetKeyIdentifierProperty

CryptSetKeyIdentifierProperty

索引鍵識別碼函式