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 |