IX509CertificateRequestPkcs10V2::InitializeFromPrivateKeyTemplate 메서드(certenroll.h)
InitializeFromPrivateKeyTemplate 메서드는 IX509PrivateKey 개체 및 인증서 템플릿을 사용하여 인증서 요청을 초기화합니다.
구문
HRESULT InitializeFromPrivateKeyTemplate(
[in] X509CertificateEnrollmentContext Context,
[in] IX509PrivateKey *pPrivateKey,
[in] IX509EnrollmentPolicyServer *pPolicyServer,
[in] IX509CertificateTemplate *pTemplate
);
매개 변수
[in] Context
요청된 인증서가 최종 사용자, 컴퓨터 또는 컴퓨터를 대신하여 작동하는 관리자용인지 여부를 지정하는 X509CertificateEnrollmentContext 열거형 값입니다. 다음 값 중 하나일 수 있습니다. 그러나 프라이빗 키의 MachineContext 속성이 설정된 경우 ContextMachine 열거형 값을 지정해야 합니다.
값 | 의미 |
---|---|
|
최종 사용자에 대해 인증서가 요청되고 있습니다. |
|
컴퓨터에 대해 인증서가 요청되고 있습니다. |
|
컴퓨터 대신 작동하는 관리자가 인증서를 요청합니다. |
[in] pPrivateKey
프라이빗 키를 나타내는 IX509PrivateKey 인터페이스에 대한 포인터입니다.
[in] pPolicyServer
pTemplate 매개 변수로 지정된 템플릿을 포함하는 CEP(인증서 등록 정책) 서버를 나타내는 IX509EnrollmentPolicyServer 개체에 대한 포인터입니다.
[in] pTemplate
초기화 중에 사용할 템플릿을 나타내는 IX509CertificateTemplate 개체에 대한 포인터입니다.
반환 값
함수가 성공하면 함수는 S_OK 반환합니다.
함수가 실패하면 오류를 나타내는 HRESULT 값을 반환합니다. 가능한 값에는 다음 표에 있는 값이 포함되지만, 이에 국한되는 것은 아닙니다. 일반적인 오류 코드 목록은 일반 HRESULT 값을 참조하세요.
반환 코드 | 설명 |
---|---|
|
pPrivateKey, pPolicyServer 또는 pTemplate 매개 변수는 NULL입니다. |
|
인증서 요청 개체가 이미 초기화되었습니다. |
설명
InitializeFromPrivateKeyTemplate 메서드는 다음 작업을 수행합니다.
- 템플릿에서 지정한 확장을 IX509Extensions 컬렉션에 추가합니다.
- IObjectIds 컬렉션을 만들고 기본 XCN_OID_KEY_USAGE 및 XCN_OID_BASIC_CONSTRAINTS2 개체 식별자를 채웁니다. 템플릿에서 이러한 OID가 중요하지 않음을 나타내는 경우 컬렉션에서 제거됩니다. 템플릿에서 중요로 표시된 OID가 추가됩니다.
- 템플릿이 대칭 알고리즘을 지원하는 경우 SmimeCapabilities 속성을 설정합니다.
- 템플릿에 불연속 서명 알고리즘 OID가 필요한 경우 AlternateSignatureAlgorithm 속성을 설정합니다.
- IX509SignatureInformation 개체를 만듭니다.
- 템플릿에 알고리즘이 지정된 경우 해시 알고리즘 OID를 만들고 IX509SignatureInformation 개체에 설정합니다.
- 템플릿에서 비대칭 암호화 알고리즘 OID(있는 경우)를 검색하고 IX509SignatureInformation 개체에 설정합니다.
- 템플릿 설정에서 많은 IX509PrivateKey 속성을 채웁니다.
CSPInformations 속성을 지정하지 않으면 메서드는 컴퓨터에 설치된 공급자로부터 ICspInformations 컬렉션을 만듭니다.
이 시점에서는 프라이빗 키가 만들어지지 않습니다. 메서드에 전달된 IX509PrivateKey 개체가 기존 키를 나타내지 않으면 Encode 메서드가 호출될 때 키가 만들어집니다. 템플릿이 지정되지 않았고 IX509PrivateKey의 ProviderName 속성이 설정되지 않은 경우 기본 공급자를 사용하여 키가 만들어집니다. 프라이빗 키가 있으면 PrivateKey 속성에 설정됩니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 7 [데스크톱 앱만 해당] |
지원되는 최소 서버 | Windows Server 2008 R2 [데스크톱 앱만 해당] |
대상 플랫폼 | Windows |
헤더 | certenroll.h |