BCryptSignHash-Funktion (bcrypt.h)
Die BCryptSignHash--Funktion erstellt eine Signatur eines Hashwerts.
Syntax
NTSTATUS BCryptSignHash(
[in] BCRYPT_KEY_HANDLE hKey,
[in, optional] VOID *pPaddingInfo,
[in] PUCHAR pbInput,
[in] ULONG cbInput,
[out] PUCHAR pbOutput,
[in] ULONG cbOutput,
[out] ULONG *pcbResult,
[in] ULONG dwFlags
);
Parameter
[in] hKey
Das Handle des Schlüssels, der zum Signieren des Hashs verwendet werden soll.
[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 NULL- sein.
[in] pbInput
Ein Zeiger auf einen Puffer, der den zu signierenden Hashwert enthält. Der cbInput Parameter enthält die Größe dieses Puffers.
[in] cbInput
Die Anzahl der Bytes im pbInput- Zu signierenden Puffers.
[out] pbOutput
Die Adresse eines Puffers, der die von dieser Funktion erzeugte Signatur empfängt. Der cbOutput Parameter enthält die Größe dieses Puffers.
Wenn dieser Parameter NULL-ist, berechnet diese Funktion die für die Signatur erforderliche Größe und gibt die Größe an der Position zurück, auf die der pcbResult Parameter verweist.
[in] cbOutput
Die Größe des pbOutput- Puffers in Byte. Dieser Parameter wird ignoriert, wenn der parameter pbOutputNULList.
[out] pcbResult
Ein Zeiger auf eine ULONG- Variable, die die Anzahl der in den pbOutput Puffer kopierten Bytes empfängt.
Wenn pbOutput-NULL-ist, erhält dies die Für die Signatur erforderliche Größe in Bytes.
[in] dwFlags
Eine Reihe von Flags, die das Verhalten dieser Funktion ändern. Der zulässige Satz von Flags hängt vom Typ des durch den hKey--Parameter angegebenen Schlüssels ab.
Dies kann einer der folgenden Werte sein:
Wert | Bedeutung |
---|---|
|
Verwenden Sie das PKCS1-Abstandsschema. Der pPaddingInfo Parameter ist ein Zeiger auf eine BCRYPT_PKCS1_PADDING_INFO Struktur. |
|
Verwenden Sie das Probabilistische Signaturschema (PSS)-Abstandsschema. Der pPaddingInfo Parameter ist ein Zeiger auf eine BCRYPT_PSS_PADDING_INFO Struktur. |
Rückgabewert
Gibt einen Statuscode zurück, der den Erfolg oder Fehler der Funktion angibt.
Mögliche Rückgabecodes umfassen, aber nicht beschränkt auf Folgendes.
Rückgabecode | Beschreibung |
---|---|
|
Die Funktion war erfolgreich. |
|
Das durch den hKey Parameter angegebene Schlüsselhandle ist ungültig. |
|
Der Algorithmusanbieter, der zum Erstellen des vom hKey Parameters angegebenen Schlüsselhandle verwendet wird, ist kein Signaturalgorithmus. |
|
Fehler bei der Speicherzuweisung. |
|
Die durch den cbOutput Parameter angegebene Speichergröße ist nicht groß genug, um die Signatur zu speichern. |
Bemerkungen
Diese Funktion verschlüsselt den Hashwert mit dem angegebenen Schlüssel, um die Signatur zu erstellen.
Um später zu überprüfen, ob die Signatur gültig ist, rufen Sie die BCryptVerifySignature Funktion mit einem identischen Schlüssel und einem identischen Hash der ursprünglichen Daten auf.
Je nachdem, welche Prozessormodi ein Anbieter unterstützt, kann BCryptSignHash entweder über den Benutzermodus oder den Kernelmodus aufgerufen werden. Kernelmodusaufrufer können entweder PASSIVE_LEVELIRQL- oder DISPATCH_LEVEL IRQL ausgeführt werden. Wenn die aktuelle IRQL-Ebene DISPATCH_LEVEList, muss das im hKey Parameter bereitgestellte Handle von einem Algorithmushandle abgeleitet werden, das von einem Anbieter zurückgegeben wird, der mit dem BCRYPT_PROV_DISPATCH Flag geöffnet wurde, und alle Zeiger, die an die BCryptSignHash--Funktion übergeben wurden, müssen auf nicht seitenseitigen (oder gesperrten) Speicher verweisen.
Um diese Funktion im Kernelmodus aufzurufen, verwenden Sie Cng.lib, das Teil des Driver Development Kit (DDK) ist. Windows Server 2008 und Windows Vista: Verwenden Sie Ksecdd.lib, um diese Funktion im Kernelmodus aufzurufen.
Anforderungen
Anforderung | Wert |
---|---|
mindestens unterstützte Client- | Windows Vista [Desktop-Apps | UWP-Apps] |
mindestens unterstützte Server- | Windows Server 2008 [Desktop-Apps | UWP-Apps] |
Zielplattform- | Fenster |
Header- | bcrypt.h |
Library | Bcrypt.lib |
DLL- | Bcrypt.dll |