Função CertSetCertificateContextProperty (wincrypt.h)
A função CertSetCertificateContextProperty define uma propriedade estendida para um contexto de certificado especificado.
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 de 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 pvData relacionados são os seguintes.
CERT_ACCESS_STATE_PROP_ID
Tipo de dados de pvData: um ponteiro para um valor DWORD .
Retorna um valor DWORD que indica se as operações de gravação no certificado são persistentes. 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 um hash de chave criptografada para o contexto do certificado.
CERT_ARCHIVED_PROP_ID
Tipo de dados de pvData: um ponteiro para uma estrutura 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 hash específico ou um número de série específico. Essa propriedade pode ser definida como o BLOB vazio, {0,NULL}
.
CERT_AUTHORITY_INFO_ACCESS_PROP_ID
Esse identificador é reservado.
CERT_AUTO_ENROLL_PROP_ID
Tipo de dados de pvData: um ponteiro para uma estrutura CRYPT_DATA_BLOB .
Uma propriedade que é definida depois que um certificado é registrado usando o Registro Automático. A estrutura 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 para 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 CRYPT_DATA_BLOB .
Desabilita a recuperação da CRL ( lista de revogação de certificados ) para certificados usados pela AC (autoridade de certificação ). Se o certificado de AUTORIDADE 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 CRYPT_DATA_BLOB .
Contém a lista de URLs de protocolo de status de certificado online (OCSP) a serem usadas para certificados emitidos pelo certificado de autoridade de certificação. O conteúdo da matriz é o bytes codificados em ASN.1 (Abstract Syntax Notation One ) de uma estrutura X509_AUTHORITY_INFO_ACCESS em que pszAccessMethod é definido como szOID_PKIX_OCSP.
CERT_CROSS_CERT_DIST_POINTS_PROP_ID
Tipo de dados de pvData: um ponteiro para uma estrutura CRYPT_DATA_BLOB .
Define o local dos certificados cruzados. Esse valor só é aplicável a certificados e não a CRLs ( listas de certificados revogados ) ou CTLs ( listas de confiança de certificado ). A estrutura CRYPT_DATA_BLOB contém uma estrutura de CROSS_CERT_DIST_POINTS_INFO codificada em CROSS_CERT_DIST_POINTS_INFO de Sintaxe Abstract Syntax One (ASN.1) codificada usando a função CryptEncodeObject com um valor X509_CROSS_CERT_DIST_POINTS para o parâmetro lpszStuctType.
CERT_CTL_USAGE_PROP_ID
Tipo de dados de pvData: um ponteiro para uma estrutura 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 valor X509_ENHANCED_KEY_USAGE definido.
CERT_DATE_STAMP_PROP_ID
Tipo de dados de pvData: um ponteiro para uma estrutura FILETIME .
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 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 CRYPT_DATA_BLOB .
Uma propriedade que indica que o parâmetro pvData aponta para uma estrutura 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 valor X509_ENHANCED_KEY_USAGE definido.
CERT_ENROLLMENT_PROP_ID
Tipo de dados de pvData: um ponteiro para uma estrutura 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 | Sumário |
---|---|
Primeiros 4 bytes | ID de solicitação pendente |
Próximos 4 bytes | Tamanho de CADNSName, em caracteres, incluindo o caractere nulo de terminação, seguido pela cadeia de caracteres CADNSName com caractere nulo de terminação |
Próximos 4 bytes | Tamanho do CAName, em caracteres, incluindo o caractere nulo de terminação, seguido pela cadeia de caracteres CAName com caractere nulo de terminação |
Próximos 4 bytes | Tamanho de DisplayName, em caracteres, incluindo o caractere nulo de terminação, seguido pela cadeia de caracteres DisplayName com o caractere nulo de terminação |
CERT_EXTENDED_ERROR_INFO_PROP_ID
Tipo de dados de pvData: um ponteiro para uma estrutura 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 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 CRYPT_DATA_BLOB .
Essa propriedade é definida implicitamente por uma chamada para a função CertGetCertificateContextProperty .
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 CRYPT_DATA_BLOB .
Essa propriedade define o hashMD5 da chave pública associada à chave privada usada para assinar esse certificado.
CERT_ISSUER_SERIAL_NUMBER_MD5_HASH_PROP_ID
Tipo de dados de pvData: um ponteiro para uma estrutura CRYPT_DATA_BLOB .
A estrutura CRYPT_DATA_BLOB contém o hash MD5 do nome do emissor e do número de série desse certificado.
CERT_KEY_CONTEXT_PROP_ID
Tipo de dados de pvData: um ponteiro para uma estrutura CERT_KEY_CONTEXT .
A estrutura especifica a chave privada do certificado. Ele contém o HCRYPTPROV e a especificação de chave para a chave privada. Para obter mais informações sobre as configurações de membro hCryptProv e dwFlags , consulte CERT_KEY_PROV_HANDLE_PROP_ID, mais adiante neste tópico.
CERT_KEY_IDENTIFIER_PROP_ID
Tipo de dados de pvData: um ponteiro para uma estrutura 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 pvData: um valor HCRYPTPROV .
O identificador HCRYPTPROV para a chave privada do certificado está definido. O membro hCryptProv da estrutura CERT_KEY_CONTEXT será atualizado se existir. Se ele não existir, ele será criado com dwKeySpec e inicializado por CERT_KEY_PROV_INFO_PROP_ID. Se CERT_STORE_NO_CRYPT_RELEASE_FLAG não estiver definido, o valor hCryptProv será liberado implicitamente quando a propriedade estiver definida como NULL ou na liberação final da estrutura CERT_CONTEXT .
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 pvData: um ponteiro para um valor DWORD .
O valor DWORD que especifica a chave privada. O membro dwKeySpec da estrutura 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 CertGetCertificateContextProperty .
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 NCRYPT_KEY_HANDLE da chave privada do certificado e define dwKeySpec como CERT_NCRYPT_KEY_SPEC.
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 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 é usado atualmente 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 CRYPT_DATA_BLOB .
Essa propriedade define a resposta do OCSP (certificado online status protocol) codificado de um CERT_SERVER_OCSP_RESPONSE_CONTEXT para esse certificado.
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: Não há suporte para esse identificador.
CERT_PUBKEY_ALG_PARA_PROP_ID
Tipo de dados de pvData: um ponteiro para uma estrutura 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 CryptEncodeObject . Isso será usado somente se CMS_PKCS7 for definido.
CERT_PUBKEY_HASH_RESERVED_PROP_ID
Esse identificador é reservado.
CERT_PVK_FILE_PROP_ID
Tipo de dados de pvData: um ponteiro para uma estrutura 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 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 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 originação da solicitação de contexto de certificado.
CERT_ROOT_PROGRAM_CERT_POLICIES_PROP_ID
Tipo de dados de pvData: um ponteiro para uma estrutura 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 CryptDecodeObject com o parâmetro lpszStructType definido como X509_CERT_POLICIES e o parâmetro dwCertEncodingType definido como uma combinação de X509_ASN_ENCODINGor PKCS_7_ASN_ENCODINGbit a bit.
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: Não há suporte para esse identificador.
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 CertGetCertificateContextProperty .
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á calculado usando a função CryptHashToBeSigned . pvData aponta para um hash existente ou computado. Normalmente, o comprimento do hash é de 20 bytes para SHA e 16 para MD5.
CERT_SMART_CARD_DATA_PROP_ID
Tipo de dados de pvData: um ponteiro para uma estrutura CRYPT_DATA_BLOB .
Essa propriedade define a propriedade de dados smart cartão 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 CRYPT_DATA_BLOB .
Essa propriedade define a propriedade de informações de um contexto de certificado raiz 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 CRYPT_DATA_BLOB .
Essa propriedade define a extensão de acesso de informações do assunto do contexto de 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 CRYPT_DATA_BLOB .
Retorna um hash MD5 do nome da entidade codificado 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: Não há suporte para esse identificador.
CERT_SUBJECT_PUBLIC_KEY_MD5_HASH_PROP_ID
Tipo de dados de pvData: um ponteiro para uma estrutura 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 dwPropId adicionais usando valores DWORD de CERT_FIRST_USER_PROP_ID para CERT_LAST_USER_PROP_ID. Para todos os tipos dwPropId definidos pelo usuário, pvData aponta para uma estrutura de CRYPT_DATA_BLOB codificada.
[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á persistido.
[in] pvData
Um ponteiro para um tipo de dados determinado pelo valor de dwPropId.
Retornar valor
Se a função for bem-sucedida, a função retornará TRUE.
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 . |
Comentários
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 dwPropId que são avaliados como TRUE para cada macro.
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 IS_STRONG_SIGN_PROP_ID(x) será avaliada como TRUE se as propriedades CERT_SIGN_HASH_CNG_ALG_PROP_ID, CERT_SUBJECT_PUB_KEY_BIT_LENGTH_PROP_ID ou CERT_PUB_KEY_CNG_ALG_BIT_LENGTH_PROP_ID forem definidas no parâmetro dwPropId .
Exemplos
Para obter um exemplo que usa essa função, consulte Exemplo de Programa C: Obtendo e definindo propriedades de certificado.
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 |
Confira também
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de