BCryptImportKeyPair-Funktion (bcrypt.h)
Die BCryptImportKeyPair-Funktion importiert ein öffentliches/privates Schlüsselpaar aus einem Schlüssel BLOB-. Die BCryptImportKey--Funktion wird zum Importieren eines symmetrischen Schlüsselpaars verwendet.
Syntax
NTSTATUS BCryptImportKeyPair(
[in] BCRYPT_ALG_HANDLE hAlgorithm,
[in, out] BCRYPT_KEY_HANDLE hImportKey,
[in] LPCWSTR pszBlobType,
[out] BCRYPT_KEY_HANDLE *phKey,
[in] PUCHAR pbInput,
[in] ULONG cbInput,
[in] ULONG dwFlags
);
Parameter
[in] hAlgorithm
Das Handle des Algorithmusanbieters zum Importieren des Schlüssels. Dieses Handle wird durch Aufrufen der BCryptOpenAlgorithmProvider-Funktion abgerufen.
[in, out] hImportKey
Dieser Parameter wird derzeit nicht verwendet und sollte NULL-sein.
[in] pszBlobType
Eine mit Null beendete Unicode-Zeichenfolge, die einen Bezeichner enthält, der den Typ des BLOB angibt, der im pbInput- Puffer enthalten ist. Dies kann einer der folgenden Werte sein:
Wert | Bedeutung |
---|---|
|
Das BLOB ist ein Diffie-Hellman BLOB für öffentliche/private Schlüssel. Der pbInput- Puffer muss eine BCRYPT_DH_KEY_BLOB Struktur enthalten, die unmittelbar auf die Schlüsseldaten folgt. |
|
Das BLOB ist ein Diffie-Hellman öffentlichen SCHLÜSSEL-BLOB-. Der pbInput- Puffer muss eine BCRYPT_DH_KEY_BLOB Struktur enthalten, die unmittelbar auf die Schlüsseldaten folgt. |
|
Das BLOB ist ein BLOB für öffentliche/private DSA-Schlüssel. Der pbInput- Puffer muss eine BCRYPT_DSA_KEY_BLOB- oder BCRYPT_DSA_KEY_BLOB_V2 Struktur enthalten, die unmittelbar auf die Schlüsseldaten folgt.
BCRYPT_DSA_KEY_BLOB wird für Schlüssellängen von 512 bis 1024 Bit verwendet.
BCRYPT_DSA_KEY_BLOB_V2 wird für Schlüssellängen verwendet, die 1024 Bit überschreiten, aber kleiner oder gleich 3072 Bit sind.
Windows 8: Support für BCRYPT_DSA_KEY_BLOB_V2 beginnt. |
|
Das BLOB ist ein öffentliches DSA-SCHLÜSSEL-BLOB. Der pbInput- Puffer muss eine BCRYPT_DSA_KEY_BLOB- oder BCRYPT_DSA_KEY_BLOB_V2 Struktur enthalten, die unmittelbar auf die Schlüsseldaten folgt.
BCRYPT_DSA_KEY_BLOB wird für Schlüssellängen von 512 bis 1024 Bit verwendet.
BCRYPT_DSA_KEY_BLOB_V2 wird für Schlüssellängen verwendet, die 1024 Bit überschreiten, aber kleiner oder gleich 3072 Bit sind.
Windows 8: Support für BCRYPT_DSA_KEY_BLOB_V2 beginnt. |
|
Das BLOB ist eine elliptische Kurvenkryptografie (ECC) privaten Schlüssel. Der pbInput- Puffer muss eine BCRYPT_ECCKEY_BLOB Struktur enthalten, die unmittelbar auf die Schlüsseldaten folgt. |
|
Das BLOB ist ein öffentlicher ECC-Schlüssel. Der pbInput- Puffer muss eine BCRYPT_ECCKEY_BLOB Struktur enthalten, die unmittelbar auf die Schlüsseldaten folgt. |
|
Das BLOB ist ein generischer öffentlichen Schlüssel eines beliebigen Typs. Der Schlüsseltyp in diesem BLOB wird durch das Magic Member der BCRYPT_KEY_BLOB-Struktur bestimmt. |
|
Das BLOB ist ein allgemeiner privater Schlüssel eines beliebigen Typs. Der private Schlüssel enthält nicht unbedingt den öffentlichen Schlüssel. Der Schlüsseltyp in diesem BLOB wird durch das Magic Member der BCRYPT_KEY_BLOB-Struktur bestimmt. |
|
Das BLOB ist ein BLOB mit öffentlichem/privatem RSA-Schlüsselpaar. Der pbInput- Puffer muss eine BCRYPT_RSAKEY_BLOB Struktur enthalten, die unmittelbar auf die Schlüsseldaten folgt. |
|
Das BLOB ist ein ÖFFENTLICHEs RSA-SCHLÜSSEL-BLOB. Der pbInput- Puffer muss eine BCRYPT_RSAKEY_BLOB Struktur enthalten, die unmittelbar auf die Schlüsseldaten folgt. |
|
Das BLOB ist ein Diffie-Hellman öffentlichen Schlüssel-BLOB, das mithilfe CryptoAPIexportiert wurde. Der Microsoft-Grundtypanbieter unterstützt das Importieren dieses BLOB-Typs nicht. |
|
The BLOB is a legacy Diffie-Hellman Version 3 Private Key BLOB that contains a Diffie-Hellman public/private key pair that was export by using CryptoAPI. |
|
Das BLOB ist ein ÖFFENTLICHEs/privates DSA-Schlüsselpaar, das mithilfe von CryptoAPI exportiert wurde. |
|
Das BLOB ist ein öffentliches DSA-BLOB, das mithilfe von CryptoAPI exportiert wurde. Der Microsoft-Grundtypanbieter unterstützt das Importieren dieses BLOB-Typs nicht. |
|
Das BLOB ist ein privater DSA Version 2-Schlüssel in einem Formular, das mithilfe von CryptoAPI importiert werden kann. |
|
Das BLOB ist ein BLOB mit öffentlichem/privatem RSA-Schlüsselpaar, das mithilfe von CryptoAPI exportiert wurde. |
|
Das BLOB ist ein ÖFFENTLICHEs RSA-BLOB, das mithilfe von CryptoAPI exportiert wurde. Der Microsoft-Grundtypanbieter unterstützt das Importieren dieses BLOB-Typs nicht. |
[out] phKey
Ein Zeiger auf eine BCRYPT_KEY_HANDLE, die das Handle des importierten Schlüssels empfängt. Dieses Handle wird in nachfolgenden Funktionen verwendet, die einen Schlüssel erfordern, z. B. BCryptSignHash. Dieser Handle muss losgelassen werden, wenn es nicht mehr benötigt wird, indem es an die BCryptDestroyKey--Funktion übergeben wird.
[in] pbInput
Die Adresse eines Puffers, der den zu importierenden Schlüssel-BLOB- enthält. Der cbInput Parameter enthält die Größe dieses Puffers. Der pszBlobType Parameter gibt den Typ des Schlüssel-BLOB an, den dieser Puffer enthält.
[in] cbInput
Die Größe des pbInput- Puffers in Byte.
[in] dwFlags
Eine Reihe von Flags, die das Verhalten dieser Funktion ändern. Dies kann null oder der folgende Wert sein.
Wert | Bedeutung |
---|---|
|
Überprüfen Sie nicht den öffentlichen Teil des Schlüsselpaars. |
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. |
|
Der Algorithmushandle im hAlgorithm Parameter ist ungültig. |
|
Mindestens ein Parameter ist ungültig. |
|
Der vom hAlgorithm Parameter angegebene Algorithmusanbieter unterstützt nicht den BLOB-Typ, der durch den pszBlobType Parameter angegeben wurde. |
Bemerkungen
Je nachdem, welche Prozessormodi ein Anbieter unterstützt, kann BCryptImportKeyPair 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 hAlgorithm Parameter bereitgestellte Handle mithilfe des BCRYPT_PROV_DISPATCH-Flags geöffnet worden sein, und alle Zeiger, die an die BCryptImportKeyPair--Funktion übergeben werden, 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 |