Share via


IX509CertificateRequestCertificate2::InitializeFromPrivateKeyTemplate 메서드(certenroll.h)

InitializeFromPrivateKeyTemplate 메서드는 IX509PrivateKey 개체 및 인증서 템플릿을 사용하여 인증서 요청을 초기화합니다.

구문

HRESULT InitializeFromPrivateKeyTemplate(
  [in] X509CertificateEnrollmentContext Context,
  [in] IX509PrivateKey                  *pPrivateKey,
  [in] IX509EnrollmentPolicyServer      *pPolicyServer,
  [in] IX509CertificateTemplate         *pTemplate
);

매개 변수

[in] Context

요청된 인증서가 최종 사용자, 컴퓨터 또는 컴퓨터를 대신하여 작동하는 관리자를 위한 것인지 여부를 지정하는 X509CertificateEnrollmentContext 열거형 값입니다. 다음 값 중 하나일 수 있습니다. 그러나 프라이빗 키MachineContext 속성이 설정된 경우 ContextMachine 열거형 값을 지정해야 합니다.

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

[in] pPrivateKey

프라이빗 키를 나타내는 IX509PrivateKey 인터페이스에 대한 포인터입니다.

[in] pPolicyServer

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

[in] pTemplate

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

반환 값

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

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

반환 코드 설명
E_POINTER
pPrivateKey, pPolicyServer 또는 pTemplate 매개 변수는 NULL입니다.
HRESULT_FROM_WIN32(ERROR_ALREADY_INITIALIZED)
인증서 요청 개체가 이미 초기화되었습니다.

설명

InitializeFromPrivateKeyTemplate 메서드는 다음 작업을 수행합니다.

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

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

이 시점에서는 프라이빗 키가 만들어지지 않습니다. 메서드에 전달된 IX509PrivateKey 개체가 기존 키를 나타내지 않으면 Encode 메서드가 호출될 때 키가 만들어집니다. 템플릿이 지정되지 않았고 IX509PrivateKeyProviderName 속성이 설정되지 않은 경우 기본 공급자를 사용하여 키를 만듭니다. 프라이빗 키가 있으면 PrivateKey 속성에 설정됩니다.

요구 사항

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

추가 정보

IX509CertificateRequestCertificate2