CryptGenKey (advapi32)
Last changed: bhmahler-71.255.114.26

.
Summary
Generates a random cryptographic key and returns a handle to that key by the reference parameter phKey.

C# Signature:

[DllImport(@"advapi32.dll", CharSet = CharSet.Auto, SetLastError = true)]
[return: MarshalAs(UnmanagedType.Bool)]
public static extern bool CryptGenKey(IntPtr hProv, uint Algid, uint dwFlags, ref IntPtr phKey);

VB Signature:

Declare Function CryptGenKey Lib "advapi32.dll" (TODO) As TODO

User-Defined Types:

None.

Alternative Managed API:

Do you know one? Please contribute it!

Notes:

None.

Tips & Tricks:

    public const uint CALG_AES = 0x00006611;
    public const uint CALG_AES_128 = 0x0000660e;
    public const uint CALG_AES_192 = 0x0000660f;
    public const uint CALG_AES_256 = 0x00006610;

Please add more constants!

    public const uint CRYPT_EXPORTABLE    = 0x00000001;
    public const uint CRYPT_USER_PROTECTED    = 0x00000002;
    public const uint CRYPT_CREATE_SALT       = 0x00000004;
    public const uint CRYPT_UPDATE_KEY    = 0x00000008;
    public const uint CRYPT_NO_SALT       = 0x00000010;
    public const uint CRYPT_PREGEN        = 0x00000040;
    public const uint CRYPT_RECIPIENT     = 0x00000010;
    public const uint CRYPT_INITIATOR     = 0x00000040;
    public const uint CRYPT_ONLINE        = 0x00000080;
    public const uint CRYPT_SF        = 0x00000100;
    public const uint CRYPT_CREATE_IV     = 0x00000200;
    public const uint CRYPT_KEK           = 0x00000400;
    public const uint CRYPT_DATA_KEY      = 0x00000800;
    public const uint CRYPT_VOLATILE      = 0x00001000;
    public const uint CRYPT_SGCKEY        = 0x00002000;
    public const uint CRYPT_ARCHIVABLE    = 0x00004000;

Sample Code:

Please add some!

Documentation
CryptGenKey on MSDN