NCryptDecrypt-Funktion (ncrypt.h)
Die NCryptDecrypt-Funktion entschlüsselt einen Block verschlüsselter Daten.
Syntax
SECURITY_STATUS NCryptDecrypt(
[in] NCRYPT_KEY_HANDLE hKey,
[in] PBYTE pbInput,
[in] DWORD cbInput,
[in, optional] VOID *pPaddingInfo,
[out] PBYTE pbOutput,
[in] DWORD cbOutput,
[out] DWORD *pcbResult,
[in] DWORD dwFlags
);
Parameter
[in] hKey
Das Handle des Schlüssels, der zum Entschlüsseln der Daten verwendet werden soll.
[in] pbInput
Die Adresse eines Puffers, der die zu entschlüsselnden Daten enthält. Der cbInput-Parameter enthält die Größe der zu entschlüsselnden Daten. Weitere Informationen finden Sie in den Hinweisen.
[in] cbInput
Die Anzahl der zu entschlüsselnden Bytes im pbInput-Puffer .
[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.
[out] pbOutput
Die Adresse eines Puffers, der die von dieser Funktion erzeugten entschlüsselten Daten empfängt. Der cbOutput-Parameter enthält die Größe dieses Puffers. Weitere Informationen finden Sie in den Hinweisen.
Wenn dieser Parameter NULL ist, berechnet diese Funktion die größe, die für die entschlüsselten Daten erforderlich ist, 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 Bytes. Dieser Parameter wird ignoriert, wenn der pbOutput-ParameterNULL ist.
[out] pcbResult
Ein Zeiger auf eine DWORD-Variable , die die Anzahl der Bytes empfängt, die in den pbOutput-Puffer kopiert wurden. Wenn pbOutputNULL ist, erhält dieser die Größe in Bytes, die für die entschlüsselten Daten erforderlich ist.
[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 asymmetrischer Schlüssel ist, kann dies einer der folgenden Werte sein.
Wert | Bedeutung |
---|---|
|
Beim Verschlüsseln der Daten wurde kein Abstand verwendet. Der Parameter pPaddingInfo wird nicht verwendet. |
|
Das Schema Optimal Asymmetric Encryption Padding (OAEP) wurde verwendet, wenn die Daten verschlüsselt wurden. Der pPaddingInfo-Parameter ist ein Zeiger auf eine BCRYPT_OAEP_PADDING_INFO-Struktur . |
|
Die Daten wurden mit einer Zufallszahl aufgefüllt, um die Blockgröße zu runden, als die Daten verschlüsselt wurden. Der Parameter pPaddingInfo wird nicht verwendet. |
Der folgende Wert kann für jeden Schlüssel verwendet werden.
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 |
---|---|
|
Die Funktion war erfolgreich. |
|
Der dwFlags-Parameter enthält einen ungültigen Wert. |
|
Die vom cbOutput-Parameter angegebene Größe ist nicht groß genug, um die entschlüsselten Daten aufzunehmen. |
|
Der hKey-Parameter ist ungültig. |
|
Mindestens ein Parameter ist ungültig. |
|
Der durch den hKey-Parameter identifizierte Schlüssel kann nicht für die Entschlüsselung verwendet werden. |
Hinweise
Die Parameter pbInput und pbOutput können auf denselben Puffer verweisen. In diesem Fall führt diese Funktion die entschlüsselte Stelle aus.
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 |