확장 함수
X.509 버전 3 인증서 형식은 키 사용, 인증서 정책 및 제약 조건, 대체 이름 양식 등에 대한 향상된 정보를 제공하기 위해 인증서에 추가할 수 있는 여러 확장을 식별합니다.
CertEnroll.dll 인증서 확장을 관리하기 위해 다음 인터페이스를 구현합니다.
- IX509Extension
- IX509Extensions
- IX509ExtensionAlternativeNames
- IX509ExtensionAuthorityKeyIdentifier
- IX509ExtensionBasicConstraints
- IX509ExtensionCertificatePolicies
- IX509ExtensionEnhancedKeyUsage
- IX509ExtensionKeyUsage
- IX509ExtensionMSApplicationPolicies
- IX509ExtensionSmimeCapabilities
- IX509ExtensionSubjectKeyIdentifier
- IX509ExtensionTemplate
- IX509ExtensionTemplateName
다음 각 섹션에서는 인증서 확장을 관리하기 위해 Xenroll.dll 내보낸 함수에 대해 설명합니다. 각 섹션에서는 CertEnroll.dll 사용하여 함수를 교체하는 방법을 설명하거나 두 라이브러리 간에 매핑이 없음을 나타냅니다.
- AddCertTypeToRequestWStr
- AddCertTypeToRequestWStrEx
- AddExtensionsToRequest
- addExtensionToRequestWStr
- EnableSMIMECapabilities
- IncludeSubjectKeyID
- resetExtensions
- 관련 항목
AddCertTypeToRequestWStr
Xenroll.dll AddCertTypeToRequestWStr 함수는 요청에 이름으로 인증서 템플릿을 추가합니다.
CertEnroll.dll 사용하여 인증서 요청에 템플릿을 통합하는 기본 방법은 PKCS#10 또는 [*PKCS ) 요청 개체의 InitializeFromTemplateName 메서드 또는 CMC 요청에 InitializeFromInnerRequestTemplateName 메서드를 사용하는 것입니다.
클라이언트에서 특정 템플릿을 사용할 수 없지만 CA( 인증 기관 )에서 이해해야 하는 경우 IX509ExtensionTemplateName 인터페이스를 사용하여 버전 1 템플릿을 추가하거나 IX509ExtensionTemplate 인터페이스를 사용하여 인증서 요청에 버전 2 템플릿을 추가할 수 있습니다. 예를 들어 버전 1 템플릿을 추가하려면 다음 작업을 수행합니다.
- IX509Extensions 개체를 만듭니다.
- IX509ExtensionTemplateName 개체를 만들고 InitializeEncode 메서드를 호출하여 템플릿 이름을 지정합니다.
- Add 메서드를 호출하여 만든 확장을 IX509Extensions 컬렉션에 추가합니다.
- IX509AttributeExtensions 개체를 만들고 InitializeEncode 메서드를 호출하여 입력 시 IX509Extensions 컬렉션을 지정합니다.
- 기존 IX509CertificateRequestPkcs10 또는 IX509CertificateRequestCmc 요청 개체에서 CryptAttributes 속성을 호출하여 ICryptAttributes 컬렉션 개체를 검색합니다.
AddCertTypeToRequestWStrEx
Xenroll.dll AddCertTypeToRequestWStrEx 함수는 이름, 개체 식별자 및 버전별로 요청에 인증서 템플릿을 추가합니다.
CertEnroll.dll 사용하여 요청에 템플릿 정보를 통합하는 방법에 대한 자세한 내용은 AddCertTypeToRequestWStr을 참조하세요.
AddExtensionsToRequest
Xenroll.dll AddExtensionsToRequest 함수는 확장 컬렉션을 요청에 추가합니다.
CertEnroll.dll CMC 또는 PKCS #10 요청의 특성 컬렉션에 확장이 추가됩니다. 확장을 추가하려면 다음 작업을 수행합니다.
- IX509Extensions 개체를 만듭니다.
- IX509Extension 개체를 만들고 Initialize 메서드를 호출하여 개체 식별자 및 확장 값에서 확장을 만들거나 앞에서 나열된 인터페이스 중 하나를 사용하여 보다 일반적인 확장 중 하나를 정의합니다.
- Add 메서드를 호출하여 이전 단계에서 만든 각 새 확장을 IX509Extensions 컬렉션에 추가합니다.
addExtensionToRequestWStr
Xenroll.dll addExtensionToRequestWStr 함수는 요청에 특정 확장을 추가합니다.
CertEnroll.dll CMC 또는 PKCS #10 요청의 특성 컬렉션에 확장 컬렉션을 추가하기 전에 특정 확장을 정의하고 확장 컬렉션에 추가해야 합니다. 자세한 내용은 위의 AddExtensionsToRequest 토론을 참조하세요.
EnableSMIMECapabilities
Xenroll.dll EnableSMIMECapabilities 함수는 요청에 SMIMECapabilities 확장을 추가할지 여부를 나타내는 부울 값을 지정하거나 검색합니다.
인코딩하기 전에 IX509CertificateRequestPkcs10 개체에서 SmimeCapabilities 속성을 호출하여 IX509ExtensionSmimeCapabilities 개체를 요청에 자동으로 추가할 수 있습니다.
IncludeSubjectKeyID
Xenroll.dll IncludeSubjectKeyID 함수는 요청에 SubjectKeyIdentifier 확장을 추가할지 여부를 나타내는 부울 값을 지정하거나 검색합니다.
기본적으로 SubjectKeyIdentifier 확장은 IX509CertificateRequestPkcs10 요청 개체가 초기화될 때 만들어집니다. SuppressOids 속성을 호출하여 이 동작을 재정의할 수 있습니다.
퍼블릭/프라이빗 키 쌍이 있는 경우 CertEnroll.dll IX509ExtensionSubjectKeyIdentifier 인터페이스를 사용하여 다음 작업을 수행하여 인증서 요청에 SubjectKeyIdentifier 확장을 추가할 수도 있습니다.
- IX509Extensions 개체를 만듭니다.
- IX509ExtensionSubjectKeyIdentifier 개체를 만들고 InitializeEncode 메서드를 호출하여 식별자가 포함된 문자열을 지정합니다. 일반적으로 CA 서명 인증서에 포함된 공개 키 의 20바이트 SHA-1 해시입니다.
- Add 메서드를 호출하여 만든 확장을 IX509Extensions 컬렉션에 추가합니다.
- IX509AttributeExtensions 개체를 만들고 InitializeEncode 메서드를 호출하여 입력 시 IX509Extensions 컬렉션을 지정합니다.
- 기존 IX509CertificateRequestPkcs10 또는 IX509CertificateRequestCmc 요청 개체에서 CryptAttributes 속성을 호출하여 ICryptAttributes 컬렉션 개체를 검색합니다.
resetExtensions
Xenroll.dll resetExtensions 함수는 요청에서 확장 컬렉션을 제거합니다.
CertEnroll.dll 사용하여 인덱스 번호로 요청에서 확장을 제거하려면 IX509Extensions 컬렉션에서 Remove 메서드를 호출합니다. 요청에서 모든 특성을 제거하려면 Clear 메서드를 호출합니다.
관련 항목