Função CertAddCRLLinkToStore (wincrypt.h)
A função CertAddCRLLinkToStore adiciona um link em um repositório a um contexto de CRL ( lista de revogação de certificados ) em um repositório diferente. Em vez de criar e adicionar uma duplicata da CRL, essa função adiciona um link ao contexto de CRL original.
Sintaxe
BOOL CertAddCRLLinkToStore(
[in] HCERTSTORE hCertStore,
[in] PCCRL_CONTEXT pCrlContext,
[in] DWORD dwAddDisposition,
[out, optional] PCCRL_CONTEXT *ppStoreContext
);
Parâmetros
[in] hCertStore
Identificador de um repositório de certificados em que o link deve ser adicionado.
[in] pCrlContext
Um ponteiro para a estrutura CRL_CONTEXT a ser vinculada.
[in] dwAddDisposition
Especifica a ação a ser tomada se houver uma CRL correspondente ou um link para uma CRL correspondente 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 CRL correspondente existente ou um link para uma CRL correspondente. Um novo link sempre é adicionado ao repositório. Isso pode levar a duplicatas em um repositório. |
|
Se existir uma CRL correspondente ou um link para uma CRL correspondente, a operação falhará. GetLastError retorna o código CRYPT_E_EXISTS. |
|
Se existir uma CRL correspondente ou um link para uma CRL correspondente, os tempos de ThisUpdate nas CRLs serão comparados. Se a CRL existente tiver um tempo ThisUpdate menor que o tempo ThisUpdate na nova CRL, o link antigo será substituído da mesma forma que o CERT_STORE_ADD_REPLACE_EXISTING. Se a CRL existente tiver um tempo ThisUpdate maior ou igual ao tempo ThisUpdate na CRL a ser adicionada, a função falhará com GetLastError retornando o código CRYPT_E_EXISTS.
Se uma CRL correspondente ou um link para uma CRL correspondente não for encontrado no repositório, um novo link será adicionado ao repositório. |
|
Se existir um link para a CRL correspondente, esse link existente será excluído e um novo link será criado e adicionado ao repositório. Se uma CRL correspondente ou um link para uma CRL correspondente não existir, um novo link será adicionado. |
|
Se existir uma CRL correspondente ou um link para uma CRL correspondente, esse link existente será usado. A função não falha, mas nenhum novo link é adicionado. Se uma CRL correspondente ou um link para uma CRL não existir, um novo link será adicionado. |
[out, optional] ppStoreContext
Um ponteiro para um ponteiro de uma cópia do link criado. O parâmetro ppStoreContext pode ser NULL para indicar que uma cópia do link não é necessária. Se uma cópia do link for criada, essa cópia deverá ser liberada usando CertFreeCRLContext.
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 |
---|---|
|
Para um dwAddDisposition de CERT_STORE_ADD_NEW, a CTL já existe no repositório. |
|
Um valor de disposição que não é válido foi especificado no parâmetro dwAddDisposition . |
Comentários
Como o link fornece acesso a um contexto crl original, definir uma propriedade estendida no contexto de CRL vinculado altera essa propriedade estendida no local original da CRL e em qualquer outro links para essa CRL.
Os links não podem ser adicionados a um repositório aberto como uma coleção. As lojas abertas como coleções incluem todas as lojas abertas com CertOpenSystemStore ou CertOpenStore usando CERT_STORE_PROV_SYSTEM ou CERT_STORE_PROV_COLLECTION. Para obter mais informações, consulte CertAddStoreToCollection.
Se os links forem usados e CertCloseStore for chamado com CERT_CLOSE_STORE_FORCE_FLAG, o repositório que usa links deverá ser fechado antes que o repositório que contém os contextos originais possa ser fechado. Se CERT_CLOSE_STORE_FORCE_FLAG não for usado, os dois repositórios poderão ser fechados em qualquer ordem.
Para remover o link de contexto crl do repositório de certificados, use a função CertDeleteCRLFromStore .
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 |