Funzione BCryptImportKeyPair (bcrypt.h)
La funzione BCryptImportKeyPair importa una coppia di chiavi pubblica/privata da un BLOB di chiavi. La funzione BCryptImportKey viene usata per importare una coppia di chiavi simmetriche .
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 . Può trattarsi di uno dei valori seguenti.
Valore | Significato |
---|---|
|
Il BLOB è un BLOB Diffie-Hellman COPPIA di chiavi pubblica/privata. Il buffer pbInput deve contenere una struttura BCRYPT_DH_KEY_BLOB immediatamente seguita dai dati chiave. |
|
IL BLOB è un BLOB a chiave pubblica Diffie-Hellman. Il buffer pbInput deve contenere una struttura BCRYPT_DH_KEY_BLOB immediatamente seguita dai dati chiave. |
|
Il BLOB è un BLOB di coppia di chiavi pubblica/privata DSA. Il buffer pbInput deve contenere una struttura BCRYPT_DSA_KEY_BLOB o BCRYPT_DSA_KEY_BLOB_V2 immediatamente seguita dai dati chiave. BCRYPT_DSA_KEY_BLOB viene usato per le lunghezze di chiave da 512 a 1024 bit. BCRYPT_DSA_KEY_BLOB_V2 viene usato per le lunghezze di chiave che superano i 1024 bit, ma sono minori o uguali a 3072 bit.
Windows 8: inizia il supporto per BCRYPT_DSA_KEY_BLOB_V2. |
|
IL BLOB è un BLOB di chiave pubblica DSA. Il buffer pbInput deve contenere una struttura BCRYPT_DSA_KEY_BLOB o BCRYPT_DSA_KEY_BLOB_V2 immediatamente seguita dai dati chiave. BCRYPT_DSA_KEY_BLOB viene usato per le lunghezze di chiave da 512 a 1024 bit. BCRYPT_DSA_KEY_BLOB_V2 viene usato per le lunghezze di chiave che superano i 1024 bit, ma sono minori o uguali a 3072 bit.
Windows 8: inizia il supporto per BCRYPT_DSA_KEY_BLOB_V2. |
|
IL BLOB è una chiave privata ecc (elliptic curve cryptography). Il buffer pbInput deve contenere una struttura BCRYPT_ECCKEY_BLOB immediatamente seguita dai dati chiave. |
|
IL BLOB è una chiave pubblica ECC. Il buffer pbInput deve contenere una struttura BCRYPT_ECCKEY_BLOB immediatamente seguita dai dati chiave. |
|
IL BLOB è una chiave pubblica generica di qualsiasi tipo. Il tipo di chiave in questo BLOB è determinato dal membro Magic della struttura BCRYPT_KEY_BLOB . |
|
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 Magic della struttura BCRYPT_KEY_BLOB . |
|
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 tramite CryptoAPI. Il provider primitivo Microsoft non supporta l'importazione di questo tipo BLOB. |
|
IL BLOB è un BLOB di chiave privata Diffie-Hellman versione 3 legacy 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 il BLOB della chiave da importare. Il parametro cbInput contiene le dimensioni di questo buffer. Il parametro pszBlobType specifica il tipo di CHIAVE che contiene questo buffer.
[in] cbInput
Dimensione, 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, a titolo esemplificativo, 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 non supporta il tipo BLOB specificato dal parametro pszBlobType . |
Commenti
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 nel parametro hAlgorithm deve essere stato aperto usando il flag BCRYPT_PROV_DISPATCH e tutti i puntatori passati alla funzione BCryptImportKeyPair devono fare riferimento a memoria non di paging (o bloccata).
Per chiamare questa funzione in modalità kernel, usare Cng.lib, che fa parte di 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