This documentation is archived and is not being maintained.

PasswordDeriveBytes::CryptDeriveKey Method

Updated: December 2010

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.


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);

Windows 7, Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2008 R2, Windows Server 2008, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98

The .NET Framework and .NET Compact Framework do not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

.NET Framework

Supported in: 3.5, 3.0, 2.0, 1.1, 1.0




December 2010

Corrected exception information about key size.

Customer feedback.