IX509CertificateRequestPkcs7 インターフェイス (certenroll.h)

IX509CertificateRequestPkcs7 インターフェイスは、PKCS #7 証明書メッセージ構文 (CMS) オブジェクトを表します。 PKCS #7 は、公開キー証明書を要求するために証明機関または登録機関に送信されるメッセージの形式を定義します。 IX509CertificateRequestPkcs7 インターフェイスは、その実装が PKCS #7 標準に関するほとんどのセキュリティ プロフェッショナルの考え方を完全にミラーしていないため、混乱を招く可能性があります。 この混乱を避けるために、次の点に注意してください。

  • PKCS #7 メッセージを使用して CMC 要求をラップしますが、 IX509CertificateRequestPkcs7 オブジェクトに IX509CertificateRequestCmc オブジェクトを 含めることはできません。 代わりに、 IX509CertificateRequestCmc インターフェイスは IX509CertificateRequestPkcs7 インターフェイスを継承して実装します。 そのため、CMC 要求は、CMC コンテンツを含む PKCS #7 SignedData オブジェクト、null 署名またはキーベースのプライマリ署名、および 0 個以上の証明書ベースの署名です。 これに対し、PKCS #7 要求は、PKCS #10 コンテンツ (このリストの次の項目を参照) を含み、証明書ベースの署名を 1 つだけ持つ SignedData オブジェクトです。
  • IX509CertificateRequestPkcs7 には、IX509CertificateRequestPkcs10 オブジェクトが含まれている必要があります。 PKCS #7 メッセージで PKCS #10 要求をラップするメイン利点は、複数の署名者を追加できることです。 PKCS #10 要求は関連付けられた秘密キーによって署名され、PKCS #10 要求をラップする PKCS #7 メッセージも署名されます。 この 2 番目の署名者は、更新される証明書 (更新要求の場合) または登録エージェント証明書 (登録の代理要求) を使用します。
  • 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