BCryptVerifySignature-Funktion (bcrypt.h)

Die BCryptVerifySignature-Funktion überprüft, ob die angegebene Signatur dem angegebenen Hash entspricht.

Syntax

NTSTATUS BCryptVerifySignature(
  [in]           BCRYPT_KEY_HANDLE hKey,
  [in, optional] VOID              *pPaddingInfo,
  [in]           PUCHAR            pbHash,
  [in]           ULONG             cbHash,
  [in]           PUCHAR            pbSignature,
  [in]           ULONG             cbSignature,
  [in]           ULONG             dwFlags
);

Parameter

[in] hKey

Das Handle des Schlüssels, der zum Entschlüsseln der Signatur verwendet werden soll. Dies muss ein identischer Schlüssel oder der öffentliche Schlüsselteil des Schlüsselpaars sein, das zum Signieren der Daten mit der Funktion BCryptSignHash verwendet wird.

[in, optional] pPaddingInfo

Ein Zeiger auf eine Struktur, die Auffüllungsinformationen enthält. Der tatsächliche Strukturtyp, auf den dieser Parameter verweist, hängt vom Wert des dwFlags-Parameters ab. Dieser Parameter wird nur mit asymmetrischen Schlüsseln verwendet und muss andernfalls NULL sein.

[in] pbHash

Die Adresse eines Puffers, der den Hash der Daten enthält. Der cbHash-Parameter enthält die Größe dieses Puffers.

[in] cbHash

Die Größe des pbHash-Puffers in Bytes.

[in] pbSignature

Die Adresse eines Puffers, der den signierten Hash der Daten enthält. Die BCryptSignHash-Funktion wird verwendet, um die Signatur zu erstellen. Der cbSignature-Parameter enthält die Größe dieses Puffers.

[in] cbSignature

Die Größe des pbSignature-Puffers in Bytes. Die BCryptSignHash-Funktion wird verwendet, um die Signatur zu erstellen.

[in] dwFlags

Eine Reihe von Flags, die das Verhalten dieser Funktion ändern. Der zulässige Satz von Flags hängt vom Typ des Schlüssels ab, der durch den hKey-Parameter angegeben wird.

Wenn es sich bei dem Schlüssel um einen symmetrischen Schlüssel handelt, wird dieser Parameter nicht verwendet und sollte 0 sein.

Wenn es sich bei dem Schlüssel um einen asymmetrischen Schlüssel handelt, kann dies einer der folgenden Werte sein.

Wert Bedeutung
BCRYPT_PAD_PKCS1
Das PKCS1-Auffüllungsschema wurde beim Erstellen der Signatur verwendet. Der pPaddingInfo-Parameter ist ein Zeiger auf eine BCRYPT_PKCS1_PADDING_INFO-Struktur .
BCRYPT_PAD_PSS
Das PSS-Auffüllungsschema (Probabilistic Signature Scheme) wurde verwendet, als die Signatur erstellt wurde. Der pPaddingInfo-Parameter ist ein Zeiger auf eine BCRYPT_PSS_PADDING_INFO-Struktur .

Rückgabewert

Gibt einen status Code zurück, der den Erfolg oder Fehler der Funktion angibt.

Mögliche Rückgabecodes umfassen folgendes, sind aber nicht darauf beschränkt.

Rückgabecode Beschreibung
STATUS_SUCCESS
Die Funktion war erfolgreich.
STATUS_INVALID_SIGNATURE
Die Signatur wurde nicht überprüft.
NTE_NO_MEMORY
Ein Fehler bei der Speicherzuordnung ist aufgetreten.
STATUS_INVALID_PARAMETER
Einer der angegebenen Parameter ist ungültig.
STATUS_INVALID_HANDLE
Das durch den hKey-Parameter angegebene Schlüsselhandle ist ungültig.
STATUS_NOT_SUPPORTED
Der Algorithmusanbieter, der zum Erstellen des durch den hKey-Parameter angegebenen Schlüsselhandles verwendet wird, ist kein Signaturalgorithmus.

Hinweise

Diese Funktion berechnet die Signatur mit dem angegebenen Schlüssel und vergleicht dann den berechneten Signaturwert mit dem angegebenen Signaturwert.

Um diese Funktion zu verwenden, müssen Sie die Daten mit demselben Hashingalgorithmus hashen, der zum Erstellen des signierten Hashwerts verwendet wurde. Falls zutreffend, müssen Sie auch das gleiche Auffüllungsschema angeben, das beim Erstellen der Signatur angegeben wurde.

Je nachdem, welche Prozessormodi ein Anbieter unterstützt, kann BCryptVerifySignature entweder im Benutzermodus oder im Kernelmodus aufgerufen werden. Kernelmodusaufrufer können entweder PASSIVE_LEVELIRQL oder DISPATCH_LEVEL IRQL ausführen. Wenn die aktuelle IRQL-Ebene DISPATCH_LEVEL ist, muss das im hKey-Parameter bereitgestellte Handle von einem Algorithmushandle abgeleitet werden, das von einem Anbieter zurückgegeben wird, der mithilfe des BCRYPT_PROV_DISPATCH-Flags geöffnet wurde, und alle Zeiger, die an die BCryptVerifySignature-Funktion übergeben werden, müssen auf nicht ausgestellten (oder gesperrten) Speicher verweisen.

Um diese Funktion im Kernelmodus aufzurufen, verwenden Sie Cng.lib, die Teil des Driver Development Kit (DDK) ist. Windows Server 2008 und Windows Vista: Um diese Funktion im Kernelmodus aufzurufen, verwenden Sie Ksecdd.lib.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows Vista [Desktop-Apps | UWP-Apps]
Unterstützte Mindestversion (Server) Windows Server 2008 [Desktop-Apps | UWP-Apps]
Zielplattform Windows
Kopfzeile bcrypt.h
Bibliothek Bcrypt.lib
DLL Bcrypt.dll

Weitere Informationen

BCryptSignHash