Função CryptExportPKCS8Ex (wincrypt.h)

[A função CryptExportPKCS8Ex não está mais disponível para uso desde o Windows Server 2008 e o Windows Vista. Em vez disso, use a função PFXExportCertStoreEx .]

A função CryptExportPKCS8Ex exporta a chave privada no formato PKCS nº 8. Essa função não tem nenhuma biblioteca de importação associada. Você deve usar as funções LoadLibrary e GetProcAddress para vincular dinamicamente a Crypt32.dll.

Sintaxe

BOOL CryptExportPKCS8Ex(
  [in]            CRYPT_PKCS8_EXPORT_PARAMS *psExportParams,
  [in]            DWORD                     dwFlags,
  [in, optional]  void                      *pvAuxInfo,
  [out, optional] BYTE                      *pbPrivateKeyBlob,
  [in, out]       DWORD                     *pcbPrivateKeyBlob
);

Parâmetros

[in] psExportParams

Um ponteiro para uma estrutura CRYPT_PKCS8_EXPORT_PARAMS que contém informações sobre a chave a ser exportada.

[in] dwFlags

Esse parâmetro deverá ser zero se pbPrivateKeyBlob for NULL e 0x8000 caso contrário.

[in, optional] pvAuxInfo

Esse parâmetro deve ser NULL.

[out, optional] pbPrivateKeyBlob

Um ponteiro para uma matriz de estruturas BYTE para receber a chave privada a ser exportada.

A chave privada conterá as informações em um tipo ASN.1 (PrivateKeyInfo Abstract Syntax Notation One ) PKCS nº 8 encontrado no padrão PKCS nº 8.

Para fins de alocação de memória, você pode obter o tamanho da chave privada a ser exportada definindo esse parâmetro como NULL. Para obter mais informações, consulte Recuperando dados de comprimento desconhecido.

[in, out] pcbPrivateKeyBlob

Um ponteiro para um DWORD que pode conter, na entrada, o tamanho, em bytes, da alocação de memória necessária para conter o pbPrivateKeyBlob. Se pbPrivateKeyBlob for NULL, esse parâmetro retornará o tamanho da alocação de memória necessária para uma segunda chamada para a função. Para obter mais informações, consulte Recuperando dados de comprimento desconhecido.

Retornar valor

Se a função for bem-sucedida, a função retornará diferente de zero (TRUE).

Se a função falhar, ela retornará zero (FALSE). Para obter informações de erro estendidas, chame GetLastError.

Os códigos de erro a seguir são específicos para essa função.

Código de retorno Descrição
ERROR_UNSUPPORTED_TYPE
Não foi possível encontrar uma função de exportação que possa ser instalada ou registrada.
ERROR_MORE_DATA
Se o buffer especificado pelo parâmetro pbPrivateKeyBlob não for grande o suficiente para manter os dados retornados, a função definirá o código ERROR_MORE_DATA e armazenará o tamanho do buffer necessário, em bytes, na variável apontada pelo parâmetro pcbPrivateKeyBlob .
 

Se a função falhar, GetLastError retornará um erro de codificação/decodificação ASN.1. Para obter informações sobre esses erros, consulte Valores retornados de codificação/decodificação asn.1.

Comentários

Essa função só tem suporte para chaves assimétricas.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows XP [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2003 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho wincrypt.h
DLL Crypt32.dll

Confira também

CRYPT_PKCS8_EXPORT_PARAMS

Cryptacquirecontext

CryptExportPKCS8

CryptImportPKCS8