This documentation is archived and is not being maintained.

ICLRStrongName::StrongNameKeyGenEx Method

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

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


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


[in] A value that 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.

S_OK if the method completed successfully; otherwise, an HRESULT value that indicates failure (see Common HRESULT Values for a list).

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 ICLRStrongName::StrongNameFreeBuffer method to release the allocated memory.

Platforms: See .NET Framework System Requirements.

Header: MetaHost.h

Library: Included as a resource in MSCorEE.dll

.NET Framework Versions: 4