次の方法で共有


IObjectId::InitializeFromAlgorithmName メソッド (certenroll.h)

InitializeFromAlgorithmName メソッドは、アルゴリズム名またはオブジェクト識別子からオブジェクトを初期化します。 このメソッドは、主に Cryptography API: Next Generation (CNG) アルゴリズム名からオブジェクトを初期化できるようにするために提供されています。 ただし、任意の OID 名を指定できます。 このメソッドは Web 対応です。

構文

HRESULT InitializeFromAlgorithmName(
  [in] ObjectIdGroupId        GroupId,
  [in] ObjectIdPublicKeyFlags KeyFlags,
  [in] AlgorithmFlags         AlgFlags,
  [in] BSTR                   strAlgorithmName
);

パラメーター

[in] GroupId

検索する OID グループを指定する ObjectIdGroupId 列挙値。 これには、次のアルゴリズム グループのいずれかを指定できます。

  • XCN_CRYPT_HASH_ALG_OID_GROUP_ID
  • XCN_CRYPT_ENCRYPT_ALG_OID_GROUP_ID
  • XCN_CRYPT_PUBKEY_ALG_OID_GROUP_ID
  • XCN_CRYPT_SIGN_ALG_OID_GROUP_ID
さらに、暗号化アルゴリズムを含まないグループを指定することもできます。
  • XCN_CRYPT_RDN_ATTR_OID_GROUP_ID
  • XCN_CRYPT_EXT_OR_ATTR_OID_GROUP_ID
  • XCN_CRYPT_ENHKEY_USAGE_OID_GROUP_ID
  • XCN_CRYPT_POLICY_OID_GROUP_ID
  • XCN_CRYPT_TEMPLATE_OID_GROUP_ID

[in] KeyFlags

署名アルゴリズムと暗号化アルゴリズムのどちらを検索するかを指定する ObjectIdPublicKeyFlags 列挙値。 次のいずれかの値を指定できます。

  • XCN_CRYPT_OID_INFO_PUBKEY_SIGN_KEY_FLAG
  • XCN_CRYPT_OID_INFO_PUBKEY_ENCRYPT_KEY_FLAG
いずれかの値を使用して、メッセージの暗号化と署名の両方に使用できる RSA などのアルゴリズム間であいまいさを解消できます。 GroupId パラメーターにXCN_CRYPT_PUBKEY_ALG_OID_GROUP_IDも指定する必要があります。

[in] AlgFlags

AlgorithmFlags 列挙値。 次のいずれかの値を指定できます。

  • AlgorithmFlagsNone
  • AlgorithmFlagsWrap
GroupId パラメーターにXCN_CRYPT_ENCRYPT_ALG_OID_GROUP_IDを指定した場合は、AlgorithmFlags 列挙を使用して、キーのラップに使用できる OID を検索できます。 たとえば、ビット長を 128 に指定した場合 (「解説」セクションを参照)、 strAlgorithmName パラメーターを AES に設定し、 AlgorithmFlagsWrap を指定すると、AES128wrap アルゴリズムに関する情報を取得できます。

[in] strAlgorithmName

名前を含む BSTR 変数。 名前または OID は、ドット 10 進形式で指定できます。 メソッドは、形式が ASN.1 X.208 標準と一致していることを確認します。 CNG アルゴリズム名の詳細については、「 CNG アルゴリズム識別子」を参照してください。

戻り値

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

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

リターン コード/値 Description
CERTSRV_E_PROPERTY_EMPTY
OID 情報が見つかりませんでした。
CRYPT_E_UNKNOWN_ALGO
アルゴリズム名が認識されません。
HRESULT_FROM_WIN32(ERROR_ALREADY_INITIALIZED)
オブジェクトは既に初期化されています。

注釈

GroupId パラメーターの上位 16 ビットを使用して、可変ビット長を受け入れるアルゴリズムのキー サイズを指定できます。 たとえば、192 ビット AES アルゴリズムから IObjectId オブジェクトを初期化するには、strAlgorithmName パラメーターに "AES" を指定し、長さを 16 だけシフトし、シフトされたビット長と GroupId 値に対してビットごとの OR の組み合わせを実行します。

要件

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

こちらもご覧ください

IObjectId