Compartilhar via


Função CertCreateContext (wincrypt.h)

A função CertCreateContext cria o contexto especificado com base nos bytes codificados. O contexto criado não inclui nenhuma propriedade estendida.

Sintaxe

const void * CertCreateContext(
  [in]           DWORD                     dwContextType,
  [in]           DWORD                     dwEncodingType,
  [in]           const BYTE                *pbEncoded,
  [in]           DWORD                     cbEncoded,
  [in]           DWORD                     dwFlags,
  [in, optional] PCERT_CREATE_CONTEXT_PARA pCreatePara
);

Parâmetros

[in] dwContextType

Especifica os contextos que podem ser criados. Por exemplo, para criar um contexto de certificado, defina dwContextType como CERT_STORE_CERTIFICATE_CONTEXT.

Os sinalizadores de tipo de contexto definidos atualmente são mostrados na tabela a seguir.

Valor Significado
CERT_STORE_CERTIFICATE_CONTEXT
Contexto do certificado.
CERT_STORE_CRL_CONTEXT
Contexto de CRL.
CERT_STORE_CTL_CONTEXT
Contexto ctl.

[in] dwEncodingType

Especifica o tipo de codificação usado. Atualmente, apenas X509_ASN_ENCODING e PKCS_7_ASN_ENCODING estão sendo usados; no entanto, tipos de codificação adicionais podem ser adicionados no futuro. Para qualquer tipo de codificação atual, use:

X509_ASN_ENCODING | PKCS_7_ASN_ENCODING.

[in] pbEncoded

Um ponteiro para um buffer que contém o conteúdo de contexto codificado existente a ser copiado.

[in] cbEncoded

O tamanho, em bytes, do buffer pbEncoded .

[in] dwFlags

Os valores de sinalizador a seguir são definidos e podem ser combinados usando uma operação OR bit a bit.

Valor Significado
CERT_CREATE_CONTEXT_NOCOPY_FLAG
O contexto criado aponta diretamente para o conteúdo apontado por pbEncoded em vez de uma cópia alocada.
CERT_CREATE_CONTEXT_SORTED_FLAG
A função cria um contexto com entradas classificadas. Atualmente, esse sinalizador só se aplica a um contexto CTL.

Para CTLs, o membro cCTLEntry da estrutura de CTL_INFO retornada é sempre zero. CertFindSubjectInSortedCTL e CertEnumSubjectInSortedCTL devem ser chamados para localizar ou enumerar as entradas CTL.

CERT_CREATE_CONTEXT_NO_HCRYPTMSG_FLAG
Por padrão, quando um contexto CTL é criado, um identificador HCRYTPMSG para sua mensagem SignedData é criado. Esse sinalizador pode ser definido para melhorar o desempenho não criando esse identificador. Esse sinalizador só pode ser usado quando dwContextType é CERT_STORE_CTL_CONTEXT.
CERT_CREATE_CONTEXT_NO_ENTRY_FLAG
Por padrão, quando um contexto CTL é criado, suas entradas são decodificadas. Quando esse sinalizador é definido, as entradas não são decodificadas e o desempenho é aprimorado. Esse sinalizador só pode ser usado quando dwContextType é CERT_STORE_CTL_CONTEXT.

[in, optional] pCreatePara

Um ponteiro para uma estrutura CERT_CREATE_CONTEXT_PARA .

Se pCreatePara e seu membro pfnFree forem não NULL, o membro pfnFree será usado para liberar a memória especificada pelo membro pvFree . Se o membro pvFree for NULL, o membro pfnFree será usado para liberar o ponteiro pbEncoded .

Se pCreatePara ou seu membro pfnFree for NULL, nenhuma tentativa será feita para liberar pbEncoded.

Retornar valor

Se a função for bem-sucedida, o valor retornado será um ponteiro para o contexto recém-criado. O membro pvFree de pCreatePara deve ser chamado para liberar o contexto criado.

Se a função falhar, o valor retornado será NULL. Para obter informações de erro estendidas, chame GetLastError.

Se GetLastError retornar ERROR_CANCELLED, isso significa que a função de retorno de chamada PFN_CERT_CREATE_CONTEXT_SORT_FUNC retornou FALSE para interromper a classificação.

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

Confira também

CTL_INFO

CertEnumSubjectInSortedCTL

CertFindSubjectInSortedCTL

Funções de manutenção do repositório de certificados e certificados