InitializeDecode メソッドは、既存の署名済みまたは署名されていない PKCS #7 要求オブジェクトをデコードし、それを使用して新しい PKCS #7 オブジェクトを初期化します。 既存の要求は、抽象構文表記法 1 (ASN.1) 標準で定義されている識別エンコード規則 (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 を呼び出します。
| 価値 | Description |
|---|---|
| L"ContextMachine" | エンコードされた証明書要求は、コンピューター用です。 |
| L"ContextUser" | エンコードされた証明書要求はエンド ユーザー向けです。 |
| L"ContextAdministratorForceMachine" | エンコードされた証明書は、コンピューターの代わりに機能する管理者によって要求されています。 |
次に、strEncodedData 引数にエンコードされた証明書が設定された InitializeDecode メソッドをもう一度呼び出します。
Requirements
| Requirement | 価値 |
|---|---|
| サポートされる最小クライアント | Windows Vista [デスクトップ アプリのみ] |
| サポートされている最小のサーバー | Windows Server 2008 [デスクトップ アプリのみ] |
| ターゲット プラットフォーム の | ウィンドウズ |
| Header | certenroll.h |
| DLL | CertEnroll.dll |