Signcode.exe(文件签名工具)

文件签名工具使用 Authenticode 数字签名对可迁移可执行 (PE) 文件(.dll 或 .exe 文件)进行签名。可以对多文件程序集中包含的某个程序集或个别的文件进行签名。如果要分发某个程序集,则应该对该程序集而不是对个别文件签名。不指定任何选项运行 Signcode.exe 将启动帮助签名的向导。

文件签名工具仅随 .NET Framework SDK 1.0 和 1.1 版一起提供。在更高的版本中,将改用SignTool.exe(签名工具) 实用工具。

signcode [options] filename | assemblyname

参数

参数

说明

filename

要签名的 PE 文件的名称。

assemblyname

要签名的程序集的名称。此文件必须包含程序集清单。

选项

说明

-$authority

指定证书的签名权限,必须为 individualcommercial。默认情况下,Signcode.exe 使用证书的最高权限。

-aAlgorithm — 算法

指定签名的哈希算法,必须为 md5(默认值)或 sha1

-cfile

指定包含编码软件发布证书的文件。

-cnname

指定证书的公共名。

-iinfo

指定获得有关内容的更多信息的位置(通常为 URL)。

-jdllName

指定一个 DLL 的名称,该 DLL 返回用于创建文件签名的已验证特性数组。通过重复 -j 选项可以指定多个 DLL。

-jp参数

指定为前述 DLL 传递的参数。例如:-j dll1 -jp dll1Param。此工具只允许每个 DLL 有一个参数。

-kkeyname

指定密钥容器名。

-kykeytype

指定密钥类型,必须为 signatureexchange 或一个整数(如 4)。

-nname

指定表示要签名的文件内容的文本名称。

-pProvider — 提供方

指定系统上的加密提供程序的名称。

-r位置

指定注册表中证书存储区的位置,必须为 currentuser(默认值)或 localmachine

-sstore

指定包含签名证书的证书存储区。默认为 my 存储区。

-sha1thumbprint

指定 thumbprint,它是包含在证书存储区中的签名证书的 sha1 哈希。

-sppolicy

设置证书存储区策略,必须为 spcStore(默认值)或 chain。如果指定 chain,则验证链中的所有证书(包括自签署证书)都将被添加到签名中。如果指定 spcStore,则受信任的自签署证书将不与验证链中添加到签名的证书包括在一起。

-spcfile

指定包含软件发布证书的 SPC 文件。

-tURL

指示位于指定 http 地址的时间戳服务器将为该文件创建时间戳。

-tr数值

指定成功前试验时间戳的最多次数,默认为 1。

-tw 数值

指定两次数据戳试验之间的延迟(以秒为单位)。默认为 0。

-vpvkFile

指定包含私钥的私钥 (.pvk) 文件名。

-x

为文件创建时间戳,但不创建签名。

-y type

指定要使用的加密提供程序类型。

加密提供程序中实现了加密标准和算法。有关默认提供程序类型的列表,请参见 Platform SDK 中的“Microsoft 密服务提供程序”。

-?

显示该工具的命令语法和选项。

备注

若要使用发行者证书 (SPC) 文件创建签名,如果私钥在 PVK 文件中,则必须指定 -spc-v 选项。如果私钥在注册表密钥容器中,则必须指定 -spc-k 选项。如果要使用 SPC 文件为文件创建签名,应使用证书创建工具软件发行者证书测试工具创建 SPC 文件。

示例

下面的命令使用 XYZ.spc 软件发行者证书和注册表密钥容器 XYZ 中的私钥来对 XYZ.exe 进行签名。

signcode /spc XYZ.spc /k XYZ XYZ.exe

下面的命令使用 myCertificate.spc 中的证书和 myKey.pvk 中的私钥对程序集 myAssembly 进行签名。

signcode /spc myCertificate.spc /v myKey.pvk  myAssembly

请参见

参考

Makecert.exe(证书创建工具)

Cert2spc.exe(软件发行者证书测试工具)

Visual Studio 命令提示符

概念

安全权限

其他资源

.NET Framework 工具