Funzione BCryptImportKey (bcrypt.h)
La funzione BCryptImportKey importa una chiave simmetrica da un BLOB di chiavi. La funzione BCryptImportKeyPair viene usata per importare una coppia di chiavi pubblica/privata.
Sintassi
NTSTATUS BCryptImportKey(
[in] BCRYPT_ALG_HANDLE hAlgorithm,
[in, optional] BCRYPT_KEY_HANDLE hImportKey,
[in] LPCWSTR pszBlobType,
[out] BCRYPT_KEY_HANDLE *phKey,
[out, optional] PUCHAR pbKeyObject,
[in] ULONG cbKeyObject,
[in] PUCHAR pbInput,
[in] ULONG cbInput,
[in] ULONG dwFlags
);
Parametri
[in] hAlgorithm
Handle del provider di algoritmi per importare la chiave. Questo handle viene ottenuto chiamando la funzione BCryptOpenAlgorithmProvider .
[in, optional] hImportKey
Handle della chiave di crittografia necessaria per annullare ilrap del BLOB della chiave nel parametro pbInput .
Windows Server 2008 e Windows Vista: Questo parametro non viene usato e deve essere impostato su NULL.
[in] pszBlobType
Stringa Unicode con terminazione null contenente un identificatore che specifica il tipo di BLOB contenuto nel buffer pbInput . Questo può essere uno dei valori seguenti.
Valore | Significato |
---|---|
|
Importare una chiave simmetrica da un BLOB di chiave AES con wrapping. Il parametro hImportKey deve fare riferimento a un puntatore BCRYPT_KEY_HANDLE valido alla chiave di crittografia della chiave.
Windows Server 2008 e Windows Vista: Questo tipo BLOB non è supportato. |
|
Importare una chiave simmetrica da un BLOB di dati. Il parametro pbInput è un puntatore a una struttura BCRYPT_KEY_DATA_BLOB_HEADER immediatamente seguita dal BLOB della chiave. |
|
Importare un BLOB della chiave simmetrica in un formato specifico per un singolo provider di servizi di rete. I BLOB opachi non sono trasferiscibili e devono essere importati usando lo stesso CSP che ha generato il BLOB. I BLOB opachi devono essere usati solo per il trasferimento interprocesso delle chiavi e non sono adatti per essere persistenti e letti in tutte le versioni di un provider. |
[out] phKey
Puntatore a un BCRYPT_KEY_HANDLE che riceve l'handle della chiave importata. Questo handle viene usato nelle funzioni successive che richiedono una chiave, ad esempio BCryptEncrypt. Questo handle deve essere rilasciato quando non è più necessario passandolo alla funzione BCryptDestroyKey .
[out, optional] pbKeyObject
Puntatore a un buffer che riceve l'oggetto chiave importato. Il parametro cbKeyObject contiene le dimensioni di questo buffer. Le dimensioni necessarie di questo buffer possono essere ottenute chiamando la funzione BCryptGetProperty per ottenere la proprietà BCRYPT_OBJECT_LENGTH . In questo modo verranno fornite le dimensioni dell'oggetto chiave per l'algoritmo specificato.
Questa memoria può essere liberata solo dopo che l'handle di chiavi phKey viene eliminato.
[in] cbKeyObject
Dimensioni, in byte, del buffer pbKeyObject .
[in] pbInput
Indirizzo di un buffer che contiene il BLOB della chiave da importare. Il parametro cbInput contiene le dimensioni di questo buffer. Il parametro pszBlobType specifica il tipo di BLOB della chiave contenente questo buffer.
[in] cbInput
Dimensioni, in byte, del buffer pbInput .
[in] dwFlags
Set di flag che modificano il comportamento di questa funzione. Non sono attualmente definiti flag, quindi questo parametro deve essere zero.
Valore restituito
Restituisce un codice di stato che indica l'esito positivo o negativo della funzione.
I codici restituiti possibili includono, ma non sono limitati a, i seguenti.
Codice restituito | Descrizione |
---|---|
|
La funzione ha avuto esito positivo. |
|
Le dimensioni dell'oggetto chiave specificate dal parametro cbKeyObject non sono sufficienti per contenere l'oggetto chiave. |
|
L'handle dell'algoritmo nel parametro hAlgorithm non è valido. |
|
Uno o più parametri non sono validi. |
|
Il provider di algoritmi specificato dal parametro hAlgorithm non supporta il tipo BLOB specificato dal parametro pszBlobType . |
Commenti
A seconda delle modalità di processore supportate da un provider, BCryptImportKey può essere chiamato dalla modalità utente o dalla modalità kernel. I chiamanti in modalità kernel possono essere eseguiti in PASSIVE_LEVELIRQL o DISPATCH_LEVEL IRQL. Se il livello IRQL corrente è DISPATCH_LEVEL, l'handle fornito nel parametro hAlgorithm deve essere stato aperto usando il flag BCRYPT_PROV_DISPATCH e tutti i puntatori passati alla funzione BCryptImportKey devono fare riferimento a memoria non di pagina (o bloccata).
Per chiamare questa funzione in modalità kernel, usare Cng.lib, che fa parte del Driver Development Kit (DDK). Windows Server 2008 e Windows Vista: Per chiamare questa funzione in modalità kernel, usare Ksecdd.lib.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows Vista [app desktop | App UWP] |
Server minimo supportato | Windows Server 2008 [app desktop | App UWP] |
Piattaforma di destinazione | Windows |
Intestazione | bcrypt.h |
Libreria | Bcrypt.lib |
DLL | Bcrypt.dll |
Vedi anche
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per