Secutil 工具 (Secutil.exe)

Secutil 工具从程序集提取 X.509 证书的强名称信息或公钥,并将该信息转换为可合并到代码中的格式。

secutil [-array | -hex] [-cmode | -vbmode]
{-strongname | -x509certificate} filename 

参数

参数 说明

filename

包含强名称公钥或 X.509 证书的程序集文件。

选项 说明

-a[rray]

-strongname 选项一起使用时,返回包括字节数组形式的公钥的强名称信息以及指定程序集的名称和版本。与 –x509certificate 选项一起使用时,以指定程序集中 X.509 证书的字节数组的形式返回公钥。如果不指定 -array-hex 选项,则默认为 -array

-c[mode]

返回指定程序集中 X.509 证书的强名称信息或公钥。如果不指定 -cmode-vbmode 选项,则默认为 -cmode

-h[elp]

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

-hex

-strongname 选项一起使用时,返回包括十六进制编码字符串形式的公钥的强名称信息以及指定程序集的名称和版本。与 –x509certificate 选项一起使用时,以指定程序集中 X.509 证书的十六进制编码字符串的形式返回公钥。

-s[trongname]

从指定程序集中提取强名称公钥、程序集名称和版本号。默认情况下,公钥以适用于 C# 或 C++ 中的字节数组定义的数组格式返回。(有关详细信息,请参见 -array–cmode 选项。)

如果引用强命名程序集以外的文件,则将返回错误。

-v[bmode]

返回以适用于 Visual Basic 的数组格式化的 X.509 证书的强名称信息或公钥。

-x[509certificate]

从指定程序集中的 X.509 证书中提取公钥。默认情况下,公钥以适用于 C# 或 C++ 中的字节数组定义的数组格式返回。(有关详细信息,请参见 -array–cmode 选项。)

只有用 Authenticode 签名的文件才包含 X.509 Authenticode 出版商证书。对其他类型文件的引用将返回错误。

-?

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

备注

如果不指定任何命令行选项,则 Secutil.exe 显示此工具的命令语法和选项。

.NET Framework 安全系统提供了基于代码的关联证据限制代码操作的机制。强名称和 Authenticode 出版商这两种类型的证据都基于密钥和数字签名技术。

在强制标识权限检查中使用这些形式的证据时,要求引用一个相当长的二进制数据序列:对于强名称是公钥,对于 Authenticode 出版商则是 X.509 证书。可以运行 Secutil.exe,指定包含要检查的证据的程序集文件名。可以将此工具的输出以常数定义的形式粘贴到代码中。然后可以使用该常数值来构造要检查的正确标识权限。有关如何构造这些权限的信息,请参见 System.Security.Permissions.PublisherIdentityPermission 类System.Security.Permissions.StrongNameIdentityPermission 类

示例

下面的命令从 myFile 中提取强名称信息,并以默认的字节数组格式返回公钥。

secutil -strongname myFile

上述命令的输出如下。

Microsoft (R) .NET Framework SecUtil 1.0.2310.0
Copyright (c) Microsoft Corp 1999-2000. All rights reserved.

Public Key = 
{ 0, 36, 0, 0, 4, 128, 0, 0, 148, 0, 0, 0, 6, 2, 0, 0, 0, 36, 0, 0, 82,
83, 65, 49, 0, 4, 0, 0, 1, 0, 1, 0, 125, 153, 220, 107, 82, 7, 120, 98,
141, 142, 191, 216, 4, 190, 9, 125, 149, 0, 18, 169, 111, 81, 149, 179,
79, 192, 204, 91, 207, 61, 87, 213, 54, 9, 203, 70, 249, 71, 6, 181, 33,
153, 60, 69, 190, 178, 223, 99, 236, 47, 217, 110, 16, 228, 107, 180, 72,
189, 147, 126, 155, 81, 88, 89, 125, 126, 30, 149, 207, 139, 216, 132,
46, 171, 8, 95, 249, 114, 196, 80, 183, 159, 173, 75, 73, 113, 195, 29,
41, 6, 49, 150, 195, 168, 228, 235, 156, 42, 215, 132, 177, 108, 211, 78,
86, 170, 16, 0, 66, 93, 100, 139, 9, 78, 60, 3, 242, 12, 35, 13, 154, 39,
50, 183, 95, 253, 208, 172 }
Name =
myFile
Version =
1.2.3.4
Success

下面的命令从 myHelloFile 中的 X.509 证书中提取公钥,并将其以十六进制编码的字符串形式返回。

secutil -hex -x509certificate myHelloFile 

上述命令的输出如下。

Microsoft (R) .NET Framework SecUtil 1.0.2310.0
Copyright (c) Microsoft Corp 1999-2000. All rights reserved.

X509 Certificate =
0x308201833082012DA0030201020210B9360877C4B169244F7435304C270D4300D06092A8
64886F70D01010405003016311430120603550403130B526F6F74204167656E6379301E170
D3030313131353030333033385A170D3339313233313233353935395A30223120301E06035
5040313174A6F6527732D536F674776172652D456D706F7269756D305C300D06092A864886
F70D0101010500034B003048024100B7C23E337868D7971CEBB435B68736A6F694AFD50443
147FE18AF26029B2A8FAB3DC014D72195CA64844E26648878B32BABFE06126D1B63233C2D7
A88A38EC170203010001A34B304930470603551D010440303E801012E4092D061D1D4F008D
6121DC166463A1183016311430120603550403130B526F6F74204167656E6379821006376C
00AA00648A11CFB8D4AA5C35F4300D06092A864886F70D01010405000341005690921281BE
823AC4EC33D09ED8A2D04AE052B6022AB6DEEC67E3A6F203051AEDB8C54F3E7280D3983DC3
07560EA934966871ED5D4C9D304AC2553FD24BF3EE
Success

请参见

参考

.NET Framework 工具
System.Security.Permissions.PublisherIdentityPermission Class
System.Security.Permissions.StrongNameIdentityPermission Class
SDK 命令提示

概念

证据