Freigeben über


NCryptVerifySignature-Funktion (ncrypt.h)

Die NCryptVerifySignature-Funktion überprüft, ob die angegebene Signatur mit dem angegebenen Hash übereinstimmt.

Syntax

SECURITY_STATUS NCryptVerifySignature(
  [in]           NCRYPT_KEY_HANDLE hKey,
  [in, optional] VOID              *pPaddingInfo,
  [in]           PBYTE             pbHashValue,
  [in]           DWORD             cbHashValue,
  [in]           PBYTE             pbSignature,
  [in]           DWORD             cbSignature,
  [in]           DWORD             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 NCryptSignHash-Funktion verwendet wird.

[in, optional] pPaddingInfo

Ein Zeiger auf eine Struktur, die Abstandsinformationen 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] pbHashValue

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

[in] cbHashValue

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

[in] pbSignature

Die Adresse eines Puffers, der den signierten Hash der Daten enthält. Die NCryptSignHash-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 NCryptSignHash-Funktion wird verwendet, um die Signatur zu erstellen.

[in] dwFlags

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

Wenn der Schlüssel ein symmetrischer Schlüssel ist, wird dieser Parameter nicht verwendet und sollte null sein.

Wenn der Schlüssel ein asymmetrischer Schlüssel ist, kann dies einer der folgenden Werte sein.

Wert Bedeutung
NCRYPT_PAD_PKCS1_FLAG
Das PKCS1-Abstandsschema wurde verwendet, als die Signatur erstellt wurde. Der pPaddingInfo-Parameter ist ein Zeiger auf eine BCRYPT_PKCS1_PADDING_INFO-Struktur .
NCRYPT_PAD_PSS_FLAG
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 .
NCRYPT_SILENT_FLAG
Fordert an, dass der Schlüsseldienstanbieter (Key Service Provider, KSP) keine Benutzeroberfläche anzeigt. Wenn der Anbieter die Benutzeroberfläche für den Betrieb anzeigen muss, schlägt der Aufruf fehl, und der KSP sollte den NTE_SILENT_CONTEXT Fehlercode als letzten Fehler festlegen.

Rückgabewert

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

Mögliche Rückgabecodes sind u. a. die folgenden:

Rückgabecode Beschreibung
ERROR_SUCCESS
Die Funktion war erfolgreich.
NTE_BAD_SIGNATURE
Die Signatur wurde nicht überprüft.
NTE_INVALID_HANDLE
Der hKey-Parameter ist ungültig.
NTE_NO_MEMORY
Ein Speicherbelegungsfehler ist aufgetreten.
NTE_NOT_SUPPORTED
Der Algorithmusanbieter, der zum Erstellen des durch den hKey-Parameter angegebenen Schlüsselhandles verwendet wird, ist kein Signaturalgorithmus.

Hinweise

Ein Dienst darf diese Funktion nicht über seine StartService-Funktion aufrufen. Wenn ein Dienst diese Funktion über seine StartService-Funktion aufruft, kann ein Deadlock auftreten, und der Dienst reagiert möglicherweise nicht mehr.

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 ncrypt.h
Bibliothek Ncrypt.lib
DLL Ncrypt.dll

Weitere Informationen

NCryptSignHash