次の方法で共有


IX509CertificateRequest::Encode メソッド (certenroll.h)

Encode メソッドは、証明書要求に署名してエンコードし、存在しない場合はキー ペアを作成します。 要求は、抽象構文表記 1 (ASN.1) 標準で定義されているDistinguished Encoding Rules (DER) を使用してエンコードされます。 エンコード プロセスでは、バイト配列が作成されます。 RawData プロパティを呼び出すと、バイト配列を取得できます。

構文

HRESULT Encode();

戻り値

関数が成功した場合、関数は S_OKを返します。

関数が失敗した場合は、エラーを示す HRESULT 値を返します。 有効な値を次の表に示しますが、これ以外にもあります。 一般的なエラー コードの一覧については、「 共通 HRESULT 値」を参照してください。

リターン コード/値 Description
CERTSRV_E_ARCHIVED_KEY_REQUIRED
ARCHIVEPrivateKey プロパティは CMC 要求に対して設定されていますが、キー交換証明書が見つかりませんでした。
OLE_E_BLANK
オブジェクトが初期化されていません。

注釈

PKCS #10 要求の場合は、次のメソッドを使用します。

  • 秘密キーを更新するか、必要に応じてキーを作成します。
  • 秘密キーから公開キーを設定します。
  • 拡張機能を更新し、既定の拡張機能を追加し、抑制された OID コレクションと重要な拡張機能 OID コレクションを考慮します。
  • 属性を更新し、既定の属性を追加し、抑制された OID コレクションを考慮します。
  • 署名されていない更新された要求をアセンブルしてエンコードします。
  • 署名を作成してエンコードします。
  • 署名と署名されていない要求をエンコードします。

CMC 要求の場合は、次のメソッドを使用します。

  • すべての内部要求オブジェクトをエンコードします。
  • 外部要求オブジェクトの拡張機能を更新し、既定の拡張機能を追加し、抑制された OID コレクションと重要な拡張 OID コレクションを考慮します。
  • 外部要求オブジェクトの属性を更新し、既定の属性を追加し、抑制された OID コレクションを考慮します。
  • 名前と値のペア コレクションを更新します。
  • エンコードされた内部要求と更新された外部要求で構成される CMC コンテンツをエンコードします。
  • 署名証明書ごとに署名を作成してエンコードします。
  • プライマリ署名を作成してエンコードします。
  • エンコードされた CMC コンテンツ (内部要求と更新された外部要求を含む) とエンコードされた署名をアセンブルします。
  • アセンブルされたコンテンツを PKCS #7 メッセージにエンコードします。

要件

要件
サポートされている最小のクライアント Windows Vista [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2008 [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー certenroll.h
[DLL] CertEnroll.dll

こちらもご覧ください

IX509CertificateRequest

IX509CertificateRequestCertificate

IX509CertificateRequestCmc

IX509CertificateRequestPkcs10

IX509CertificateRequestPkcs7

IX509SignatureInformation