Compartilhar via


Função CertSetStoreProperty (wincrypt.h)

A função CertSetStoreProperty define uma propriedade de repositório.

Sintaxe

BOOL CertSetStoreProperty(
  [in] HCERTSTORE hCertStore,
  [in] DWORD      dwPropId,
  [in] DWORD      dwFlags,
  [in] const void *pvData
);

Parâmetros

[in] hCertStore

Manipule para o repositório de certificados.

[in] dwPropId

Indica uma de um intervalo de propriedades do repositório. Os valores para propriedades definidas pelo usuário devem estar fora do intervalo atual de valores de propriedade de contexto predefinidos. Atualmente, os valores dwPropId definidos pelo usuário começam em 4.096. Há uma propriedade de repositório predefinida, CERT_STORE_LOCALIZED_NAME_PROP_ID, o nome localizado do repositório.

[in] dwFlags

Reservado para uso futuro e deve ser zero.

[in] pvData

A definição de tipo para pvData depende do valor dwPropId . Se dwPropId for CERT_STORE_LOCALIZED_NAME_PROP_ID, pvData apontará para uma estrutura de CRYPT_DATA_BLOB . O membro pbData dessa estrutura é um ponteiro para uma cadeia de caracteres Unicode terminada em nulo. O membro cbData dessa estrutura é um valor DWORD que contém o comprimento da cadeia de caracteres.

Para valores dwPropId definidos pelo usuário, pvData é um ponteiro para um CRYPT_DATA_BLOB codificado.

Se já existir um valor para a propriedade selecionada, o valor antigo será substituído.

Chamar essa função com pvData definido como NULL exclui uma propriedade.

Valor retornado

Se a função for bem-sucedida, o valor retornado será TRUE.

Se a função falhar, o valor retornado será FALSE.

Comentários

Os identificadores de propriedade da loja são propriedades aplicáveis a um repositório inteiro. Elas não são propriedades para um certificado individual, CRL ou contexto CTL . Atualmente, nenhuma propriedade do repositório é persistente.

Exemplos

O exemplo a seguir mostra a configuração da propriedade de nome localizado de um repositório de certificados aberto.

//--------------------------------------------------------------
// Declare and initialize variables.

HCERTSTORE hCertStore = NULL;       // Original certificate store
CRYPT_DATA_BLOB Property_Name_Blob; // BLOB to hold store property

//--------------------------------------------------------------
// Open the certificate store that will have its localized name
// property set. In this case, the CA system store is opened. 

if ( hCertStore = CertOpenStore(
    CERT_STORE_PROV_SYSTEM,
    0,
    NULL,
    CERT_SYSTEM_STORE_CURRENT_USER,
    L"CA"))
{
     printf("The CA store is open.\n");
}
else
{
     printf("The CA store could not be opened \n.");
     exit(1);
}

//--------------------------------------------------------------------
// Prepare a data structure to set a store property.
// Initialize the members of the CRYPT_DATA_BLOB.
Property_Name_Blob.pbData = (BYTE *) L"The Local CA Store";
Property_Name_Blob.cbData = 
       (wcslen((LPWSTR)Property_Name_Blob.pbData)+1) * sizeof(WCHAR);

//--------------------------------------------------------------------
// Set the store's localized name property.
if (CertSetStoreProperty(
    hCertStore,
    CERT_STORE_LOCALIZED_NAME_PROP_ID,
    0,
    &Property_Name_Blob))
{
     printf("The name of the store has been set. Continue. \n");
}
else
{
     printf("Setting the store's localized name failed.\n");
     exit(1);
}

// Close the store when done.
if (!CertCloseStore(
     hCertStore,
     0 ))
{
     printf("The CA store could not be closed \n.");
     exit(1);

}

Para obter outro exemplo que usa essa função, consulte Exemplo de Programa C: Configurando e obtendo propriedades do repositório de certificados.

Requisitos

   
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

CertGetStoreProperty

Funções de repositório de certificados