Interface IX509Extension (certenroll.h)
A interface IX509Extension pode ser usada para definir uma extensão para uma solicitação de certificado. As extensões de certificado fornecem informações sobre uso de chave, políticas e restrições de certificado, formulários de nome alternativos e muito mais. Uma extensão consiste em um OID (identificador de objeto ), um valor booliano que identifica se a extensão é crítica e uma matriz de bytes que contém o valor da extensão, conforme mostrado pela seguinte sintaxe de Notação de Sintaxe Abstrata Um (ASN.1).
Extension ::= SEQUENCE
{
extnId OBJECT IDENTIFIER,
critical BOOLEAN DEFAULT FALSE,
extnValue OCTETSTRING
}
A API de Registro de Certificado contém as interfaces a seguir, derivadas de IX509Extension, que você pode usar para criar as várias extensões usadas com mais frequência em uma PKI (infraestrutura de chave pública) que depende de um servidor de certificados do Windows.
Interface | Descrição |
---|---|
IX509ExtensionAlternativeNames | Define uma extensão AlternativeNames que contém um ou mais formulários de nome alternativos para o assunto da solicitação de certificado. |
IX509ExtensionAuthorityKeyIdentifier | Define uma extensão AuthorityKeyIdentifier que permite a identificação da chave pública da autoridade de certificação que corresponde à chave privada da autoridade de certificação que assinou um certificado emitido. Ele é usado pelo software de criação de caminho de certificado em um servidor Windows para encontrar o certificado de autoridade de certificação. |
IX509ExtensionBasicConstraints | Define uma extensão BasicConstraints que identifica se a entidade pode ser usada como uma autoridade de certificação e, nesse caso, o número de autoridades de certificação subordinadas que podem existir abaixo dela na cadeia de certificados. |
IX509ExtensionCertificatePolicies | Define uma extensão CertificatePolicies que identifica as políticas sob as quais o certificado foi emitido e as finalidades para as quais ele pode ser usado. |
IX509ExtensionEnhancedKeyUsage | Define uma extensão EnhancedKeyUsage que identifica um ou mais usos da chave pública contida no certificado. |
IX509ExtensionKeyUsage | Define uma extensão KeyUsage que restringe as operações que podem ser executadas pela chave pública contida no certificado. |
IX509ExtensionMSApplicationPolicies | Define uma extensão MSApplicationPolicies que pode ser usada por um aplicativo para filtrar certificados com base no uso permitido. Os usos permitidos são identificados por OIDs (identificadores de objeto). |
IX509ExtensionSmimeCapabilities | Define uma extensão SmimeCapabilities que identifica os recursos de descriptografia de um destinatário de email para que o remetente do email possa escolher o algoritmo de criptografia mais seguro com suporte de ambas as partes. |
IX509ExtensionSubjectKeyIdentifier | Define uma extensão SubjectKeyIdentifier que diferencia entre várias chaves públicas mantidas pelo proprietário do certificado. O valor da extensão é geralmente um hash SHA-1 da chave. |
IX509ExtensionTemplate | Define uma extensão de modelo que identifica o modelo de versão 2 a ser usado ao emitir ou renovar um certificado. |
IX509ExtensionTemplateName | Define uma extensão TemplateName que identifica o modelo de versão 1 a ser usado ao emitir ou renovar um certificado. |
A maioria das extensões que podem ser criadas usando as interfaces anteriores são definidas pelo padrão de sintaxe X.509 da versão 3. Para criar as extensões da versão 3 para as quais a Microsoft não fornece um objeto personalizado, você pode usar a interface IX509Extension . Essas extensões são identificadas na tabela a seguir.
Extensão/OID | Descrição |
---|---|
AuthorityInformationAccess(XCN_OID_AUTHORITY_INFO_ACCESS) | Identifica como acessar informações e serviços da autoridade de certificação. O valor da extensão contém uma sequência de URIs. |
CrlDistributionPoints(XCN_OID_CRL_DIST_POINTS) | Contém o URI da CRL ( lista de revogação de certificado base). |
FreshestCRL(XCN_OID_FRESHEST_CRL) | Contém o URI da CRL delta. A mesma sintaxe ASN.1 é usada para essa extensão e a extensão CrlDistributionPoints . |
NameConstraints(XCN_OID_NAME_CONSTRAINTS) | Identifica o namespace no qual todos os nomes de entidade de certificados em uma hierarquia de certificados devem estar localizados. A extensão é usada apenas em um certificado de autoridade de certificação. |
PolicyConstraints(XCN_OID_POLICY_CONSTRAINTS) | Restringe a validação do caminho, proibindo o mapeamento de política ou exigindo que cada certificado na hierarquia contenha um identificador de política aceitável. |
PolicyMappings(XCN_OID_POLICY_MAPPINGS) | Identifica as políticas em uma autoridade de certificação subordinada que correspondem a políticas na autoridade de certificação emissora. O valor da extensão contém uma sequência de mapeamentos de política de autoridade de certificação emissora e de autoridade de certificação subordinada representados por identificadores de objeto. |
PrivateKeyUsagePeriod(XCN_OID_PRIVATEKEY_USAGE_PERIOD) | Especifica um período de validade diferente para a chave privada do que para o certificado ao qual a chave está associada. |
SubjectDirectoryAttributes(XCN_OID_SUBJECT_DIR_ATTRS) | Transmite atributos de identificação, como nacionalidade sobre a entidade do certificado. O valor da extensão é uma sequência de pares de valores OID. |
Por fim, você pode usar a interface IX509Extension para definir extensões privadas que contêm informações exclusivas para uma comunidade específica.
As extensões são adicionadas à estrutura Atributos de uma solicitação PKCS #10 e à estrutura TaggedAttributes de uma solicitação CMC. Para adicionar extensões a qualquer formato de solicitação, primeiro você deve adicioná-las a uma coleção IX509Extensions e usar a coleção para inicializar um objeto IX509AttributeExtensions . Para obter mais informações, consulte os tópicos Extensões do PKCS #10 e Extensões do CMC .
Herança
A interface IX509Extension herda da interface IDispatch . O IX509Extension também tem esses tipos de membros:
Métodos
A interface IX509Extension tem esses métodos.
IX509Extension::get_Critical Especifica e recupera um valor booliano que identifica se a extensão de certificado é crítica. (Obter) |
IX509Extension::get_ObjectId Recupera o OID (identificador de objeto) para a extensão. |
IX509Extension::get_RawData Recupera uma matriz de bytes que contém o valor da extensão. (IX509Extension.get_RawData) |
IX509Extension::Initialize Inicializa um objeto IX509Extension usando um OID (identificador de objeto) e uma matriz de bytes que contém a extensão codificada Distinguished Encoding Rules (DER). |
IX509Extension::p ut_Critical Especifica e recupera um valor booliano que identifica se a extensão de certificado é crítica. (Put) |
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows Vista [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Windows Server 2008 [somente aplicativos da área de trabalho] |
Plataforma de Destino | Windows |
Cabeçalho | certenroll.h |
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