Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
As interfaces a seguir são usadas para adicionar atributos a uma solicitação de certificado:
- ICryptAttribute
- ICryptAttributes
- IX509Attribute
- IX509Atributos
A arquitetura segue a definida no módulo ASN.1 da sintaxe de solicitação de certificação PKCS #10.
CertificationRequestInfo ::= SEQUENCE
{
version CertificationRequestInfoVersion,
subject ANY,
subjectPublicKeyInfo SubjectPublicKeyInfo,
attributes [0] IMPLICIT Attributes
}
Attributes ::= SET OF Attribute
Attribute ::= SEQUENCE
{
type EncodedObjectID,
values AttributeSetValue
}
A coleçãoICryptAttributes corresponde ao campo atributos e cada objeto ICryptAttribute na coleção corresponde a uma estrutura ASN.1 Attribute.
Cada de atributo consiste em um identificador de objeto (OID) e zero ou mais valores associados ao OID. Um único par de valores OID é representado por uma interfaceIX509Attribute. Você pode usar uma coleçãoIX509Attributes para inicializar um ICryptAttribute objeto, mas cada atributo na coleção deve ser associado ao mesmo OID. Normalmente, um atributo tem apenas um valor.
Você pode usar qualquer uma das seguintes interfaces, que derivam de IX509Attribute, para criar um único par de atributos OID/value:
- IX509AttributeClientId
- IX509AttributeExtensions
- IX509AttributeArchiveKey
- IX509AttributeArchiveKeyHash
- IX509AttributeCspProvider
- IX509AttributeOSVersion
- IX509AttributeRenewalCertificate
Por exemplo, o procedimento a seguir mostra como criar um atributo ClientId.
Para criar um atributo ClientId
- Recupere um objeto ICryptAttributes de umIX509CertificateRequestPkcs10 ou objeto de IX509CertificateRequestCmc.
- Crie e inicialize um objeto IX509AttributeClientId.
- Crie uma coleçãoIX509Attributes e adicione o objeto IX509AttributeClientId.
- Use a coleçãoIX509Attributes para inicializar um ICryptAttribute objeto.
- Adicione o ICryptAttribute objeto à coleção recuperada na etapa 1.
O exemplo a seguir mostra a saída ASN.1 do atributo ClientId. O atributo contém o nome DNS do computador no qual a solicitação foi gerada (test3d.jdomcsc.nttest.microsoft.com), o nome SAM do usuário (JDOMCSC\administrator) e o nome do aplicativo que gerou a solicitação (certreq).
0136: 30 57; SEQUENCE (57 Bytes)
0138: | 06 09 ; OBJECT_ID (9 Bytes)
013a: | | 2b 06 01 04 01 82 37 15 14
| | ; 1.3.6.1.4.1.311.21.20 Client Information
0143: | | 31 4a ; SET (4a Bytes)
0145: | | 30 48 ; SEQUENCE (48 Bytes)
0147: | | 02 01 ; INTEGER (1 Bytes)
0149: | | | 09
014a: | | 0c 23 ; UTF8_STRING (23 Bytes)
014c: | | | 74 65 73 74 33 64 2e 6a 64 6f 6d 63 73 63 2e 6e
015c: | | | 74 74 65 73 74 2e 6d 69 63 72 6f 73 6f 66 74 2e
016c: | | | 63 6f 6d
| | | ; "test3d.jdomcsc.nttest.microsoft.com"
016f: | | 0c 15 ; UTF8_STRING (15 Bytes)
0171: | | | 4a 44 4f 4d 43 53 43 5c 61 64 6d 69 6e 69 73 74
0181: | | | 72 61 74 6f 72
| | | ; "JDOMCSC\administrator"
0186: | | 0c 07 ; UTF8_STRING (7 Bytes)
0188: | | 63 65 72 74 72 65 71
| | ; "certreq"
Tópicos relacionados