ICLRStrongName::StrongNameSignatureGeneration 方法

为指定的程序集生成强名称签名。

语法

HRESULT StrongNameSignatureGeneration (
    [in]  LPCWSTR   wszFilePath,  
    [in]  LPCWSTR   wszKeyContainer,  
    [in]  BYTE      *pbKeyBlob,  
    [in]  ULONG     cbKeyBlob,  
    [out] BYTE      **ppbSignatureBlob,  
    [out] ULONG     *pcbSignatureBlob  
);  

参数

wszFilePath
[in] 包含将为其生成强名称签名的程序集清单的文件的路径。

wszKeyContainer
[in] 包含公钥/私钥对的密钥容器的名称。

如果 pbKeyBlob 为 null,则 wszKeyContainer 必须在加密服务提供程序 (CSP) 中指定一个有效容器。 在这种情况下,使用存储在容器中的密钥对来对文件进行签名。

如果 pbKeyBlob 不为 null,则假定密钥对包含在密钥二进制大型对象 (BLOB) 中。

密钥必须为 1024 位 Rivest-Shamir-Adleman (RSA) 签名密钥。 目前不支持其他类型的密钥。

pbKeyBlob
[in] 指向公钥/私钥对的指针。 此对采用由 Win32 CryptExportKey 函数创建的格式。 如果 pbKeyBlob 为 null,则假定 wszKeyContainer 指定的密钥容器包含密钥对。

cbKeyBlob
[in] pbKeyBlob 的大小(以字节为单位)。

ppbSignatureBlob
[out] 指向公共语言运行时返回签名的位置的指针。 如果 ppbSignatureBlob 为 null,则运行时将签名存储在 wszFilePath 指定的文件中。

如果 ppbSignatureBlob 不为 null,则公共语言运行时将分配要在其中返回签名的空间。 调用方必须使用 ICLRStrongName::StrongNameFreeBuffer 方法释放此空间。

pcbSignatureBlob
[out] 返回的签名大小(以字节为单位)。

返回值

如果方法成功完成,则返回 S_OK;否则返回指示失败的 HRESULT 值(有关列表,请参阅常见 HRESULT 值)。

注解

wszFilePath 指定 null 以计算签名大小,而不创建签名。

签名可以直接存储在文件中,也可以返回给调用方。

要求

平台:请参阅系统要求

标头:MetaHost.h

库:作为资源包含在 MSCorEE.dll 中

.NET Framework 版本:自 4 起可用

另请参阅