Funzione BCryptImportKey (bcrypt.h)
La funzione BCryptImportKey
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 della chiave necessaria per annullare il wrapping 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
[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
Questa memoria può essere liberata solo dopo che l'handle della chiave phKey
[in] cbKeyObject
Dimensioni, in byte, del buffer pbKeyObject
[in] pbInput
Indirizzo di un buffer contenente il BLOB della chiave da importare. Il parametro
[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 solo, quanto segue.
Codice restituito | Descrizione |
---|---|
|
La funzione ha avuto esito positivo. |
|
Le dimensioni dell'oggetto chiave specificato 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 |
Osservazioni
A seconda delle modalità del processore supportate da un provider, è possibile chiamare BCryptImportKey dalla modalità utente o dal 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 nella parametro hAlgorithm deve essere stato aperto usando il flag di BCRYPT_PROV_DISPATCH e qualsiasi puntatore passato alla funzione BCryptImportKey deve 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.
Fabbisogno
Requisito | Valore |
---|---|
client minimo supportato | Windows Vista [app desktop | App UWP] |
server minimo supportato | Windows Server 2008 [app desktop | App UWP] |
piattaforma di destinazione | Finestre |
intestazione |
bcrypt.h |
libreria |
Bcrypt.lib |
dll | Bcrypt.dll |