Funzione BCryptImportKeyPair (bcrypt.h)
La funzione BCryptImportKeyPair
Sintassi
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
);
Parametri
[in] hAlgorithm
Handle del provider di algoritmi per importare la chiave. Questo handle viene ottenuto chiamando la funzione BCryptOpenAlgorithmProvider.
[in, out] hImportKey
Questo parametro non è attualmente utilizzato e deve essere NULL.
[in] pszBlobType
Stringa Unicode con terminazione Null contenente un identificatore che specifica il tipo di BLOB contenuto nel buffer pbInput
Valore | Significato |
---|---|
|
IL BLOB è un BLOB Diffie-Hellman coppia di chiavi pubblica/privata. Il buffer pbInput deve contenere una struttura di BCRYPT_DH_KEY_BLOB immediatamente seguita dai dati chiave. |
|
IL BLOB è un BLOB Diffie-Hellman chiave pubblica. Il buffer pbInput deve contenere una struttura di BCRYPT_DH_KEY_BLOB immediatamente seguita dai dati chiave. |
|
IL BLOB è un BLOB di coppia di chiavi pubblica/privata DSA. Il buffer di pbInput Windows 8: inizia il supporto per BCRYPT_DSA_KEY_BLOB_V2. |
|
IL BLOB è un BLOB di chiave pubblica DSA. Il buffer di pbInput Windows 8: inizia il supporto per BCRYPT_DSA_KEY_BLOB_V2. |
|
IL BLOB è una curva ellittica (ECC) chiave privata. Il buffer pbInput |
|
IL BLOB è una chiave pubblica ECC. Il buffer pbInput |
|
IL BLOB è una chiave pubblica generica di qualsiasi tipo. Il tipo di chiave in questo BLOB è determinato dal membro |
|
IL BLOB è una chiave privata generica di qualsiasi tipo. La chiave privata non contiene necessariamente la chiave pubblica. Il tipo di chiave in questo BLOB è determinato dal membro |
|
IL BLOB è un BLOB di coppia di chiavi pubblica/privata RSA. Il buffer pbInput deve contenere una struttura BCRYPT_RSAKEY_BLOB immediatamente seguita dai dati chiave. |
|
IL BLOB è un BLOB di chiave pubblica RSA. Il buffer pbInput deve contenere una struttura BCRYPT_RSAKEY_BLOB immediatamente seguita dai dati chiave. |
|
IL BLOB è un BLOB di chiave pubblica Diffie-Hellman esportato usando CryptoAPI. Il provider primitivo Microsoft non supporta l'importazione di questo tipo BLOB. |
|
IL BLOB è un BLOB di chiavi private Diffie-Hellman versione 3 versione 3 che contiene una coppia di chiavi pubblica/privata Diffie-Hellman esportata tramite CryptoAPI. |
|
IL BLOB è un BLOB di coppia di chiavi pubblica/privata DSA esportato tramite CryptoAPI. |
|
IL BLOB è un BLOB di chiave pubblica DSA esportato tramite CryptoAPI. Il provider primitivo Microsoft non supporta l'importazione di questo tipo BLOB. |
|
Il BLOB è una chiave privata DSA versione 2 in un formato che può essere importato tramite CryptoAPI. |
|
IL BLOB è un BLOB di coppia di chiavi pubblica/privata RSA esportato tramite CryptoAPI. |
|
IL BLOB è un BLOB di chiave pubblica RSA esportato tramite CryptoAPI. Il provider primitivo Microsoft non supporta l'importazione di questo tipo BLOB. |
[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 BCryptSignHash. Questo handle deve essere rilasciato quando non è più necessario passandolo alla funzione BCryptDestroyKey
[in] pbInput
Indirizzo di un buffer che contiene l' BLOB della chiave
[in] cbInput
Dimensioni, in byte, del buffer pbInput
[in] dwFlags
Set di flag che modificano il comportamento di questa funzione. Può essere zero o il valore seguente.
Valore | Significato |
---|---|
|
Non convalidare la parte pubblica della coppia di chiavi. |
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. |
|
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, BCryptImportKeyPair 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 nella parametro hAlgorithm deve essere stato aperto usando il flag BCRYPT_PROV_DISPATCH e qualsiasi puntatore passato alla funzione BCryptImportKeyPair deve fare riferimento alla 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 |