CryptHashSessionKey 函式 (wincrypt.h)

重要 此 API 已被取代。 新的和現有的軟體應該開始使用 密碼編譯新一代 API。 Microsoft 可能會在未來的版本中移除此 API。
 
CryptHashSessionKey 函式會計算會話密鑰物件的密碼編譯哈希。 您可以使用相同的哈希句柄多次呼叫此函式,以計算多個索引鍵的 哈希 。 對 CryptHashSessionKey 的呼叫可以與 對 CryptHashData 的呼叫交錯。

呼叫此函式之前,必須先呼叫 CryptCreateHash ,才能建立 哈希物件的句柄。

語法

BOOL CryptHashSessionKey(
  [in] HCRYPTHASH hHash,
  [in] HCRYPTKEY  hKey,
  [in] DWORD      dwFlags
);

參數

[in] hHash

哈希物件的句柄。

[in] hKey

要哈希之索引鍵物件的句柄。

[in] dwFlags

定義下列旗標值。

意義
CRYPT_LITTLE_ENDIAN
0x00000001
設定此旗標時,索引鍵的位元組會 以小端 形式哈希。 請注意,根據預設 (, 當 dwFlags 為零) 時,索引鍵的位元組會以 大端 格式哈希。

傳回值

如果函式成功,則傳回值為 TRUE

如果函式失敗,則傳回值為 FALSE。 如需擴充錯誤資訊,請呼叫 GetLastError

“NTE” 開頭的錯誤碼是由您使用的特定 CSP 所產生。 以下是一些可能的錯誤碼。

傳回碼 Description
ERROR_INVALID_HANDLE
其中一個參數指定無效的句柄。
ERROR_INVALID_PARAMETER
其中一個參數包含無效的值。 這通常是無效的指標。
NTE_BAD_ALGID
hHash 句柄指定此 CSP 不支持的演算法。
NTE_BAD_FLAGS
dwFlags 參數為非零。
NTE_BAD_HASH
hHash 參數指定的哈希對象無效。
NTE_BAD_HASH_STATE
嘗試將數據新增至已標示為「已完成」的哈希物件。
NTE_BAD_KEY
正在使用金鑰哈希演算法,但會話密鑰已不再有效。 如果在哈希作業完成之前終結會話密鑰,就會產生此錯誤。
NTE_BAD_UID
找不到建立哈希物件時所指定的 CSP 內容。
NTE_FAIL
函式以非預期的方式失敗。

規格需求

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

另請參閱

CryptCreateHash

CryptGenKey

CryptHashData

哈希和數位簽名函式