Função CertOpenSystemStoreA (wincrypt.h)
A função CertOpenSystemStore é uma função simplificada que abre o sistema mais comum repositório de certificados. Para abrir repositórios de certificados com requisitos mais complexos, como repositórios baseados em arquivo ou com base em memória, use CertOpenStore.
Sintaxe
HCERTSTORE CertOpenSystemStoreA(
[in] HCRYPTPROV_LEGACY hProv,
[in] LPCSTR szSubsystemProtocol
);
Parâmetros
[in] hProv
Esse parâmetro não é usado e deve ser definido como 0.
Windows Server 2003 e Windows XP: um identificador de um CSP ( provedor de serviços criptográficos). Defina hProv como 0 para usar o CSP padrão. Se hProv não for 0, ele deverá ser um identificador CSP criado usando a função CryptAcquireContext. O tipo de dados desse parâmetro é HCRYPTPROV.
[in] szSubsystemProtocol
Uma cadeia de caracteres que nomeia um repositório do sistema. Se o nome do repositório do sistema fornecido neste parâmetro não for o nome de um repositório de sistema existente, um novo repositório de sistema será criado e usado. CertEnumSystemStore podem ser usados para listar os nomes dos repositórios de sistema existentes. Alguns repositórios de sistema de exemplo são listados na tabela a seguir.
Valor | Significado |
---|---|
|
certificados autoridade de certificação. |
|
Um repositório de certificados que contém certificados com chaves privadas associadas. |
|
certificados raiz. |
|
de Certificado do Publicador de Software. |
Valor de retorno
Se a função for bem-sucedida, a função retornará um identificador para o repositório de certificados.
Se a função falhar, ela retornará NULL. Para obter informações de erro estendidas, chame GetLastError.
Observações
Somente os certificados de usuário atuais são acessíveis usando esse método, não o repositório de máquinas local.
Depois que o repositório do sistema for aberto, todas as funções de repositório de certificados padrão poderão ser usadas para manipular os certificados.
Após o uso, o repositório deve ser fechado usando CertCloseStore.
Para obter mais informações sobre os repositórios migrados automaticamente, consulte de Migração do Repositório de Certificados.
Exemplos
O exemplo a seguir mostra um método simplificado para abrir os repositórios de certificados do sistema mais comuns. Para obter outro exemplo que usa essa função, consulte Exemplo de Programa C: Operações do Repositório de Certificados.
//--------------------------------------------------------------------
// Declare and initialize variables.
HCERTSTORE hSystemStore; // system store handle
//--------------------------------------------------------------------
// Open the CA system certificate store. The same call can be
// used with the name of a different system store, such as My or Root,
// as the second parameter.
if(hSystemStore = CertOpenSystemStore(
0,
"CA"))
{
printf("The CA system store is open. Continue.\n");
}
else
{
printf("The CA system store did not open.\n");
exit(1);
}
// Use the store as needed.
// ...
// When done using the store, close it.
if(!CertCloseStore(hSystemStore, 0))
{
printf("Unable to close the CA system store.\n");
exit(1);
}
Nota
O cabeçalho wincrypt.h define CertOpenSystemStore como um alias que seleciona automaticamente a versão ANSI ou Unicode dessa função com base na definição da constante do pré-processador UNICODE. A combinação do uso do alias neutro de codificação com código que não é neutro em codificação pode levar a incompatibilidades que resultam em erros de compilação ou de runtime. Para obter mais informações, consulte Conventions for Function Prototypes.
Requisitos
Requisito | Valor |
---|---|
de cliente com suporte mínimo | Windows XP [somente aplicativos da área de trabalho] |
servidor com suporte mínimo | Windows Server 2003 [somente aplicativos da área de trabalho] |
da Plataforma de Destino |
Windows |
cabeçalho | wincrypt.h |
biblioteca | Crypt32.lib |
de DLL |
Crypt32.dll |