PasswordDeriveBytes::CryptDeriveKey Method (String^, String^, Int32, array<Byte>^)


The .NET API Reference documentation has a new home. Visit the .NET API Browser on to see the new experience.

Derives a cryptographic key from the PasswordDeriveBytes object.

Namespace:   System.Security.Cryptography
Assembly:  mscorlib (in mscorlib.dll)

array<unsigned char>^ CryptDeriveKey(
	String^ algname,
	String^ alghashname,
	int keySize,
	array<unsigned char>^ rgbIV


Type: System::String^

The algorithm name for which to derive the key.

Type: System::String^

The hash algorithm name to use to derive the key.

Type: System::Int32

The size of the key, in bits, to derive.

Type: array<System::Byte>^

The initialization vector (IV) to use to derive the key.

Return Value

Type: array<System::Byte>^

The derived key.

Exception Condition

The keySize parameter is incorrect.


The cryptographic service provider (CSP) cannot be acquired.


The algname parameter is not a valid algorithm name.


The alghashname parameter is not a valid hash algorithm name.

This function is a wrapper for the Crypto API function CryptDeriveKey(), and is intended to offer interoperability with applications using the Crypto API.

If the keySize parameter is set to 0 bits, the default key size for the specified algorithm is used.

This code example is part of a larger example provided for the PasswordDeriveBytes class.

// Create the key and set it to the Key property
// of the TripleDESCryptoServiceProvider object.
    cryptoDESProvider->Key = passwordDeriveBytes->CryptDeriveKey
        ("TripleDES", "SHA1", 192, cryptoDESProvider->IV);

.NET Framework
Available since 1.1
Return to top