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.

Nota Não use a interface base IX509Extension para representar qualquer extensão que possa ser representada por uma das interfaces a seguir. O comportamento de registro será indefinido se a interface apropriada não for usada.

 
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

API de registro de certificado

ICryptAttribute

IDispatch

IX509AttributeExtensions

IX509Extensions