특성 아키텍처
다음 인터페이스는 인증서 요청에 특성을 추가하는 데 사용됩니다.
아키텍처는 PKCS #10 인증 요청 구문의 ASN.1 모듈에 정의된 것을 따릅니다.
CertificationRequestInfo ::= SEQUENCE
{
version CertificationRequestInfoVersion,
subject ANY,
subjectPublicKeyInfo SubjectPublicKeyInfo,
attributes [0] IMPLICIT Attributes
}
Attributes ::= SET OF Attribute
Attribute ::= SEQUENCE
{
type EncodedObjectID,
values AttributeSetValue
}
ICryptAttributes 컬렉션은 특성 필드에 해당하며 컬렉션의 각 ICryptAttribute 개체는 ASN.1 특성 구조에 해당합니다.
각 특성 은 OID(개체 식별자) 및 OID와 연결된 0개 이상의 값으로 구성됩니다. 단일 OID 값 쌍은 IX509Attribute 인터페이스로 표시됩니다. IX509Attributes 컬렉션을 사용하여 ICryptAttribute 개체를 초기화할 수 있지만 컬렉션의 각 특성은 동일한 OID와 연결되어야 합니다. 일반적으로 특성에는 값이 하나만 있습니다.
IX509Attribute에서 파생된 다음 인터페이스 중 하나를 사용하여 단일 OID/값 특성 쌍을 만들 수 있습니다.
- IX509AttributeClientId
- IX509AttributeExtensions
- IX509AttributeArchiveKey
- IX509AttributeArchiveKeyHash
- IX509AttributeCspProvider
- IX509AttributeOSVersion
- IX509AttributeRenewalCertificate
예를 들어 다음 절차에서는 ClientId 특성을 만드는 방법을 보여줍니다.
ClientId 특성을 만들려면
- IX509CertificateRequestPkcs10 또는 IX509CertificateRequestCmc 개체에서 ICryptAttributes 개체를 검색합니다.
- IX509AttributeClientId 개체를 만들고 초기화합니다.
- IX509Attributes 컬렉션을 만들고 IX509AttributeClientId 개체를 추가합니다.
- IX509Attributes 컬렉션을 사용하여 ICryptAttribute 개체를 초기화합니다.
- 1단계에서 검색된 컬렉션에 ICryptAttribute 개체를 추가합니다.
다음 예제에서는 ClientId 특성의 ASN.1 출력을 보여줍니다. 특성에는 요청이 생성된 컴퓨터의 DNS 이름(test3d.jdomcsc.nttest.microsoft.com), 사용자의 SAM 이름(JDOMCSC\administrator) 및 요청을 생성한 애플리케이션의 이름(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"
관련 항목