Função CertSetCertificateContextProperty (wincrypt.h)
A função CertSetCertificateContextProperty
Sintaxe
BOOL CertSetCertificateContextProperty(
[in] PCCERT_CONTEXT pCertContext,
[in] DWORD dwPropId,
[in] DWORD dwFlags,
[in] const void *pvData
);
Parâmetros
[in] pCertContext
Um ponteiro para uma estrutura CERT_CONTEXT.
[in] dwPropId
A propriedade a ser definida. O valor de dwPropId determina o tipo e o conteúdo do parâmetro pvData. Identificadores definidos no momento e seus tipos de pvData
CERT_ACCESS_STATE_PROP_ID
Tipo de dados de
Retorna um valor DWORD que indica se as operações de gravação no certificado são mantidas. O valor DWORD não será definido se o certificado estiver em um repositório de memória ou em um repositório baseado em registro aberto como somente leitura.
CERT_AIA_URL_RETRIEVED_PROP_ID
Esse identificador é reservado.
CERT_ARCHIVED_KEY_HASH_PROP_ID
Tipo de dados de pvData: um ponteiro para uma estrutura de CRYPT_HASH_BLOB.
Essa propriedade salva uma chave criptografada de hash para o contexto do certificado.
CERT_ARCHIVED_PROP_ID
Tipo de dados de pvData: um ponteiro para uma estrutura de CRYPT_DATA_BLOB.
Indica que o certificado é ignorado durante enumerações. Um certificado com esse conjunto de propriedades ainda é encontrado com operações de pesquisa explícitas, como localizar um certificado com um de hash específico ou um número de série específico. Essa propriedade pode ser definida como ade BLOB de
CERT_AUTHORITY_INFO_ACCESS_PROP_ID
Esse identificador é reservado.
CERT_AUTO_ENROLL_PROP_ID
Tipo de dados de pvData: um ponteiro para uma estrutura de CRYPT_DATA_BLOB.
Uma propriedade definida após um certificado ter sido registrado usando o Registro Automático. A estrutura de CRYPT_DATA_BLOB apontada por pvData inclui um nome Unicode encerrado em nulo do tipo de certificado para o qual o certificado foi registrado automaticamente. Todas as chamadas subsequentes ao Registro Automático para o certificado verificam essa propriedade para determinar se o certificado foi registrado.
CERT_AUTO_ENROLL_RETRY_PROP_ID
Esse identificador é reservado.
CERT_BACKED_UP_PROP_ID
Esse identificador é reservado.
CERT_CA_DISABLE_CRL_PROP_ID
Tipo de dados de pvData: um ponteiro para uma estrutura de CRYPT_DATA_BLOB.
Desabilita recuperação de de lista de certificados revogados (CRL) para certificados usados pela autoridade de certificação (AC). Se o certificado de autoridade de certificação contiver essa propriedade, ele também deverá incluir a propriedade CERT_CA_OCSP_AUTHORITY_INFO_ACCESS_PROP_ID.
CERT_CA_OCSP_AUTHORITY_INFO_ACCESS_PROP_ID
Tipo de dados de pvData: um ponteiro para uma estrutura de CRYPT_DATA_BLOB.
Contém a lista de URLs de protocolo de status de certificado online
CERT_CROSS_CERT_DIST_POINTS_PROP_ID
Tipo de dados de pvData: um ponteiro para uma estrutura de CRYPT_DATA_BLOB.
Define o local dos certificados cruzados. Esse valor só é aplicável a certificados e não a listas de revogação de certificados (CRLs) ou listas de confiança de certificado (CTLs). A estrutura de
CERT_CTL_USAGE_PROP_ID
Tipo de dados de pvData: um ponteiro para uma estrutura de CRYPT_DATA_BLOB.
A estrutura CRYPT_DATA_BLOB contém uma estrutura de CTL_USAGE codificada em ASN.1. Essa estrutura é codificada usando a função CryptEncodeObject com o conjunto de valores X509_ENHANCED_KEY_USAGE.
CERT_DATE_STAMP_PROP_ID
Tipo de dados de
Essa propriedade define a hora em que o certificado foi adicionado ao repositório.
CERT_DESCRIPTION_PROP_ID
Tipo de dados de pvData: um ponteiro para uma estrutura de CRYPT_DATA_BLOB.
Uma propriedade que é definida e exibida pela interface do usuário do certificado. Essa propriedade permite que o usuário descreva o uso do certificado.
CERT_EFS_PROP_ID
Esse identificador é reservado.
CERT_ENHKEY_USAGE_PROP_ID
Tipo de dados de pvData: um ponteiro para uma estrutura de CRYPT_DATA_BLOB.
Uma propriedade que indica que o parâmetro pvData aponta para uma estrutura de CRYPT_DATA_BLOB que contém uma estrutura de CERT_ENHKEY_USAGE codificada em ASN.1. Essa estrutura é codificada usando a função CryptEncodeObject com o conjunto de valores X509_ENHANCED_KEY_USAGE.
CERT_ENROLLMENT_PROP_ID
Tipo de dados de pvData: um ponteiro para uma estrutura de CRYPT_DATA_BLOB.
Informações de registro da solicitação pendente que contém RequestID, CADNSName, CAName e DisplayName. O formato de dados é definido da seguinte maneira.
Bytes | Conteúdo |
---|---|
Primeiros 4 bytes | ID de solicitação pendente |
Próximos 4 bytes | Tamanho do CADNSName, em caracteres, incluindo o caractere nulo de terminação, seguido pela cadeia de caracteres CADNSName com terminação de caractere nulo |
Próximos 4 bytes | Tamanho caname, em caracteres, incluindo o caractere nulo de terminação, seguido pela cadeia de caracteres CAName com terminação de caractere nulo |
Próximos 4 bytes | Tamanho displayName, em caracteres, incluindo o caractere nulo de terminação, seguido pela cadeia de caracteres DisplayName com terminação de caractere nulo |
CERT_EXTENDED_ERROR_INFO_PROP_ID
Tipo de dados de pvData: um ponteiro para uma estrutura de CRYPT_DATA_BLOB.
Essa propriedade define uma cadeia de caracteres que contém informações de erro estendidas para o contexto do certificado.
CERT_FORTEZZA_DATA_PROP_ID
Esse identificador é reservado.
CERT_FRIENDLY_NAME_PROP_ID
Tipo de dados de pvData: um ponteiro para uma estrutura de CRYPT_DATA_BLOB.
A estrutura CRYPT_DATA_BLOB contém o nome de exibição do certificado.
CERT_HASH_PROP_ID
Tipo de dados de pvData: um ponteiro para uma estrutura de CRYPT_DATA_BLOB.
Essa propriedade é definida implicitamente por uma chamada para a função
CERT_HCRYPTPROV_OR_NCRYPT_KEY_HANDLE_PROP_ID
Tipo de dados de pvData: um ponteiro para um tipo de dados HCRYPTPROV_OR_NCRYPT_KEY_HANDLE.
Essa propriedade chama NCryptIsKeyHandle para determinar se esse é um NCRYPT_KEY_HANDLE. Para um NCRYPT_KEY_HANDLE, define CERT_NCRYPT_KEY_HANDLE_PROP_ID; caso contrário, ele define CERT_KEY_PROV_HANDLE_PROP_ID.
CERT_HCRYPTPROV_TRANSFER_PROP_ID
Define o identificador da chave CAPI associada ao certificado.
CERT_IE30_RESERVED_PROP_ID
Esse identificador é reservado.
CERT_ISSUER_PUBLIC_KEY_MD5_HASH_PROP_ID
Tipo de dados de pvData: um ponteiro para uma estrutura de CRYPT_DATA_BLOB.
Essa propriedade define o
CERT_ISSUER_SERIAL_NUMBER_MD5_HASH_PROP_ID
Tipo de dados de pvData: um ponteiro para uma estrutura de CRYPT_DATA_BLOB.
A estrutura CRYPT_DATA_BLOB contém o hash MD5 do nome do emissor e o número de série desse certificado.
CERT_KEY_CONTEXT_PROP_ID
Tipo de dados de pvData: um ponteiro para uma estrutura de CERT_KEY_CONTEXT.
A estrutura especifica a chave privada do certificado. Ele contém o
CERT_KEY_IDENTIFIER_PROP_ID
Tipo de dados de pvData: um ponteiro para uma estrutura de CRYPT_DATA_BLOB.
Essa propriedade normalmente é definida implicitamente por uma chamada para a função CertGetCertificateContextProperty
CERT_KEY_PROV_HANDLE_PROP_ID
Tipo de dados de
O identificador
CERT_KEY_PROV_INFO_PROP_ID
Tipo de dados de pvData: um ponteiro para uma estrutura CRYPT_KEY_PROV_INFO.
A estrutura especifica a chave privada do certificado.
CERT_KEY_SPEC_PROP_ID
Tipo de dados de
O DWORD valor que especifica a chave privada. O dwKeySpec membro da estrutura de CERT_KEY_CONTEXT será atualizado se existir. Se isso não acontecer, ele será criado com hCryptProv definido como zero.
CERT_MD5_HASH_PROP_ID
Tipo de dados de pvData: um ponteiro para uma estrutura de CRYPT_HASH_BLOB.
Essa propriedade é definida implicitamente por uma chamada para a função
CERT_NCRYPT_KEY_HANDLE_PROP_ID
Tipo de dados de pvData: um ponteiro para um tipo de dados NCRYPT_KEY_HANDLE.
Essa propriedade define o
CERT_NCRYPT_KEY_HANDLE_TRANSFER_PROP_ID
Define o identificador da chave CNG associada ao certificado.
CERT_NEW_KEY_PROP_ID
Esse identificador é reservado.
CERT_NEXT_UPDATE_LOCATION_PROP_ID
Tipo de dados de pvData: um ponteiro para uma estrutura de CRYPT_DATA_BLOB.
A estrutura CRYPT_DATA_BLOB contém uma estrutura de CERT_ALT_NAME_INFO codificada em ASN.1 codificada usando a função CryptEncodeObject com o conjunto de valores X509_ALTERNATE_NAME.
CERT_NEXT_UPDATE_LOCATION_PROP_ID atualmente é usado apenas com CTLs.
CERT_NO_AUTO_EXPIRE_CHECK_PROP_ID
Esse identificador é reservado.
CERT_OCSP_CACHE_PREFIX_PROP_ID
Esse identificador é reservado.
CERT_OCSP_RESPONSE_PROP_ID
Tipo de dados de pvData: um ponteiro para uma estrutura de CRYPT_DATA_BLOB.
Essa propriedade define a resposta de protocolo de status de certificado online
CERT_PUB_KEY_CNG_ALG_BIT_LENGTH_PROP_ID
Tipo de dados de pvData: ponteiro para uma estrutura de CRYPT_DATA_BLOB.
Essa propriedade é definida implicitamente chamando a função CertGetCertificateContextProperty.
Windows Server 2008 R2, Windows 7, Windows Server 2008, Windows Vista, Windows Server 2003 e Windows XP: Este identificador não tem suporte.
CERT_PUBKEY_ALG_PARA_PROP_ID
Tipo de dados de pvData: um ponteiro para uma estrutura de CRYPT_DATA_BLOB.
Essa propriedade é usada com chaves públicas que dão suporte à herança de parâmetro de algoritmo. O BLOB de dados contém os parâmetros do Algoritmo PublicKey codificado em ASN.1. Para DSS, esses são parâmetros codificados usando a função
CERT_PUBKEY_HASH_RESERVED_PROP_ID
Esse identificador é reservado.
CERT_PVK_FILE_PROP_ID
Tipo de dados de pvData: um ponteiro para uma estrutura de CRYPT_DATA_BLOB.
A estrutura CRYPT_DATA_BLOB especifica o nome de um arquivo que contém a chave privada associada à chave pública do certificado. Dentro da estrutura CRYPT_DATA_BLOB, o membro pbData é um ponteiro para uma cadeia de caracteres largos Unicode terminada em nulo e o membro cbData indica o comprimento da cadeia de caracteres.
CERT_RENEWAL_PROP_ID
Tipo de dados de pvData: um ponteiro para uma estrutura de CRYPT_DATA_BLOB.
Essa propriedade especifica o hash do certificado renovado.
CERT_REQUEST_ORIGINATOR_PROP_ID
Tipo de dados de pvData: um ponteiro para uma estrutura de CRYPT_DATA_BLOB.
A estrutura CRYPT_DATA_BLOB contém uma cadeia de caracteres Unicode terminada em nulo que contém o nome do computador DNS para a origem da solicitação de contexto de certificado.
CERT_ROOT_PROGRAM_CERT_POLICIES_PROP_ID
Tipo de dados de pvData: um ponteiro para uma estrutura de CRYPT_DATA_BLOB.
Retorna um ponteiro para uma estrutura de CERT_POLICIES_INFO codificada que contém as políticas de aplicativo do certificado raiz para o contexto. Essa propriedade pode ser decodificada usando a função
CERT_ROOT_PROGRAM_NAME_CONSTRAINTS_PROP_ID
Esse identificador é reservado.
CERT_SIGN_HASH_CNG_ALG_PROP_ID
Tipo de dados de pvData: ponteiro para uma estrutura de CRYPT_DATA_BLOB.
Essa propriedade é definida implicitamente chamando a função CertGetCertificateContextProperty.
Windows Server 2008 R2, Windows 7, Windows Server 2008, Windows Vista, Windows Server 2003 e Windows XP: Este identificador não tem suporte.
CERT_SHA1_HASH_PROP_ID
Tipo de dados de pvData: um ponteiro para uma estrutura de CRYPT_HASH_BLOB.
Essa propriedade é definida implicitamente por uma chamada para a função
CERT_SIGNATURE_HASH_PROP_ID
Tipo de dados de pvData: um ponteiro para uma estrutura de CRYPT_HASH_BLOB.
Se um hash de assinatura não existir, ele será computado usando a função
CERT_SMART_CARD_DATA_PROP_ID
Tipo de dados de pvData: um ponteiro para uma estrutura de CRYPT_DATA_BLOB.
Essa propriedade define a propriedade de dados de cartão inteligente de um contexto de certificado de cartão inteligente.
CERT_SMART_CARD_ROOT_INFO_PROP_ID
Tipo de dados de pvData: um ponteiro para uma estrutura de CRYPT_DATA_BLOB.
Essa propriedade define a propriedade de informações de um contexto de certificado raiz de cartão inteligente.
CERT_SOURCE_LOCATION_PROP_ID
Esse identificador é reservado.
CERT_SOURCE_URL_PROP_ID
Esse identificador é reservado.
CERT_SUBJECT_DISABLE_CRL_PROP_ID
Esse identificador é reservado.
CERT_SUBJECT_INFO_ACCESS_PROP_ID
Tipo de dados de pvData: um ponteiro para uma estrutura de CRYPT_DATA_BLOB.
Essa propriedade define a extensão de acesso de informações do assunto do contexto do certificado como uma estrutura de CERT_SUBJECT_INFO_ACCESS codificada.
CERT_SUBJECT_NAME_MD5_HASH_PROP_ID
Tipo de dados de pvData: um ponteiro para uma estrutura de CRYPT_DATA_BLOB.
Retorna um hash MD5 do nome da entidade codificada do contexto do certificado.
CERT_SUBJECT_OCSP_AUTHORITY_INFO_ACCESS_PROP_ID
Esse identificador é reservado.
CERT_SUBJECT_PUB_KEY_BIT_LENGTH_PROP_ID
Tipo de dados de pvData: ponteiro para uma estrutura de CRYPT_DATA_BLOB.
Essa propriedade é definida implicitamente chamando a função CertGetCertificateContextProperty.
Windows Server 2008 R2, Windows 7, Windows Server 2008, Windows Vista, Windows Server 2003 e Windows XP: Este identificador não tem suporte.
CERT_SUBJECT_PUBLIC_KEY_MD5_HASH_PROP_ID
Tipo de dados de pvData: um ponteiro para uma estrutura de CRYPT_DATA_BLOB.
Essa propriedade define o hash MD5 da chave pública desse certificado.
pvData é um ponteiro para uma estrutura CRYPT_DATA_BLOB.
O usuário pode definir tipos de dwPropId adicionais usando valores de DWORD de CERT_FIRST_USER_PROP_ID a CERT_LAST_USER_PROP_ID. Para todos os tipos de dwPropId
[in] dwFlags
CERT_STORE_NO_CRYPT_RELEASE_FLAG pode ser definido para as propriedades CERT_KEY_PROV_HANDLE_PROP_ID ou CERT_KEY_CONTEXT_PROP_ID dwPropId.
Se o valor CERT_SET_PROPERTY_IGNORE_PERSIST_ERROR_FLAG for definido, todos os erros de gravação do provedor serão ignorados e as propriedades do contexto armazenado em cache sempre serão definidas.
Se CERT_SET_PROPERTY_INHIBIT_PERSIST_FLAG estiver definido, qualquer conjunto de propriedades de contexto não será mantido.
[in] pvData
Um ponteiro para um tipo de dados determinado pelo valor de dwPropId.
Valor de retorno
Se a função for bem-sucedida, a função retornará VERDADEIRO.
Se a função falhar, a função retornará false. Para obter informações de erro estendidas, chame GetLastError. Um código de erro possível é o seguinte.
Código de retorno | Descrição |
---|---|
|
A propriedade não é válida. O identificador especificado foi maior que 0x0000FFFF ou, para a propriedade CERT_KEY_CONTEXT_PROP_ID, um membro cbSize que não é válido foi especificado na estrutura CERT_KEY_CONTEXT. |
Observações
Se uma propriedade já existir, seu valor antigo será substituído.
Seu código pode usar uma macro para avaliar a classe de hash para um contexto de certificado. O cabeçalho Wincrypt.h define as macros a seguir para essa finalidade. Essas macros são usadas internamente pela função CertSetCertificateContextProperty.
IS_CERT_HASH_PROP_ID(X)IS_PUBKEY_HASH_PROP_ID(X)IS_CHAIN_HASH_PROP_ID(X) Cada macro usa o valor dwPropId (X) como entrada e é avaliada como um valor booliano. A tabela a seguir mostra os valores
Macro | Avaliará como TRUE se dwPropId for |
---|---|
IS_CERT_HASH_PROP_ID(dwPropId) |
|
IS_PUBKEY_HASH_PROP_ID(dwPropId) |
|
IS_CHAIN_HASH_PROP_ID(dwPropId) |
|
A macro
Exemplos
Para obter um exemplo que usa essa função, consulte Exemplo de Programa C: Obtendo e definindo propriedades de certificado.
Requisitos
Requisito | Valor |
---|---|
de cliente com suporte mínimo | Windows XP [aplicativos da área de trabalho | Aplicativos UWP] |
servidor com suporte mínimo | Windows Server 2003 [aplicativos da área de trabalho | Aplicativos UWP] |
da Plataforma de Destino |
Windows |
cabeçalho | wincrypt.h |
biblioteca | Crypt32.lib |
de DLL |
Crypt32.dll |