StrongNameSignatureGenerationEx 函数

更新:2007 年 11 月

依据指定标志为指定的程序集生成强名称签名。

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 都为 Null),则重新计算链接的模块的哈希,但不对程序集进行重新签名。

如果指定了 SN_TEST_SIGN,则不修改公共语言运行库标头以指示该程序集是用强名称签名的。

如果 StrongNameSignatureGenerationEx 函数未成功完成,请调用 StrongNameErrorInfo 函数以检索上一个生成的错误。

要求

**平台:**请参见 .NET Framework 系统要求

**头文件:**StrongName.h

**库:**作为一项资源包含在 MsCorEE.dll 中

**.NET Framework 版本:**3.5 SP1、3.5、3.0 SP1、3.0、2.0 SP1、2.0、1.1、1.0

请参见

参考

StrongNameSignatureGeneration 函数

其他资源

强命名全局静态函数