This documentation is archived and is not being maintained.

PasswordDeriveBytes.CryptDeriveKey Method

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
public byte[] CryptDeriveKey (
	String algname, 
	String alghashname, 
	int keySize, 
	byte[] rgbIV
public function CryptDeriveKey (
	algname : String, 
	alghashname : String, 
	keySize : int, 
	rgbIV : byte[]
) : byte[]
Not applicable.



The algorithm name for which to derive the key.


The hash algorithm name to use to derive the key.


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


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

Return Value

The derived key.

Exception typeCondition


The keySize parameter is greater than 128.


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 98, Windows Server 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

The Microsoft .NET Framework 3.0 is supported on Windows Vista, Microsoft Windows XP SP2, and Windows Server 2003 SP1.

.NET Framework

Supported in: 3.0, 2.0, 1.1, 1.0