IX509CertificateRequestPkcs7::InitializeDecode メソッド (certenroll.h)
InitializeDecode メソッドは、既存の署名済みまたは署名されていない PKCS #7 要求オブジェクトをデコードし、それを使用して新しい PKCS #7 オブジェクトを初期化します。 既存の要求は、抽象構文表記法 1 (ASN.1) 標準で定義されているDistinguished Encoding Rules (DER) を使用してエンコードされたバイト配列に含まれています。 バイト配列は、純粋なバイナリ シーケンスまたは Unicode でエンコードされた文字列で表されます。
構文
HRESULT InitializeDecode(
[in] BSTR strEncodedData,
[in] EncodingType Encoding
);
パラメーター
[in] strEncodedData
DER でエンコードされた要求を含む BSTR 変数。
[in] Encoding
DER でエンコードされた要求を含む入力文字列に適用される Unicode エンコードの種類を指定する EncodingType 列挙値。 既定値は XCN_CRYPT_STRING_BASE64 です。
戻り値
関数が成功した場合、関数は S_OKを返します。
関数が失敗した場合は、エラーを示す HRESULT 値を返します。 有効な値を次の表に示しますが、これ以外にもあります。 一般的なエラー コードの一覧については、「 共通 HRESULT 値」を参照してください。
リターン コード/値 | Description |
---|---|
|
要求オブジェクトは既に初期化されています。 |
注釈
InitializeDecode メソッド:
- 入力時に指定された PKCS #7 要求をデコードします。
- デコードされた オブジェクトを使用して、次のコレクションを含む内部 PKCS #10 要求を作成します。
- 空の ICryptAttributes コレクション。
- 空の IX509Extensions コレクション。
- 重要な拡張機能の空 の IObjectIds コレクション。
- 新しい要求から抑制される属性および拡張 OID の空の IObjectIds コレクション。
- デコードされた拡張機能を IX509Extensions コレクションに 追加します。
- デコードされた属性を ICryptAttributes コレクションに追加します
- ClientId プロパティを設定します。
- TemplateObjectId プロパティを設定します。
- 元の PKCS #7 要求の署名を使用して、新しい ISignerCertificate オブジェクトを 作成します。
- ISignerCertificate オブジェクトから IX509SignatureInformation オブジェクトを取得します。
- 元の署名アルゴリズムとハッシュ アルゴリズムを使用して、新しい IX509SignatureInformation オブジェクトを初期化します。
- PKCS #10 要求を内部要求オブジェクトとして設定します。
既定では、 InitializeDecode メソッドは、デコードする証明書要求がエンド ユーザー向けであることを前提としています。 Windows 8とWindows Server 2012以降では、この既定の動作を変更できます。 IX509CertificateRequestPkcs7 インターフェイスのインスタンスを作成した後、Encoding パラメーターを XCN_CRYPT_STRING_BINARY に設定し、strEncodedData パラメーターを次のいずれかの値に設定して InitializeDecode を呼び出します。
値 | 説明 |
---|---|
L"ContextMachine" | エンコードされた証明書要求は、コンピューター用です。 |
L"ContextUser" | エンコードされた証明書要求は、エンド ユーザー向けです。 |
L"ContextAdministratorForceMachine" | エンコードされた証明書は、コンピューターの代わりに動作する管理者によって要求されています。 |
次に、strEncodedData 引数にエンコードされた証明書を設定して InitializeDecode メソッドをもう一度呼び出します。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows Vista [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows Server 2008 [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | certenroll.h |
[DLL] | CertEnroll.dll |