Função CryptImportPKCS8 (wincrypt.h)

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

Importante Essa API foi preterida. O software novo e existente deve começar a usar APIs de Próxima Geração de Criptografia. A Microsoft pode remover essa API em versões futuras.
 
A função CryptImportPKCS8 importa a chave privada no formato PKCS nº 8 para um provedor de serviços criptográficos (CSP). CryptImportPKCS8 retornará um identificador para o provedor e o KeySpec de importação usado.

Sintaxe

BOOL CryptImportPKCS8(
  [in]            CRYPT_PKCS8_IMPORT_PARAMS sPrivateKeyAndParams,
  [in]            DWORD                     dwFlags,
  [out, optional] HCRYPTPROV                *phCryptProv,
  [in, optional]  void                      *pvAuxInfo
);

Parâmetros

[in] sPrivateKeyAndParams

Uma estrutura CRYPT_PKCS8_IMPORT_PARAMS que contém o BLOB de chave privada e os parâmetros correspondentes.

[in] dwFlags

Um valor DWORD . Esse parâmetro pode ser um dos seguintes valores, uma combinação deles ou um valor nulo.

Valor Significado
CRYPT_EXPORTABLE
A chave que está sendo importada eventualmente será reexportada. Se esse sinalizador não for usado, as chamadas para CryptExportKey com o identificador de chave falharão.
CRYPT_USER_PROTECTED
Se esse sinalizador for definido, o CSP notificará o usuário por meio de uma caixa de diálogo ou de algum outro método quando determinadas ações forem tentadas usando essa chave. O comportamento preciso é especificado pelo CSP ou pelo tipo CSP usado. Se o contexto do provedor tiver sido adquirido com CRYPT_SILENT definido, o uso desse sinalizador causará uma falha e o último erro será definido como NTE_SILENT_CONTEXT.

[out, optional] phCryptProv

Um ponteiro para o HCRYPTPROV para receber o identificador do provedor no qual a chave é importada chamando a função CryptImportPKCS8 .

Quando terminar de usar o identificador, libere o identificador chamando CryptReleaseContext.

Esse parâmetro pode ser NULL, caso em que o identificador do provedor não é retornado.

[in, optional] pvAuxInfo

Esse parâmetro deve ser NULL.

Valor retornado

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.

O código de erro a seguir é específico para essa função.

Código de retorno Descrição
ERROR_UNSUPPORTED_TYPE
Não há suporte para o OID ( identificador de objeto de algoritmo) da chave privada.
 

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

Comentários

CryptImportPKCS8 chama a função PCRYPT_RESOLVE_HCRYPTPROV_FUNC usando a estrutura CRYPT_PKCS8_IMPORT_PARAMS contida no parâmetro sPrivateKeyAndParams para recuperar um identificador do provedor para o qual importar a chave. Se PCRYPT_RESOLVE_HCRYPTPROV_FUNC for NULL, o provedor padrão será usado.

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

Requisitos

   
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
Biblioteca Crypt32.lib
DLL Crypt32.dll

Confira também

CRYPT_PKCS8_IMPORT_PARAMS

CryptExportPKCS8Ex

CryptReleaseContext

PCRYPT_DECRYPT_PRIVATE_KEY_FUNC

PCRYPT_RESOLVE_HCRYPTPROV_FUNC