This documentation is archived and is not being maintained.

StrongNameKeyGenEx Function

Generates a new public/private key pair with the specified key size, for strong name use.

This function has been deprecated in the .NET Framework version 4. Use the ICLRStrongName::StrongNameKeyGenEx method instead.

BOOLEAN StrongNameKeyGenEx (
    [in]  LPCWSTR   wszKeyContainer,
    [in]  DWORD     dwFlags,
    [in]  DWORD     dwKeySize,
    [out] BYTE      **ppbKeyBlob,
    [out] ULONG     *pcbKeyBlob


[in] The requested key container name. wszKeyContainer must be a non-empty string, or null to generate a temporary name.


[in] Specifies whether to leave the key registered. The following values are supported:

  • 0x00000000 - Used when wszKeyContainer is null to generate a temporary key container name.

  • 0x00000001 (SN_LEAVE_KEY) - Specifies that the key should be left registered.


[in] The requested size of the key, in bits.


[out] The returned public/private key pair.


[out] The size, in bytes, of ppbKeyBlob.

true on successful completion; otherwise, false.

The .NET Framework versions 1.0 and 1.1 require a dwKeySize of 1024 bits to sign an assembly with a strong name; version 2.0 adds supports for 2048-bit keys.

After the key is retrieved, you should call the StrongNameFreeBuffer function to release the allocated memory.

If the StrongNameKeyGenEx function does not complete successfully, call the StrongNameErrorInfo function to retrieve the last generated error.

Platforms: See .NET Framework System Requirements.

Header: StrongName.h

Library: Included as a resource in MsCorEE.dll

.NET Framework Versions: 4, 3.5 SP1, 3.5, 3.0 SP1, 3.0, 2.0 SP1, 2.0, 1.1, 1.0