Compartilhar via


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 chaves, políticas e restrições de certificado, formulários de nome alternativos e muito mais. Uma extensão consiste em um identificador de objeto (OID), 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 pelo 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 certificado do Windows .

Observação 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 autoridade de certificação de chave pública que corresponde à autoridade de certificação chave privada que assinou um certificado emitido. Ele é usado pelo software de criação de caminho de certificado em um servidor Windows para encontrar o certificado da 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 normalmente é um hash SHA-1 da chave.
IX509ExtensionTemplate Define uma extensão Template que identifica o modelo 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 pela versão 3 X.509 padrão de sintaxe. 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 lista de revogação de certificados base (CRL).
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 autoridade de certificação emissora e mapeamentos de política de autoridade de certificação subordinados 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 o assunto do certificado. O valor da extensão é uma sequência de pares OID-value.
 

Por fim, você pode usar a interface de 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 PKCS #10 Extensões e as extensões do CMC tópicos.

Herança

A interface IX509Extension herda da interface IDispatch . IX509Extension também tem estes 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 do 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 de DER (Distinguished Encoding Rules).
IX509Extension::p ut_Critical

Especifica e recupera um valor booliano que identifica se a extensão do certificado é crítica. (Put)

Requisitos

Requisito Valor
de cliente com suporte mínimo Windows Vista [somente aplicativos da área de trabalho]
servidor com suporte mínimo Windows Server 2008 [somente aplicativos da área de trabalho]
da Plataforma de Destino Windows
cabeçalho certenroll.h

Consulte também

da API de Registro de Certificado

ICryptAttribute

de IDispatch

IX509AttributeExtensions

IX509Extensions