Função CertAddEncodedCTLToStore (wincrypt.h)
A função CertAddEncodedCTLToStore cria um contexto ctl de uma CTL codificada e a adiciona ao repositório de certificados. A função faz uma cópia do contexto CTL antes de adicioná-la ao repositório.
Sintaxe
BOOL CertAddEncodedCTLToStore(
[in] HCERTSTORE hCertStore,
[in] DWORD dwMsgAndCertEncodingType,
[in] const BYTE *pbCtlEncoded,
[in] DWORD cbCtlEncoded,
[in] DWORD dwAddDisposition,
[out, optional] PCCTL_CONTEXT *ppCtlContext
);
Parâmetros
[in] hCertStore
Identificador de um repositório de certificados.
[in] dwMsgAndCertEncodingType
Especifica o tipo de codificação usado. Os tipos de codificação de certificado e de mensagem devem ser especificados combinando-os com uma operação or bit a bit, conforme mostrado no exemplo a seguir:
X509_ASN_ENCODING | PKCS_7_ASN_ENCODING
Os tipos de codificação definidos no momento são:
- X509_ASN_ENCODING
- PKCS_7_ASN_ENCODING
[in] pbCtlEncoded
Um ponteiro para um buffer que contém a CTL codificada a ser adicionada ao repositório de certificados.
[in] cbCtlEncoded
O tamanho, em bytes, do buffer pbCtlEncoded .
[in] dwAddDisposition
Especifica a ação a ser tomada se uma CTL correspondente ou um link para uma CTL correspondente já existir no repositório. Os valores de disposição definidos no momento e seus usos são os seguintes
Valor | Significado |
---|---|
|
Não faz marcar para uma CTL correspondente existente ou vincula a uma CTL correspondente. Uma nova CTL sempre é adicionada ao repositório. Isso pode levar a duplicatas em um repositório. |
|
Se existir uma CTL correspondente ou um link para uma CTL correspondente, a operação falhará. GetLastError retorna o código CRYPT_E_EXISTS. |
|
Se existir uma CTL correspondente ou um link para uma CTL correspondente, os tempos de ThisUpdate nas CTLs serão comparados. Se a CTL existente tiver um tempo ThisUpdate menor que o tempo ThisUpdate na nova CTL, o ctl ou link antigo será substituído da mesma forma que o CERT_STORE_ADD_REPLACE_EXISTING. Se a CTL existente tiver um tempo ThisUpdate maior ou igual ao tempo ThisUpdate na CTL a ser adicionada, a função falhará com GetLastError retornando o código CRYPT_E_EXISTS.
Se uma CTL correspondente ou um link para uma CTL correspondente não for encontrado no repositório, uma nova CTL será adicionada ao repositório. |
|
A ação é a mesma que para CERT_STORE_ADD_NEWER, exceto que, se uma CTL mais antiga for substituída, as propriedades da CTL mais antiga serão incorporadas à CTL de substituição. |
|
Se existir uma CTL correspondente ou um link para uma CTL correspondente, o CTL ou link existente será excluído e uma nova CTL será criada e adicionada ao repositório. Se uma CTL correspondente ou um link para uma CTL correspondente não existir, uma será adicionada. |
|
Se houver uma CTL correspondente no repositório, esse contexto existente será excluído antes de criar e adicionar o novo contexto. O contexto adicionado herda as propriedades da CTL existente. |
|
Se existir uma CTL correspondente ou um link para uma CTL correspondente, essa CTL existente será usada e as propriedades da nova CTL serão adicionadas. A função não falha, mas nenhuma nova CTL é adicionada. Se ppCertContext não for NULL, o contexto existente será duplicado.
Se uma CTL correspondente ou um link para uma CTL correspondente não existir, uma nova CTL será adicionada. |
[out, optional] ppCtlContext
Um ponteiro para um ponteiro para a estrutura de CTL_CONTEXT decodificada. Pode ser NULL indicando que o aplicativo de chamada não requer uma cópia da CTL adicionada ou existente. Se uma cópia for feita, ela deverá ser liberada usando CertFreeCTLContext.
Retornar valor
Se a função for bem-sucedida, o valor retornado será TRUE.
Se a função falhar, o valor retornado será FALSE. Para obter informações de erro estendidas, chame GetLastError.
Alguns códigos de erro possíveis seguem.
Código de retorno | Descrição |
---|---|
|
CERT_STORE_ADD_NEW está definido e a CTL já existe no repositório; ou CERT_STORE_ADD_NEWER está definido e há uma CTL no repositório com um tempo ThisUpdate maior ou igual ao tempo ThisUpdate na CTL a ser adicionado. |
|
Um valor de disposição que não é válido foi especificado no parâmetro dwAddDisposition ou um tipo de codificação que não é válido foi especificado. Atualmente, há suporte apenas para os tipos de codificação X509_ASN_ENCODING e PKCS_7_ASN_ENCODING. |
Se a função falhar, GetLastError poderá retornar um erro de codificação/decodificação de ASN.1 (Abstract Syntax Notation One ). Para obter informações sobre esses erros, consulte Codificação/Decodificação de Valores Retornados do ASN.1.
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 |