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

InitializeFromCertificate 메서드는 기존 인증서를 사용하여 인증서 요청을 초기화합니다. 인증서는 ASN.1(Abstract Syntax Notation One) 표준에 정의된 대로 DER(Distinguished Encoding Rules)를 사용하여 인코딩된 바이트 배열에 포함됩니다. DER로 인코딩된 바이트 배열은 순수 이진 시퀀스이거나 유니코드로 인코딩된 문자열로 표시됩니다.

구문

HRESULT InitializeFromCertificate(
  [in] X509CertificateEnrollmentContext Context,
  [in] BSTR                             strCertificate,
  [in] EncodingType                     Encoding,
  [in] X509RequestInheritOptions        InheritOptions
);

매개 변수

[in] Context

요청된 인증서가 최종 사용자, 컴퓨터 또는 컴퓨터를 대신하여 작동하는 관리자용인지 여부를 지정하는 X509CertificateEnrollmentContext 열거형 값입니다.

[in] strCertificate

DER로 인코딩된 인증서를 포함하는 BSTR 변수입니다.

Windows 7 및 Windows Server 2008 R2부터는 인코딩된 인증서 대신 인증서 지문 또는 일련 번호를 지정할 수 있습니다. 이렇게 하면 함수가 일치하는 인증서에 대한 적절한 로컬 저장소를 검색합니다. 다음 사항을 주의하세요.

  • BSTR은 짝수의 16진수여야 합니다.
  • 16진수 쌍 사이의 공백은 무시됩니다.
  • Encoding 매개 변수는 XCN_CRYPT_STRING_HEXRAW 설정해야 합니다.
  • Context 매개 변수는 사용자 또는 컴퓨터 저장소 또는 둘 다 검색되는지 여부를 결정합니다.
  • 프라이빗 키가 필요한 경우 개인 및 요청 저장소만 검색됩니다.
  • 프라이빗 키가 필요하지 않은 경우 루트 및 중간 CA 저장소도 검색됩니다.

[in] Encoding

DER로 인코딩된 인증서에 적용되는 유니코드 인코딩 유형을 지정하는 EncodingType 열거형 값입니다. 기본값은 XCN_CRYPT_STRING_BASE64.

[in] InheritOptions

기존 인증서에서 인증서 요청 개체를 만드는 방법을 지정하는 X509RequestInheritOptions 열거형 값입니다. 다음 값 중 하나를 선택하여 키를 상속하는 방법을 지정할 수 있습니다. 기본값은 InheritDefault입니다.

의미
InheritDefault
공급자 및 키 상속이 지정되지 않았습니다.
InheritNewDefaultKey
새 키를 만들지만 기본 암호화 공급자를 상속합니다.
InheritNewSimilarKey
새 키를 만들지만 기존 인증서를 만드는 데 사용되는 암호화 공급자를 상속합니다.
InheritPrivateKey
프라이빗 및 퍼블릭 키를 상속합니다.
InheritPublicKey
공개 키만 상속합니다.
 

비트 OR 연산을 사용하여 키 상속 값을 다음 값의 조합과 결합할 수도 있습니다.

의미
InheritRenewalCertificateFlag
갱신 인증서를 상속합니다. 이 플래그를 지정하면 RenewalCertificate 속성이 설정됩니다.
InheritTemplateFlag
인증서 템플릿을 상속합니다.
InheritSubjectFlag
주체 고유 이름을 상속합니다.
InheritExtensionsFlag
인증서에서 관련 확장을 상속합니다.
InheritSubjectAltNameFlag
SubjectAlternativeName 확장을 상속합니다.
InheritValidityPeriodFlag
유효 기간을 상속합니다.
 

또한 InheritNone을 지정하여 이전 테이블의 플래그(키 상속과 관련이 없는 플래그)가 기본적으로 구현되지 않도록 할 수 있습니다. InheritNone을 지정하고 키 상속과 관련이 없는 플래그도 지정하면 메서드는 E_INVALIDARG 반환합니다.

InheritOptions 매개 변수를 0으로 설정하거나 InheritDefault를 지정하고 키 상속 값을 지정하지 않으면 InheritNewSimilarKey가 기본적으로 사용됩니다.

InheritOptions 매개 변수를 0으로 설정하거나 InheritDefault를 지정하고 키 상속과 관련이 없는 값을 지정하지 않으면 기본적으로 다음 플래그가 설정됩니다.

  • InheritSubjectFlag
  • InheritExtensionsFlag
  • InheritValidityPeriodFlag
  • InheritTemplateFlag (인증서에 템플릿 확장이 포함된 경우)

반환 값

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

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

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

설명

InitializeFromCertificate 메서드는 InheritOptions 매개 변수에 지정된 옵션의 유효성을 검사하고 다음 작업을 수행하여 새 PKCS #10 요청 개체를 초기화합니다.

  • 입력 인증서에서 새 요청으로 InheritRenewalCertificateFlag를 지정한 경우 갱신 인증서를 복사합니다.
  • 기존 인증서에 템플릿을 지정하고 InheritTemplateFlag 값을 설정하면 템플릿을 복사합니다.
  • InheritSubjectFlag를 지정하는 경우 주체 고유 이름을 새 요청에 복사합니다.
  • InheritSubjectAltNameFlag를 지정하는 경우 주체 대체 이름을 새 요청에 복사합니다.
  • InheritExtensionsFlag를 지정하면 확장을 새 요청에 복사합니다.

요구 사항

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

추가 정보

IX509CertificateRequestPkcs10