StrongNameSignatureGenerationEx 函数
根据指定标志,为指定的程序集生成强名称签名。
此函数已弃用。 请改用 ICLRStrongName::StrongNameSignatureGenerationEx 方法。
语法
BOOLEAN StrongNameSignatureGenerationEx (
[in] LPCWSTR wszFilePath,
[in] LPCWSTR wszKeyContainer,
[in] BYTE *pbKeyBlob,
[in] ULONG cbKeyBlob,
[out] BYTE **ppbSignatureBlob,
[out] ULONG *pcbSignatureBlob,
[in] DWORD dwFlags
);
参数
wszFilePath
[in] 包含将为其生成强名称签名的程序集清单的文件的路径。
wszKeyContainer
[in] 包含公钥/私钥对的密钥容器的名称。
如果 pbKeyBlob
为 null,则 wszKeyContainer
必须在加密服务提供程序 (CSP) 中指定一个有效容器。 在这种情况下,使用存储在容器中的密钥对来对文件进行签名。
如果 pbKeyBlob
不为 null,则假定密钥对包含在密钥二进制大型对象 (BLOB) 中。
pbKeyBlob
[in] 指向公钥/私钥对的指针。 此对采用由 Win32 CryptExportKey
函数创建的格式。 如果 pbKeyBlob
为 null,则假定 wszKeyContainer
指定的密钥容器包含密钥对。
cbKeyBlob
[in] pbKeyBlob
的大小(以字节为单位)。
ppbSignatureBlob
[out] 指向公共语言运行时返回签名的位置的指针。 如果 ppbSignatureBlob
为 null,则运行时将签名存储在 wszFilePath
指定的文件中。
如果 ppbSignatureBlob
不为 null,则公共语言运行时将分配要在其中返回签名的空间。 调用方必须使用 StrongNameFreeBuffer 函数释放此空间。
pcbSignatureBlob
[out] 返回的签名大小(以字节为单位)。
dwFlags
[in] 以下一个或多个值:
SN_SIGN_ALL_FILES
(0x00000001) - 重新计算链接模块的所有哈希。SN_TEST_SIGN
(0x00000002) - 对程序集进行测试签名。
返回值
如果成功完成,则为 true
;否则为 false
。
注解
为 wszFilePath
指定 null 以计算签名大小,而不创建签名。
签名可以直接存储在文件中,也可以返回给调用方。
如果指定了 SN_SIGN_ALL_FILES
但未包含公钥(pbKeyBlob
和 wszFilePath
都为空),则会重新计算链接模块的哈希,但不会重新对程序集签名。
如果指定了 SN_TEST_SIGN
,则不会修改公共语言运行时标头,以指示程序集是用强名称签名的。
如果 StrongNameSignatureGenerationEx
函数未成功完成,请调用 StrongNameErrorInfo 函数来检索上次生成的错误。
要求
平台:请参阅系统要求。
标头:StrongName.h
库:作为资源包含在 MsCorEE.dll 中
.NET Framework 版本:自 1.0 起可用