BCryptEnumAlgorithms function (bcrypt.h)

The BCryptEnumAlgorithms function gets a list of the registered algorithm identifiers.

Syntax

NTSTATUS BCryptEnumAlgorithms(
  [in]  ULONG                       dwAlgOperations,
  [out] ULONG                       *pAlgCount,
  [out] BCRYPT_ALGORITHM_IDENTIFIER **ppAlgList,
  [in]  ULONG                       dwFlags
);

Parameters

[in] dwAlgOperations

A value that specifies the algorithm operation types to include in the enumeration. This can be a combination of one or more of the following values.

Value Meaning
BCRYPT_CIPHER_OPERATION
0x00000001
Include the cipher algorithms in the enumeration.
BCRYPT_HASH_OPERATION
0x00000002
Include the hash algorithms in the enumeration.
BCRYPT_ASYMMETRIC_ENCRYPTION_OPERATION
0x00000004
Include the asymmetric encryption algorithms in the enumeration.
BCRYPT_SECRET_AGREEMENT_OPERATION
0x00000008
Include the secret agreement algorithms in the enumeration.
BCRYPT_SIGNATURE_OPERATION
0x00000010
Include the signature algorithms in the enumeration.
BCRYPT_RNG_OPERATION
0x00000020
Include the random number generator (RNG) algorithms in the enumeration.

[out] pAlgCount

A pointer to a ULONG variable to receive the number of elements in the ppAlgList array.

[out] ppAlgList

The address of a BCRYPT_ALGORITHM_IDENTIFIER structure pointer to receive the array of registered algorithm identifiers. This pointer must be passed to the BCryptFreeBuffer function when it is no longer needed.

[in] dwFlags

A set of flags that modify the behavior of this function. No flags are defined for this function.

Return value

Returns a status code that indicates the success or failure of the function.

Possible return codes include, but are not limited to, the following.

Return code Description
STATUS_SUCCESS
The function was successful.
STATUS_INVALID_PARAMETER
One or more parameters are not valid.
STATUS_NO_MEMORY
A memory allocation failure occurred.

Remarks

BCryptEnumAlgorithms can be called either from user mode or kernel mode. Kernel mode callers must be executing at PASSIVE_LEVEL IRQL.

Requirements

Requirement Value
Minimum supported client Windows Vista [desktop apps | UWP apps]
Minimum supported server Windows Server 2008 [desktop apps | UWP apps]
Target Platform Windows
Header bcrypt.h
Library Bcrypt.lib
DLL Bcrypt.dll