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.

Return Value

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 System Requirements.

Header: MetaHost.h

Library: Included as a resource in MSCorEE.dll

.NET Framework Versions: Available since 4

See Also

StrongNameKeyGen Method
ICLRStrongName Interface