Funzione CryptGetKeyParam (wincrypt.h)
Sintassi
BOOL CryptGetKeyParam(
[in] HCRYPTKEY hKey,
[in] DWORD dwParam,
[out] BYTE *pbData,
[in, out] DWORD *pdwDataLen,
[in] DWORD dwFlags
);
Parametri
[in] hKey
Handle della chiave sottoposta a query.
[in] dwParam
Specifica il tipo di query eseguita.
Per tutti i tipi di chiavi, questo parametro può contenere uno dei valori seguenti.
Valore | Significato |
---|---|
|
Recuperare l'algoritmo chiave. Il parametro pbData è un puntatore a un valore ALG_ID che riceve l'identificatore dell'algoritmo specificato al momento della creazione della chiave.
Quando AT_KEYEXCHANGE o AT_SIGNATURE viene specificato per il parametro Algid della funzione CryptGenKey , gli identificatori dell'algoritmo usati per generare la chiave dipendono dal provider usato. Per altre informazioni, vedere ALG_ID. |
|
Se viene specificata una chiave di sessione dal parametro hKey , recuperare la lunghezza del blocco della crittografia della chiave. Il parametro pbData è un puntatore a un valore DWORD che riceve la lunghezza del blocco, in bit. Per le crittografia di flusso, questo valore è sempre zero.
Se una coppia di chiavi pubblica/privata è specificata da hKey, recuperare la granularità della crittografia della coppia di chiavi. Il parametro pbData è un puntatore a un valore DWORD che riceve la granularità della crittografia, in bit. Ad esempio, il provider di crittografia microsoft base genera coppie chiave RSA a 512 bit, quindi viene restituito un valore pari a 512 per queste chiavi. Se l'algoritmo di chiave pubblica non supporta la crittografia, il valore recuperato non è definito. |
|
pbData è l'indirizzo di un buffer che riceve il certificato X.509 codificato tramite Distinguished Encoding Rules (DER). La chiave pubblica nel certificato deve corrispondere alla firma o alla chiave di scambio corrispondente. |
|
Questo valore non viene utilizzato. |
|
Recuperare la lunghezza effettiva della chiave. Il parametro pbData è un puntatore a un valore DWORD che riceve la lunghezza della chiave, in bit. KP_KEYLEN può essere usato per ottenere la lunghezza di qualsiasi tipo di chiave. I provider di servizi di crittografia Microsoft restituiscono una lunghezza di chiave di 64 bit per CALG_DES, 128 bit per CALG_3DES_112 e 192 bit per CALG_3DES. Queste lunghezze sono diverse dalle lunghezze restituite quando si enumera gli algoritmi con il valore dwParam della funzione CryptGetProvParam impostato su PP_ENUMALGS. La lunghezza restituita da questa chiamata è la dimensione effettiva della chiave, inclusi i bit di parità inclusi nella chiave.
I provider di servizi di configurazione Microsoft che supportano l'CALG_CYLINK_MEK ALG_ID restituiscono 64 bit per tale algoritmo. CALG_CYLINK_MEK è una chiave a 40 bit, ma ha parità e bit di chiave zero per rendere la lunghezza della chiave 64 bit. |
|
Recuperare il valore salt della chiave. Il parametro pbData è un puntatore a una matrice BYTE che riceve il valore salt in forma little-endian . Le dimensioni del valore salt variano a seconda del CSP e dell'algoritmo usato. I valori salt non si applicano alle coppie di chiavi pubbliche/private. |
|
Recuperare le autorizzazioni delle chiavi. Il parametro pbData è un puntatore a un valore DWORD che riceve i flag di autorizzazione per la chiave.
Gli identificatori di autorizzazione seguenti sono attualmente definiti. Le autorizzazioni chiave possono essere zero o una combinazione di uno o più dei valori seguenti.
|
Se viene specificata una chiave DSS (Digital Signature Standard ) dal parametro hKey , il valore dwParam può essere impostato anche su uno dei valori seguenti.
Se viene specificata una chiave di sessione di crittografia a blocchi dal parametro hKey, il valore dwParam può essere impostato anche su uno dei valori seguenti.
Valore | Significato |
---|---|
|
Recuperare la lunghezza effettiva della chiave di una chiave RC2. Il parametro pbData è un puntatore a un valore DWORD che riceve la lunghezza effettiva della chiave. |
|
Recuperare il vettore di inizializzazione della chiave. Il parametro pbData è un puntatore a una matrice BYTE che riceve il vettore di inizializzazione. Le dimensioni di questa matrice sono le dimensioni del blocco, in byte. Ad esempio, se la lunghezza del blocco è di 64 bit, il vettore di inizializzazione è costituito da 8 byte. |
|
Recuperare la modalità di riempimento. Il parametro pbData è un puntatore a un valore DWORD che riceve un identificatore numerico che identifica il metodo di riempimento utilizzato dalla crittografia. Può trattarsi di uno dei valori seguenti.
|
|
Recuperare la modalità di crittografia. Il parametro pbData è un puntatore a un valore DWORD che riceve un identificatore della modalità di crittografia. Per altre informazioni sulle modalità di crittografia, vedere Crittografia dei dati e Decrittografia.
Gli identificatori della modalità di crittografia seguenti sono attualmente definiti.
|
|
Recuperare il numero di bit da inserire. Il parametro pbData è un puntatore a un valore DWORD che riceve il numero di bit elaborati per ciclo quando vengono utilizzate le modalità di crittografia OFB o TLS. |
Se un algoritmo Diffie-Hellman o una chiave DSA ( Digital Signature Algorithm ) viene specificata da hKey, il valore dwParam può essere impostato anche sul valore seguente.
Valore | Significato |
---|---|
|
Verifica i parametri di un algoritmo Diffie-Hellman o di una chiave DSA. Il parametro pbData non viene usato e il valore a cui punta pdwDataLen riceve zero.
Questa funzione restituisce un valore diverso da zero se i parametri chiave sono validi o zero in caso contrario. |
|
Questo valore non viene utilizzato.
Windows Vista, Windows Server 2003 e Windows XP: Recuperare il valore del contratto segreto da una chiave dell'algoritmo Diffie-Hellman importata di tipo CALG_AGREEDKEY_ANY. Il parametro pbData è l'indirizzo di un buffer che riceve il valore del contratto segreto, in formato little-endian. Questo buffer deve avere la stessa lunghezza della chiave. Il parametro dwFlags deve essere impostato su 0xF42A19B6. Questa proprietà può essere recuperata solo da un thread in esecuzione nell'account di sistema locale. Questa proprietà è disponibile per l'uso nei sistemi operativi elencati in precedenza. È possibile che in versioni successive sia stata modificata o non sia più disponibile. |
Se un certificato viene specificato da hKey, il valore dwParam può essere impostato anche sul valore seguente.
[out] pbData
Puntatore a un buffer che riceve i dati. La forma di questi dati dipende dal valore di dwParam.
Se le dimensioni di questo buffer non sono note, è possibile recuperare le dimensioni necessarie in fase di esecuzione passando NULL per questo parametro e impostando il valore a cui punta pdwDataLen su zero. Questa funzione inserisce le dimensioni necessarie del buffer, in byte, nel valore a cui punta pdwDataLen. Per altre informazioni, vedere Recupero di dati di lunghezza sconosciuta.
[in, out] pdwDataLen
Puntatore a un valore DWORD che, nella voce, contiene le dimensioni, in byte, del buffer a cui punta il parametro pbData . Quando la funzione viene restituita, il valore DWORD contiene il numero di byte archiviati nel buffer.
[in] dwFlags
Questo parametro è riservato per uso futuro e deve essere impostato su zero.
Valore restituito
Se la funzione ha esito positivo, la funzione restituisce un valore diverso da zero.
Se la funzione ha esito negativo, restituisce zero. Per informazioni sugli errori estesi, chiamare GetLastError.
I codici di errore preceduti da "NTE" vengono generati dal CSP specifico usato. Di seguito sono riportati alcuni possibili codici di errore.
Codice restituito | Descrizione |
---|---|
|
Uno dei parametri specifica un handle non valido. |
|
Uno dei parametri contiene un valore non valido. Si tratta più spesso di un puntatore che non è valido. |
|
Se il buffer specificato dal parametro pbData non è sufficientemente grande da contenere i dati restituiti, la funzione imposta il codice ERROR_MORE_DATA e archivia le dimensioni del buffer necessarie, in byte, nella variabile a cui punta pdwDataLen. |
|
Il parametro dwFlags è diverso da zero. |
|
La chiave specificata dal parametro hKey non è valida. |
|
Il parametro dwParam specifica un numero di valore sconosciuto. |
|
Impossibile trovare il contesto CSP specificato al momento della creazione della chiave. |
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows XP [solo app desktop] |
Server minimo supportato | Windows Server 2003 [solo app desktop] |
Piattaforma di destinazione | Windows |
Intestazione | wincrypt.h |
Libreria | Advapi32.lib |
DLL | Advapi32.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