Funzione PFXExportCertStoreEx (wincrypt.h)
La funzione PFXExportCertStoreEx esporta i certificati e, se disponibile, le chiavi private associate dall'archivio certificati a cui si fa riferimento. Questa funzione sostituisce la funzione PfxExportCertStore precedente. Deve essere usato per la sicurezza avanzata delle chiavi private. Il BLOB PFX creato da questa funzione è protetto da una password.
Sintassi
BOOL PFXExportCertStoreEx(
[in] HCERTSTORE hStore,
[in, out] CRYPT_DATA_BLOB *pPFX,
[in] LPCWSTR szPassword,
[in] void *pvPara,
[in] DWORD dwFlags
);
Parametri
[in] hStore
Handle dell'archivio certificati contenente i certificati da esportare.
[in, out] pPFX
Puntatore a una struttura CRYPT_DATA_BLOB per contenere il pacchetto PFX con i certificati e le chiavi esportate. Se pPFX-pbData è NULL, la funzione calcola il numero di byte necessari per il BLOB codificato e restituisce questo valore in pPFX-cbData.>> Quando la funzione viene chiamata con pPFX-pbData che punta a un buffer allocato delle dimensioni necessarie, la funzione copia i byte codificati nel buffer e aggiorna pPFX-cbData>> con la lunghezza di byte codificata.
[in] szPassword
Password stringa usata per crittografare e verificare il pacchetto PFX. Al termine dell'uso della password, cancellare la password dalla memoria chiamando la funzione SecureZeroMemory . Per altre informazioni sulla protezione delle password, vedere Gestione delle password.
[in] pvPara
Questo parametro deve essere NULL se il parametro dwFlags non contiene PKCS12_PROTECT_TO_DOMAIN_SIDS o PKCS12_EXPORT_PBES2_PARAMS. Prima di Windows 8 e Windows Server 2012, pertanto, questo parametro deve essere NULL.
A partire da Windows 8 e Windows Server 2012, se il parametro dwFlags contiene PKCS12_PROTECT_TO_DOMAIN_SIDS, è possibile impostare il parametro pvPara per puntare a un valore NCRYPT_DESCRIPTOR_HANDLE per identificare l'entità Active Directory a cui verrà protetta la password PFX all'interno del BLOB PFX. Attualmente, la password può essere protetta da un utente, un computer o un gruppo di Active Directory. Per altre informazioni sui descrittori di protezione, vedere NCryptCreateProtectionDescriptor.
A partire da Windows 10 1709 (fall Creators update) e Windows Server 2019, se il parametro dwFlags contiene PKCS12_EXPORT_PBES2_PARAMS, è necessario impostare il valore pvPara su un valore PKCS12_EXPORT_PBES2_PARAMS per selezionare l'algoritmo di crittografia basato su password da usare.
[in] dwFlags
I valori del flag possono essere impostati su qualsiasi combinazione dei valori seguenti.
Valore | Significato |
---|---|
|
Le chiavi private vengono esportate e i certificati. |
|
Se viene rilevato un certificato senza chiave privata associata, la funzione restituisce FALSE con l'ultimo errore impostato su CRYPT_E_NOT_FOUND o NTE_NO_KEY. |
|
Se viene rilevato un certificato con una chiave privata non esportabile, la funzione restituisce FALSE e l'ultimo errore impostato su NTE_BAD_KEY, NTE_BAD_KEY_STATE o NTE_PERM. |
|
Esportare tutte le proprietà estese nel certificato.
Windows Server 2003 e Windows XP: Questo valore non è supportato. |
|
Il BLOB PFX contiene una password incorporata che verrà protetta dal descrittore di protezione di Active Directory (AD) a cui punta il parametro pvPara . Se il parametro szPassword non è NULL o vuoto, la password specificata è protetta. Se, tuttavia, il parametro szPassword è NULL o una stringa vuota, viene creata e protetta una password di carattere casuale di 40 (40).
PFXImportCertStore usa il descrittore di protezione specificato per decrittografare la password incorporata, se specificata dall'utente o generata in modo casuale e quindi usa la password per decrittografare il BLOB PFX. Windows 8 e Windows Server 2012: viene avviato il supporto per questo flag. |
|
Esportare usando l'algoritmo di crittografia basato su passowrd specificato dal valore PKCS12_EXPORT_PBES2_PARAMS passato come pvPara.
Windows 10 1709 (fall Creators update) e Windows Server 2019: il supporto per questo flag inizia. |
Valore restituito
Restituisce TRUE (non zero) se la funzione ha esito positivo e FALSE (zero) se la funzione ha esito negativo. Per informazioni sull'errore estese, chiamare GetLastError.
Commenti
A partire da Windows 8 e Windows Server 2012, è possibile proteggere la password PFX in un utente, un computer o un gruppo di Active Directory. Se si sceglie di farlo, ma non si crea una password, verrà selezionata in modo casuale una password temporanea. La password viene crittografata usando l'entità Active Directory e quindi incorporata nel BLOB PFX. Per altre informazioni, vedere il parametro pvPara e il flag di PKCS12_PROTECT_TO_DOMAIN_SIDS .
A partire da Windows 10 1709 (Fall Creators update) e Windows Server 2019, è possibile controllare il numero di iterazioni della funzione hash sulla password eseguita dalla funzione PFXExportCertStoreEx usando la chiave del Registro di sistema seguente. Il valore in questa chiave è di tipo REG_DWORD.
HKEY_LOCAL_MACHINE\Software\Microsoft\Finestre\Currentversion\PFX\PasswordIterationCount
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows XP [app desktop | App UWP] |
Server minimo supportato | Windows Server 2003 [app desktop | App UWP] |
Piattaforma di destinazione | Windows |
Intestazione | wincrypt.h |
Libreria | Crypt32.lib |
DLL | Crypt32.dll |