Funzione CryptExportPKCS8 (wincrypt.h)
[La funzione CryptExportPKCS8 non è più disponibile per l'uso a partire da Windows Server 2008 e Windows Vista. Usare invece la funzione PFXExportCertStoreEx .]
La funzione CryptExportPKCS8 esporta la chiave privata in formato PKCS #8. La funzione viene sostituita da CryptExportPKCS8Ex, che può anche essere modificata o non disponibile nelle versioni successive.
Sintassi
BOOL CryptExportPKCS8(
[in] HCRYPTPROV hCryptProv,
[in] DWORD dwKeySpec,
[in] LPSTR pszPrivateKeyObjId,
[in] DWORD dwFlags,
[in, optional] void *pvAuxInfo,
[out, optional] BYTE *pbPrivateKeyBlob,
[in, out] DWORD *pcbPrivateKeyBlob
);
Parametri
[in] hCryptProv
Variabile HCRYPTPROV che contiene il provider di servizi di crittografia (CSP). Si tratta di un handle per il CSP ottenuto chiamando CryptAcquireContext.
[in] dwKeySpec
Variabile DWORD che contiene la specifica della chiave. Per il provider predefinito vengono definiti i valori dwKeySpec seguenti.
Valore | Significato |
---|---|
|
Chiavi usate per crittografare/decrittografare le chiavi di sessione. |
|
Chiavi usate per creare e verificare le firme digitali. |
[in] pszPrivateKeyObjId
Variabile LPSTR che contiene l'identificatore dell'oggetto chiave privata (OID).
[in] dwFlags
Questo parametro deve essere zero se pbPrivateKeyBlob è NULL e 0x8000 in caso contrario.
[in, optional] pvAuxInfo
Questo parametro deve essere impostato su NULL.
[out, optional] pbPrivateKeyBlob
Puntatore a una matrice di strutture BYTE per ricevere la chiave privata da esportare.
La chiave privata conterrà le informazioni contenute in un tipo PKCS #8 PrivateKeyInfo Abstract Syntax Notation One (ASN.1) disponibile nello standard PKCS #8.
Ai fini dell'allocazione di memoria, è possibile ottenere le dimensioni della chiave privata da esportare impostando questo parametro su NULL. Per altre informazioni, vedere Recupero di dati di lunghezza sconosciuta.
[in, out] pcbPrivateKeyBlob
Puntatore a un DWORD che può contenere, in input, le dimensioni, in byte, dell'allocazione di memoria necessaria per contenere pbPrivateKeyBlob. Se pbPrivateKeyBlob è NULL, questo parametro restituirà le dimensioni dell'allocazione di memoria necessaria per una seconda chiamata alla funzione. Per altre informazioni, vedere Recupero di dati di lunghezza sconosciuta.
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 seguenti sono specifici di questa funzione.
Codice restituito | Descrizione |
---|---|
|
Impossibile trovare una funzione di esportazione che può essere installata o registrata. |
|
Se il buffer specificato dal parametro pbPrivateKeyBlob 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 il parametro pcbPrivateKeyBlob . |
Se la funzione ha esito negativo, GetLastError potrebbe restituire un errore di codifica/decodifica ASN.1. Per informazioni su questi errori, vedere Codifica ASN.1/Decodifica dei valori restituiti.
Commenti
Questa funzione è supportata solo per le chiavi asimmetriche.
Requisiti
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 | Crypt32.lib |
DLL | Crypt32.dll |