Funzione BCryptGenerateKeyPair (bcrypt.h)
La funzione BCryptGenerateKeyPair crea una coppia di chiavi pubblica/privata vuota. Dopo aver creato una chiave usando questa funzione, è possibile usare la funzione BCryptSetProperty per impostare le relative proprietà; tuttavia, la chiave non può essere usata finché non viene chiamata la funzione BCryptFinalizeKeyPair .
Sintassi
NTSTATUS BCryptGenerateKeyPair(
[in, out] BCRYPT_ALG_HANDLE hAlgorithm,
[out] BCRYPT_KEY_HANDLE *phKey,
[in] ULONG dwLength,
[in] ULONG dwFlags
);
Parametri
[in, out] hAlgorithm
Handle di un provider di algoritmi che supporta la firma, la crittografia asimmetrica o il contratto di chiave. Questo handle deve essere stato creato usando la funzione BCryptOpenAlgorithmProvider .
[out] phKey
Puntatore a un BCRYPT_KEY_HANDLE che riceve l'handle della chiave. 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 .
[in] dwLength
Lunghezza, espressa in bit, della chiave. I provider di algoritmi hanno restrizioni di dimensioni chiave diverse per ogni algoritmo asimmetrico standard.
[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. |
|
L'handle dell'algoritmo nel parametro hAlgorithm non è valido. |
|
Uno o più parametri non sono validi. |
|
Il provider specificato non supporta la crittografia della chiave asimmetrica. |
Commenti
A seconda delle modalità di processore supportate da un provider, BCryptGenerateKeyPair 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 BCryptGenerateKeyPair devono fare riferimento alla memoria non paginata (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