다음을 통해 공유


IX509CertificateRequestPkcs10::InitializeFromPrivateKey 메서드(certenroll.h)

InitializeFromPrivateKey 메서드는 IX509PrivateKey 개체 및 필요에 따라 템플릿을 사용하여 인증서 요청을 초기화합니다. 이 메서드는 웹을 사용할 수 있습니다.

구문

HRESULT InitializeFromPrivateKey(
  [in]           X509CertificateEnrollmentContext Context,
  [in]           IX509PrivateKey                  *pPrivateKey,
  [in, optional] BSTR                             strTemplateName
);

매개 변수

[in] Context

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

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

[in] pPrivateKey

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

[in, optional] strTemplateName

Active Directory 또는 점선 10진수 개체 식별자에 나타나는 템플릿의 CN(일반 이름)을 포함하는 BSTR 변수입니다. 선택적 매개 변수입니다.

반환 값

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

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

반환 코드 설명
HRESULT_FROM_WIN32(ERROR_ALREADY_INITIALIZED)
인증서 요청 개체가 이미 초기화되었습니다.

설명

템플릿을 지정하는 경우 InitializeFromPrivateKey 메서드는 다음 작업을 수행합니다.

  • 템플릿에서 지정한 확장을 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 메서드가 호출될 때 키가 만들어집니다. 템플릿이 지정되지 않았고 IX509PrivateKeyProviderName 속성이 설정되지 않은 경우 기본 공급자를 사용하여 키가 만들어집니다. 프라이빗 키가 있으면 PrivateKey 속성에 설정됩니다.

요구 사항

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

추가 정보

IX509CertificateRequestPkcs10