다음을 통해 공유


IX509CertificateRequestPkcs7 인터페이스(certenroll.h)

IX509CertificateRequestPkcs7 인터페이스는 PKCS #7 CMS(인증서 메시지 구문) 개체를 나타냅니다. PKCS #7은 공개 키 인증서를 요청하기 위해 인증 또는 등록 기관에 전송된 메시지의 형식을 정의합니다. IX509CertificateRequestPkcs7 인터페이스는 구현이 대부분의 보안 전문가가 PKCS #7 표준에 대해 생각하는 방식과 완벽하게 미러 않기 때문에 혼동될 수 있습니다. 이러한 혼동을 방지하려면 다음 사항에 유의하세요.

  • CMC 요청을 래핑하는 데 PKCS #7 메시지가 사용되지만 IX509CertificateRequestPkcs7 개체에는 IX509CertificateRequestCmc 개체가 포함될 수 없습니다. 대신 IX509CertificateRequestCmc 인터페이스는 IX509CertificateRequestPkcs7 인터페이스를 상속하고 구현합니다. 따라서 구현된 CMC 요청은 CMC 콘텐츠, null 서명 또는 키 기반의 기본 서명, 인증서 기반 서명이 0개 이상 포함된 PKCS #7 SignedData 개체입니다. 반면, PKCS #7 요청은 PKCS #10 콘텐츠(이 목록의 다음 항목 참조)를 포함하고 정확히 하나의 인증서 기반 서명을 포함하는 SignedData 개체입니다.
  • IX509CertificateRequestPkcs7에는 IX509CertificateRequestPkcs10 개체가 포함되어야 합니다. PKCS #7 메시지에서 PKCS #10 요청을 래핑할 때의 기본 이점은 여러 서명자를 추가하는 기능입니다. PKCS #10 요청은 연결된 프라이빗 키로 서명되고 PKCS #10 요청을 래핑하는 PKCS #7 메시지도 서명됩니다. 이 두 번째 서명자는 갱신 중인 인증서(갱신 요청의 경우) 또는 등록 에이전트 인증서(대신 등록 요청의 경우)를 사용합니다.
  • IX509CertificateRequestPkcs7 개체에 래핑하지 않고 독립 실행형 IX509CertificateRequestPkcs10 인증서 요청을 만들고 등록할 수 있습니다.

다음 구문 예제에서 PKCS #7 개체의 ASN.1 표현은 다양한 데이터 형식으로 구성될 수 있음을 보여줍니다.


PKCS7ContentTable PKCS7-CONTENT-TYPE ::=
{
    data | signed-data | enveloped-data | signed-and-enveloped-data |
    digested-data | encrypted-data | authenticated-data, ...
}

이 중 아래에 표시된 SignedData 개체가 가장 관련이 있습니다. SignedData 개체에서 참조되는 SignerInfo 개체에는 서명 정보가 포함됩니다. 자세한 내용은 PKCS #7 특성을 참조하세요.


-------------------------------------------------------------------
-- signed-data
-------------------------------------------------------------------

SignedData ::= SEQUENCE 
{
  version           INTEGER,
  digestAlgorithms  DigestAlgorithmIdentifiers,
  contentInfo       ContentInfo,
  certificates      [0] IMPLICIT Certificates OPTIONAL,
  crls              [1] IMPLICIT CertificateRevocationLists OPTIONAL,
  signerInfos       SignerInfos
}

SignerInfo ::= SEQUENCE 
{
  version                     INTEGER,
  sid                         CertIdentifier,
  digestAlgorithm             DigestAlgorithmIdentifier,
  authenticatedAttributes     [0] IMPLICIT Attributes OPTIONAL,
  signatureAlgorithm          SignatureAlgorithmIdentifier,
  signature                   SignatureValue,
  unauthenticatedAttributes   [1] IMPLICIT Attributes
}
 

상속

IX509CertificateRequestPkcs7 인터페이스는 IX509CertificateRequest에서 상속됩니다. IX509CertificateRequestPkcs7 에는 다음과 같은 유형의 멤버도 있습니다.

메서드

IX509CertificateRequestPkcs7 인터페이스에는 이러한 메서드가 있습니다.

 
IX509CertificateRequestPkcs7::get_RequesterName

인증서를 요청하는 최종 엔터티의 SAM(보안 계정 관리자) 이름이 포함된 문자열을 지정하거나 검색합니다. (Get)
IX509CertificateRequestPkcs7::get_SignerCertificate

인증서 요청에 서명하는 데 사용되는 인증서를 지정하거나 검색합니다. (Get)
IX509CertificateRequestPkcs7::InitializeDecode

기존 서명되거나 서명되지 않은 PKCS(IX509CertificateRequestPkcs7.InitializeDecode)를 디코딩합니다.
IX509CertificateRequestPkcs7::InitializeFromCertificate

기존 인증서를 사용하여 인증서 요청을 초기화합니다. (IX509CertificateRequestPkcs7.InitializeFromCertificate)
IX509CertificateRequestPkcs7::InitializeFromInnerRequest

내부 PKCS에서 인증서 요청을 초기화합니다.
IX509CertificateRequestPkcs7::InitializeFromTemplateName

템플릿을 사용하여 인증서 요청을 초기화합니다. (IX509CertificateRequestPkcs7.InitializeFromTemplateName)
IX509CertificateRequestPkcs7::p ut_RequesterName

인증서를 요청하는 최종 엔터티의 SAM(보안 계정 관리자) 이름이 포함된 문자열을 지정하거나 검색합니다. (Put)
IX509CertificateRequestPkcs7::p ut_SignerCertificate

인증서 요청에 서명하는 데 사용되는 인증서를 지정하거나 검색합니다. (Put)

요구 사항

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

추가 정보

CertEnroll 인터페이스

IX509CertificateRequest