Função PFXExportCertStoreEx (wincrypt.h)
A função PFXExportCertStoreEx exporta os certificados e, se disponível, suas chaves privadas associadas do repositório de certificados referenciado. Essa função substitui a função PfxExportCertStore mais antiga. Ele deve ser usado para sua segurança de chave privada aprimorada. O BLOB PFX criado por essa função é protegido por uma senha.
Sintaxe
BOOL PFXExportCertStoreEx(
[in] HCERTSTORE hStore,
[in, out] CRYPT_DATA_BLOB *pPFX,
[in] LPCWSTR szPassword,
[in] void *pvPara,
[in] DWORD dwFlags
);
Parâmetros
[in] hStore
Identificador do repositório de certificados que contém os certificados a serem exportados.
[in, out] pPFX
Um ponteiro para uma estrutura CRYPT_DATA_BLOB para conter o pacote PFX com os certificados e chaves exportados. Se pPFX-pbData> for NULL, a função calculará o número de bytes necessários para o BLOB codificado e retornará isso em pPFX-cbData.> Quando a função é chamada com pPFX-pbData> apontando para um buffer alocado do tamanho necessário, a função copia os bytes codificados no buffer e atualizapPFX-cbData> com o comprimento do byte de codificação.
[in] szPassword
Senha de cadeia de caracteres usada para criptografar e verificar o pacote PFX. Quando terminar de usar a senha, limpe a senha da memória chamando a função SecureZeroMemory . Para obter mais informações sobre como proteger senhas, consulte Manipulando senhas.
[in] pvPara
Esse parâmetro deverá ser NULL se o parâmetro dwFlags não contiver PKCS12_PROTECT_TO_DOMAIN_SIDS ou PKCS12_EXPORT_PBES2_PARAMS. Antes de Windows 8 e Windows Server 2012, portanto, esse parâmetro deve ser NULL.
Começando com Windows 8 e Windows Server 2012, se o parâmetro dwFlags contiver PKCS12_PROTECT_TO_DOMAIN_SIDS, você poderá definir o parâmetro pvPara para apontar para um valor NCRYPT_DESCRIPTOR_HANDLE para identificar qual entidade de segurança do Active Directory a senha PFX será protegida dentro do BLOB PFX. Atualmente, a senha pode ser protegida para um usuário, computador ou grupo do Active Directory. Para obter mais informações sobre descritores de proteção, consulte NCryptCreateProtectionDescriptor.
A partir do Windows 10 1709 (fall creators update) e do Windows Server 2019, se o parâmetro dwFlags contiver PKCS12_EXPORT_PBES2_PARAMS, você deverá definir o pvPara como um valor PKCS12_EXPORT_PBES2_PARAMS para selecionar o algoritmo de criptografia baseado em senha a ser usado.
[in] dwFlags
Os valores de sinalizador podem ser definidos como qualquer combinação do seguinte.
Valor | Significado |
---|---|
|
As chaves privadas são exportadas, bem como os certificados. |
|
Se um certificado não tiver nenhuma chave privada associada, a função retornará FALSE com o último erro definido como CRYPT_E_NOT_FOUND ou NTE_NO_KEY. |
|
Se for encontrado um certificado que tenha uma chave privada não exportável, a função retornará FALSE e o último erro definido como NTE_BAD_KEY, NTE_BAD_KEY_STATE ou NTE_PERM. |
|
Exporte todas as propriedades estendidas no certificado.
Windows Server 2003 e Windows XP: Não há suporte para esse valor. |
|
O BLOB PFX contém uma senha inserida que será protegida para o descritor de proteção do AD (Active Directory) apontado pelo parâmetro pvPara . Se o parâmetro szPassword não for NULL ou vazio, a senha especificada será protegida. Se, no entanto, o parâmetro szPassword for NULL ou uma cadeia de caracteres vazia, uma senha de caractere aleatória de quarenta (40) será criada e protegida.
PFXImportCertStore usa o descritor de proteção especificado para descriptografar a senha inserida, especificada pelo usuário ou gerada aleatoriamente e, em seguida, usa a senha para descriptografar o BLOB PFX. Windows 8 e Windows Server 2012: o suporte para esse sinalizador começa. |
|
Exporte usando o algoritmo de criptografia baseado em passowrd especificado pelo valor PKCS12_EXPORT_PBES2_PARAMS passado como pvPara.
Windows 10 1709 (fall creators update) e Windows Server 2019: o suporte para esse sinalizador começa. |
Retornar valor
Retornará TRUE (diferente de zero) se a função for bem-sucedida e FALSE (zero) se a função falhar. Para obter informações de erro estendidas, chame GetLastError.
Comentários
Começando com Windows 8 e Windows Server 2012, você pode proteger a senha PFX para um usuário, computador ou grupo do Active Directory. Se você optar por fazer isso, mas não criar uma senha, uma senha temporária será selecionada aleatoriamente. A senha é criptografada usando a entidade de segurança do Active Directory e inserida no BLOB PFX. Para obter mais informações, consulte o parâmetro pvPara e o sinalizador PKCS12_PROTECT_TO_DOMAIN_SIDS .
A partir do Windows 10 1709 (fall creators update) e do Windows Server 2019, você pode controlar o número de iterações da função de hash sobre a senha feita pela função PFXExportCertStoreEx usando a chave do Registro a seguir. O valor nessa chave é do tipo REG_DWORD.
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\Currentversion\PFX\PasswordIterationCount
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows XP [aplicativos da área de trabalho | aplicativos UWP] |
Servidor mínimo com suporte | Windows Server 2003 [aplicativos da área de trabalho | Aplicativos UWP] |
Plataforma de Destino | Windows |
Cabeçalho | wincrypt.h |
Biblioteca | Crypt32.lib |
DLL | Crypt32.dll |