CryptSetHashParam-Funktion (wincrypt.h)
Syntax
BOOL CryptSetHashParam(
[in] HCRYPTHASH hHash,
[in] DWORD dwParam,
[in] const BYTE *pbData,
[in] DWORD dwFlags
);
Parameter
[in] hHash
Ein Handle für das Hashobjekt, für das Parameter festgelegt werden sollen.
[in] dwParam
Dieser Parameter kann einen der folgenden Werte annehmen.
Wert | Bedeutung |
---|---|
|
Ein Zeiger auf eine HMAC_INFO Struktur, die den kryptografischen Hashalgorithmus und die zu verwendenden inneren und äußeren Zeichenfolgen angibt. |
|
Ein Bytearray, das einen Hashwert enthält, der direkt im Hashobjekt platziert werden soll. Bevor Sie diesen Wert festlegen, muss die Größe des Hashwerts mithilfe der CryptGetHashParam-Funktion bestimmt werden, um den HP_HASHSIZE Wert zu lesen.
Einige Kryptografiedienstanbieter (Cryptographic Service Provider , CSPs) unterstützen diese Funktion nicht. |
[in] pbData
Ein Wertdatenpuffer. Platzieren Sie die Wertdaten in diesem Puffer, bevor Sie CryptSetHashParam aufrufen. Die Form dieser Daten variiert je nach Wertnummer.
[in] dwFlags
Dieser Parameter ist für die zukünftige Verwendung reserviert und muss auf null festgelegt werden.
Rückgabewert
Wenn die Funktion erfolgreich ist, gibt die Funktion TRUE zurück.
Wenn die Funktion fehlschlägt, gibt sie FALSE zurück. Rufen Sie GetLastError auf, um erweiterte Fehlerinformationen zu erhalten.
Die von "NTE" vorangestellten Fehlercodes werden von dem jeweiligen CSP generiert, den Sie verwenden. Es folgen einige mögliche Fehlercodes.
Rückgabecode | Beschreibung |
---|---|
|
Einer der Parameter gibt ein ungültiges Handle an. |
|
Der CSP-Kontext wird derzeit von einem anderen Prozess verwendet. |
|
Einer der Parameter enthält einen ungültigen Wert. Dies ist in den meisten Fällen ein nicht gültiger Zeiger. |
|
Der dwFlags-Parameter ist nonzero, oder der pbData-Puffer enthält einen ungültigen Wert. |
|
Das durch den hHash-Parameter angegebene Hashobjekt ist ungültig. |
|
Der dwParam-Parameter gibt einen unbekannten Wert an. |
|
Der CSP-Kontext, der beim Erstellen des hKey-Schlüssels angegeben wurde, kann nicht gefunden werden. |
|
Die Funktion ist auf unerwartete Weise fehlgeschlagen. |
Hinweise
Gelegentlich muss ein an anderer Stelle generierter Hashwert signiert werden. Dies kann mithilfe der folgenden Vorgangssequenz erfolgen:
- Erstellen Sie mithilfe von CryptCreateHash ein Hashobjekt.
- Legen Sie den wert HP_HASHVAL fest.
- Signieren Sie den Hashwert mithilfe von CryptSignHash , und rufen Sie einen digitalen Signaturblock ab.
- Zerstören Sie das Hashobjekt mithilfe von CryptDestroyHash.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows XP [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows Server 2003 [nur Desktop-Apps] |
Zielplattform | Windows |
Kopfzeile | wincrypt.h |
Bibliothek | Advapi32.lib |
DLL | Advapi32.dll |