手册页部分 1: 用户命令

退出打印视图

更新时间: 2014 年 7 月
 
 

elfsign(1)

名称

elfsign - 对二进制文件签名

用法概要

/usr/bin/elfsign sign [-v] 
-k private_key -c 
certificate_file
     -e elf_object [-F 
format] [file]...
/usr/bin/elfsign sign [-v] 
-c certificate_file
     -e elf_object -T 
token_label [-P pin_file] [
-F format] [file]...
/usr/bin/elfsign verify [-c 
certificate_file] 
     [-v] -e elf_object [file]...
/usr/bin/elfsign request -r 
certificate_request_file 
     {-k private_key | -T 
token_label}
/usr/bin/elfsign list 
-f field -c 
certificate_file
/usr/bin/elfsign list 
-f field -e 
elf_object

描述

list

列出单个证书文件或已签名的 elf 目标文件的标准输出信息。选定的字段显示在一行中。如果指定的字段不适用于指定的文件,此命令将终止,且没有标准输出。此子命令的此输出用于供脚本或其他命令使用。

request

生成一个私钥和一个 PKCS#10 证书请求。PKCS#10 证书请求供 Solaris 加密框架使用。如果将在令牌设备中创建私钥,elfsign 会提示您输入更新令牌设备所需的 PIN。要获取证书,应将 PKCS#10 证书请求发送到以下电子邮件地址 solaris-crypto-req_ww@oracle.com

用户使用 elfsign 对要在 Solaris 加密框架中使用的二进制文件进行签名之前,必须首先生成证书请求并取得证书。

sign

使用给定的私钥和证书文件为 elf 目标文件签名。

verify

验证现有的签名目标文件。使用给定的证书,或在 /etc/crypto/certs/etc/certs 中搜索合适的证书(如果未指定– c)。

选项

支持以下选项:

–c certificate_file

指定 PEM/PKCS#7 或 ASN.1 BER 格式的 X.509 证书所在的路径。

–e elf_object

指定要签名或验证的目标文件所在的路径。

对多个目标文件进行签名或验证时,可多次指定 –e 选项。

–F format

对于 sign 子命令,指定签名的格式。有效的格式选项包括

rsa_md5_sha1

Solaris 10 及其更新的缺省格式,rsa_md5_sha1 格式已过时。

rsa_sha256

此发行版的缺省格式。

rsa_sha1

此发行版的替代格式。

rsa_md5_sha1 以外的格式在签名中还包括一个信息时间戳,表示应用签名的时间。此时间戳没有采用加密形式来保证安全,也不用于验证。

–f field

对于 list 子命令,指定输出中应显示的字段。

list 子命令支持以下选项:

–f all

列出 bootblk 签名中的所有字段:字节存储顺序、格式、版本、签名者、时间戳和签名。

证书文件的有效字段说明符包括:

subject

主题 DN(Distinguished Name,标识名)

issuer

签发者 DN

elf 目标文件的有效字段说明符包括:

format

签名的格式

signer

目标文件签名所用证书的主题 DN

time

应用签名的时间,格式采用语言环境的缺省格式

–k private_key

指定不使用 PKCS#11 令牌时的私钥文件位置。此文件为 RSA 私钥文件,其格式为 Solaris 特定格式。用于 request 子命令时,此文件是新生成的密钥的输出文件。

同时指定 –k–T 选项会出错。

–P pin_file

指定访问令牌设备所用的 PIN 保存在哪个文件中。如果未在 pin_file 中提供 PIN,elfsign 将提示您输入 PIN。

指定 –P 选项而不指定 –T 选项会出错。

–r certificate_request_file

指定 PKCS#10 格式的证书请求文件所在的路径。

–T token_label

指定存储私钥的 PCKS#11 令牌设备的标签,标签由 pktool 提供。

同时指定 –T–k 选项会出错。

–v

请求提供更为详细的信息。附加输出包括签名者和为目标文件签名的时间(如果签名格式中包含签名时间)。此输出不是稳定的可解析输出。

操作数

支持下列操作数:

file

要签名或验证的一个或多个 elf 目标文件。必须至少指定一个 elf 目标文件,要么通过 -e 选项指定,要么在所有其他选项后指定。

示例

示例 1 使用某个文件中的密钥/证书为 ELF 目标文件签名
example$ elfsign sign -k myprivatekey -c mycert -e lib/libmylib.so.1
示例 2 验证 elf 目标文件的签名

example$ elfsign verify -c mycert -e lib/libmylib.so.1
elfsign: verification of lib/libmylib.so.1 passed
示例 3 生成证书请求
example$ elfsign request -k mykey -r req.pkcs10
Enter Company Name / Stock Symbol or some other globally 
unique identifier.
This will be the prefix of the Certificate DN: ORCL
示例 4 确定有关目标文件的信息

example$ elfsign list -f format -e lib/libmylib.so.1
rsa_md5_sha1

example$ elfsign list -f signer -e lib/libmylib.so.1
CN=VENDOR, OU=Software Development, O=Vendor Inc.

退出状态

将返回以下退出值:

含义
子命令
0
操作成功
sign/verify/request
1
参数无效
2
无法验证 ELF 目标文件
verify
3
无法打开 ELF 目标文件
sign/verify
4
无法装入证书或证书无效
sign/verify
5
无法装入私钥,私钥无效或令牌标签无效
sign
6
无法添加签名
sign
7
尝试验证未签名的目标文件或目标文件不是 ELF 文件
verify

文件

/etc/crypto/certs

未使用 –c 标志时,供 verify 子命令搜索的目录

属性

有关下列属性的说明,请参见 attributes(5)

属性类型
属性值
可用性
developer/base-developer-utilities
接口稳定性
请参见下文。

elfsign 命令及其子命令是 "Committed"(已确定)。尽管应用程序不应依赖于 elfsign 的输出格式,但 list 子命令的输出格式仍为 "Committed"(已确定)。

另请参见

date(1)pktool(1)cryptoadm(1M)libpkcs11(3LIB)attributes(5)