NCryptEnumAlgorithms 関数 (ncrypt.h)

NCryptEnumAlgorithms 関数は、指定されたキー ストレージ プロバイダーでサポートされているアルゴリズムの名前を取得します。

構文

SECURITY_STATUS NCryptEnumAlgorithms(
  [in]  NCRYPT_PROV_HANDLE  hProvider,
  [in]  DWORD               dwAlgOperations,
  [out] DWORD               *pdwAlgCount,
  [out] NCryptAlgorithmName **ppAlgList,
  [in]  DWORD               dwFlags
);

パラメーター

[in] hProvider

アルゴリズムを列挙するキー ストレージ プロバイダーのハンドル。 このハンドルは、 NCryptOpenStorageProvider 関数を使用して取得されます。

[in] dwAlgOperations

列挙するアルゴリズム クラスを決定する値のセット。 これは、0 または次の値の 1 つ以上の組み合わせにすることができます。 dwAlgOperations が 0 の場合、すべてのアルゴリズムが列挙されます。

意味
NCRYPT_CIPHER_OPERATION
0x00000001
暗号 (対称暗号化) アルゴリズムを列挙します。
NCRYPT_HASH_OPERATION
0x00000002
ハッシュ アルゴリズムを列挙します。
NCRYPT_ASYMMETRIC_ENCRYPTION_OPERATION
0x00000004
非対称暗号化アルゴリズムを列挙します。
NCRYPT_SECRET_AGREEMENT_OPERATION
0x00000008
秘密契約アルゴリズムを列挙します。
NCRYPT_SIGNATURE_OPERATION
0x00000010
デジタル署名アルゴリズムを列挙します。

[out] pdwAlgCount

ppAlgList 配列内の要素数を受け取る DWORD のアドレス。

[out] ppAlgList

登録されたアルゴリズム名の配列を受け取る NCryptAlgorithmName 構造体ポインターのアドレス。 pdwAlgCount パラメーターが指す変数は、この配列内の要素の数を受け取ります。

このメモリが不要になったら、このポインターを NCryptFreeBuffer 関数に渡すことによって解放する必要があります。

[in] dwFlags

関数の動作を変更するフラグ。 0 または次の値を指定できます。

意味
NCRYPT_SILENT_FLAG
キー サービス プロバイダー (KSP) にユーザー インターフェイスが表示されないことを要求します。 プロバイダーが操作する UI を表示する必要がある場合、呼び出しは失敗し、KSP は NTE_SILENT_CONTEXT エラー コードを最後のエラーとして設定する必要があります。

戻り値

関数の成功または失敗を示す状態コードを返します。

可能なリターン コードには、次のものが含まれますが、これらに限定されません。

リターン コード 説明
ERROR_SUCCESS
関数は成功しました。
NTE_BAD_FLAGS
dwFlags パラメーターに無効な値が含まれています。
NTE_INVALID_HANDLE
hProvider パラメーターが無効です。
NTE_INVALID_PARAMETER
1 つ以上のパラメーターが無効です。
NTE_NO_MEMORY
メモリ割り当てエラーが発生しました。

注釈

サービスは 、StartService 関数からこの関数を呼び出してはなりません。 サービスが StartService 関数からこの関数を呼び出すと、デッドロックが発生し、サービスが応答を停止する可能性があります。

要件

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