CryptSetHashParam 函式 (wincrypt.h)
重要 此 API 已被取代。 新的和現有的軟體應該開始使用 密碼編譯新一代 API。 Microsoft 可能會在未來的版本中移除此 API。
語法
BOOL CryptSetHashParam(
[in] HCRYPTHASH hHash,
[in] DWORD dwParam,
[in] const BYTE *pbData,
[in] DWORD dwFlags
);
參數
[in] hHash
要設定參數之哈希物件的句柄。
[in] dwParam
此參數可以是下列其中一個值。
值 | 意義 |
---|---|
|
HMAC_INFO 結構的指標,指定要使用的密碼編譯哈希演算法和內部和外部字串。 |
|
位元組陣列,其中包含要直接放入哈希物件的哈希值。 設定此值之前,必須使用 CryptGetHashParam 函式來讀取HP_HASHSIZE值來判斷哈希值的大小。
某些 密碼編譯服務提供者 (CSP) 不支援此功能。 |
注意 某些 CSP 類型可以新增其他可以使用此函式設定的值。
[in] pbData
值數據緩衝區。 在呼叫 CryptSetHashParam 之前,請將值數據放在這個緩衝區中。 此數據的形式會根據數值數位而有所不同。
[in] dwFlags
此參數保留供日後使用,且必須設定為零。
傳回值
如果函式成功,函式會傳回 TRUE。
如果函式失敗,則會傳回 FALSE。 如需擴充的錯誤資訊,請呼叫 GetLastError。
“NTE” 開頭的錯誤碼是由您使用的特定 CSP 所產生。 接下來有一些可能的錯誤碼。
傳回碼 | Description |
---|---|
|
其中一個參數指定無效的句柄。 |
|
CSP 內容目前正由另一個 進程使用。 |
|
其中一個參數包含無效的值。 這通常是無效的指標。 |
|
dwFlags 參數為非零值,或 pbData 緩衝區包含無效的值。 |
|
hHash 參數指定的哈希對象無效。 |
|
dwParam 參數會指定未知的值。 |
|
找不到建立 hKey 金鑰時所指定的 CSP 內容。 |
|
函式會以非預期的方式失敗。 |
備註
有時候,其他位置產生的哈希值必須經過簽署。 這可以使用下列作業順序來完成:
- 使用 CryptCreateHash 建立哈希物件。
- 設定HP_HASHVAL值。
- 使用 CryptSignHash 簽署哈希值,並取得數位簽名區塊。
- 使用 CryptDestroyHash 終結哈希物件。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows XP [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2003 [僅限桌面應用程式] |
目標平台 | Windows |
標頭 | wincrypt.h |
程式庫 | Advapi32.lib |
Dll | Advapi32.dll |