Share via


IX509CertificateRequestCmc2::InitializeFromTemplate 메서드(certenroll.h)

InitializeFromTemplate 메서드는 템플릿을 사용하여 인증서 요청을 초기화합니다.

구문

HRESULT InitializeFromTemplate(
  [in] X509CertificateEnrollmentContext context,
  [in] IX509EnrollmentPolicyServer      *pPolicyServer,
  [in] IX509CertificateTemplate         *pTemplate
);

매개 변수

[in] context

요청된 인증서가 컴퓨터를 대신하여 작동하는 최종 사용자, 컴퓨터 또는 관리자를 위한 것인지 여부를 지정하는 X509CertificateEnrollmentContext 열거형 형식의 값입니다. 다음 값 중 하나일 수 있습니다.

의미
ContextUser
최종 사용자에 대해 인증서가 요청되고 있습니다.
ContextMachine
컴퓨터에 대해 인증서가 요청되고 있습니다.
ContextAdministratorForceMachine
컴퓨터 대신 작동하는 관리자가 인증서를 요청합니다.

[in] pPolicyServer

pTemplate 매개 변수로 지정된 템플릿을 포함하는 CEP(인증서 등록 정책) 서버를 나타내는 IX509EnrollmentPolicyServer 개체에 대한 포인터입니다.

[in] pTemplate

초기화 중에 사용할 템플릿을 나타내는 IX509CertificateTemplate 개체에 대한 포인터입니다.

반환 값

함수가 성공하면 함수는 S_OK 반환합니다.

함수가 실패하면 오류를 나타내는 HRESULT 값을 반환합니다. 가능한 값에는 다음 표에 있는 값이 포함되지만, 이에 국한되는 것은 아닙니다. 일반적인 오류 코드 목록은 일반적인 HRESULT 값을 참조하세요.

반환 코드 설명
E_POINTER
pPolicyServerpTemplate 매개 변수는 NULL일 수 없습니다.
HRESULT_FROM_WIN32(ERROR_ALREADY_INITIALIZED)
인증서 요청 개체가 이미 초기화되었습니다.

설명

InitializeFromTemplate 메서드는 다음 컬렉션을 만듭니다.

  • ICryptAttributes 컬렉션입니다.
  • IX509Extensions 컬렉션입니다.
  • 기본 XCN_OID_KEY_USAGE 및 XCN_OID_BASIC_CONSTRAINTS2 개체 식별자가 채워진 IObjectIds 컬렉션입니다.
  • 새 요청에서 표시하지 않을 특성 및 확장 OID에 대한 빈 IObjectIds 컬렉션입니다.

그런 다음 메서드는 템플릿을 검사하고 다음 작업을 수행합니다.

  • 템플릿에서 지정한 확장을 IX509Extensions 컬렉션에 추가합니다 .
  • 템플릿이 중요하지 않음을 나타내는 경우 컬렉션에서 기본 중요 확장(XCN_OID_KEY_USAGE 및 XCN_OID_BASIC_CONSTRAINTS2)을 제거합니다. 템플릿에서 중요로 표시된 OID가 추가됩니다.
  • 템플릿이 대칭 알고리즘을 지원하는 경우 SmimeCapabilities 속성을 설정합니다.
  • 템플릿에 불연속 서명 알고리즘 OID가 필요한 경우 AlternateSignatureAlgorithm 속성을 설정합니다.
  • IX509SignatureInformation 개체를 만듭니다.
  • 템플릿에 알고리즘을 지정하고 IX509SignatureInformation 개체에 설정하는 경우 해시 알고리즘 OID를 만듭니다.
  • 알고리즘이 템플릿에 지정된 경우 비대칭 암호화 알고리즘 OID를 만들고 IX509SignatureInformation 개체에 설정합니다.
  • 템플릿 설정에서 많은 IX509PrivateKey 속성을 채웁니다.

CSPInformations 속성이 NULL이면 메서드는 컴퓨터에 설치된 공급자로부터 ICspInformations 컬렉션을 만듭니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 7 [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2008 R2 [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 certenroll.h

추가 정보

IX509CertificateRequestCmc2