这是命令 cmsssl,可以使用我们的多个免费在线工作站之一在 OnWorks 免费托管服务提供商中运行,例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器
程序:
您的姓名
cms - CMS 实用程序
概要
openssl的 CMS [-加密[-解密[-标志[-核实[-cmsout[-辞职[-数据创建]
[-数据输出[-digest_create[-digest_verify[-压缩[-解压缩]
[-EncryptedData_加密[-签署收据[-验证_收据 收据[-在 文件名[-通知
SMIME|PEM|DER[- 表格 SMIME|PEM|DER[退房手续 文件名[-出类拔萃 SMIME|PEM|DER[-溪流
-索引 -noindef[-noindef[-内容 文件名[-文本[-noout[-打印[-CA文件 文件]
[-CA路径 DIR[-no_alt_chains[-MD 消化[-[密码][-没有实习生]
[-no_signer_cert_verify[-nocerts[-noattr[-nosmimecap[-二进制[-不分离]
[-证书文件 文件[-certsout 文件[-签署人 文件[-食谱 文件[-keyid]
[-receipt_request_all -receipt_request_first[-receipt_request_from 电子邮件地址]
[-receipt_request_to 电子邮件地址[-收据请求打印[-密钥 键[-秘密密钥ID
id[-e内容类型 类型[-inkey 文件[-keyopt 名称:参数[-通行证 ARG[-兰德
文件(S)[证书.pem...[-至 地址[从 地址[-主题 SUBJ] [证书.pem]...
商品描述
这款 CMS 命令处理 S/MIME v3.1 邮件。 它可以加密、解密、签名和验证,
压缩和解压缩 S/MIME 消息。
指挥 配置
有十四个操作选项可以设置要执行的操作类型。 这
其他选项的含义因操作类型而异。
-加密
为给定的收件人证书加密邮件。 输入文件是要发送的消息
加密。 输出文件是 MIME 格式的加密邮件。 实际的 CMS 类型
是EnvelopedData 。
-解密
使用提供的证书和私钥解密邮件。 需要加密邮件
输入文件的 MIME 格式的消息。 解密后的邮件被写入输出
文件中。
-调试解密
此选项设置 CMS_DEBUG_DECRYPT 旗帜。 应谨慎使用此选项:
请参阅下面的注释部分。
-标志
使用提供的证书和私钥签署邮件。 输入文件是要发送的消息
签署。 MIME 格式的签名消息将写入输出文件。
-核实
验证签名邮件。 期望输入的签名邮件消息并输出签名的邮件消息
数据。 支持明文和不透明签名。
-cmsout
接收输入消息并写出 PEM 编码的 CMS 结构。
-辞职
退出消息:采用现有消息和一个或多个新签名者。
-数据创建
创建一个内容管理系统 时间 类型。
-数据输出
时间 输入并输出内容。
-digest_create
创建一个内容管理系统 消化数据 类型。
-digest_verify
验证 CMS 消化数据 输入并输出内容。
-压缩
创建一个内容管理系统 压缩数据 类型。 OpenSSL 必须编译为 ZLIB 对此的支持
选项工作,否则会输出错误。
-解压缩
解压缩 CMS 压缩数据 输入并输出内容。 必须编译 OpenSSL
- ZLIB 支持此选项工作,否则会输出错误。
-EncryptedData_加密
使用 CMS 使用提供的对称密钥和算法加密内容 加密数据
输入并输出内容。
-签署收据
为提供的消息生成并输出签名收据。 输入消息 必须
包含签名的收据请求。 功能在其他方面类似于 -标志
操作。
-验证_收据 收据
验证文件名中的签名收据 收据. 输入消息 必须 包含
原始收据请求。 功能在其他方面类似于 -核实 操作。
-在 文件名
要加密或签名的输入消息或要解密的消息或
已验证。
-通知 SMIME|PEM|DER
这指定了 CMS 结构的输入格式。 默认是 SMIME 这
读取 S/MIME 格式的消息。 质子交换膜 和 DER 格式将其更改为期望 PEM 和 DER
格式 CMS 结构。 这目前只影响 CMS 的输入格式
结构,如果没有输入 CMS 结构(例如 -加密 or -标志)
此选项无效。
- 表格 SMIME|PEM|DER
指定用于签名收据的格式 -收据验证 操作。
退房手续 文件名
已解密或验证的消息文本或输出的 MIME 格式消息
已签署或验证的。
-出类拔萃 SMIME|PEM|DER
这指定了 CMS 结构的输出格式。 默认是 SMIME 这
写入 S/MIME 格式的消息。 质子交换膜 和 DER 格式更改此以写入 PEM 和 DER
格式 CMS 结构。 这目前只影响输出格式
CMS 结构,如果没有输出 CMS 结构(例如 -核实 or
-解密) 此选项无效。
-溪流 -索引 -noindef
此 -溪流 和 -索引 选项是等效的,并启用流 I/O 进行编码
操作。 这允许单次处理数据而无需保持
内存中的全部内容,可能支持非常大的文件。 流媒体是
如果输出格式为 SMIME
对于所有其他操作,它当前默认关闭。
-noindef
禁用流 I/O,它会产生和无限长度构造
编码。 此选项当前无效。 在未来的流媒体将启用
默认所有相关操作,此选项将禁用它。
-内容 文件名
这指定了一个包含分离内容的文件,这仅对
-核实 命令。 这仅在 CMS 结构使用分离的
不包含内容的签名表。 此选项将覆盖任何
content 如果输入格式是 S/MIME 并且它使用多部分/签名的 MIME 内容
类型。
-文本
此选项将纯文本(文本/纯文本)MIME 标头添加到提供的邮件中,如果
加密或签名。 如果解密或验证它会剥离文本标题:如果
解密或验证的消息不是 MIME 类型的文本/纯文本,然后发生错误。
-noout
等加工。为 -cmsout 操作不输出解析的 CMS 结构。 这在以下情况下很有用
结合 -打印 选项或 CMS 结构的语法
检查。
-打印
等加工。为 -cmsout 操作打印出 CMS 结构的所有字段。 这主要是
用于测试目的。
-CA文件 文件
包含可信 CA 证书的文件,仅用于 -核实.
-CA路径 DIR
包含可信 CA 证书的目录,仅用于 -核实. 这个目录
必须是标准证书目录:这是每个主题名称的散列(使用
x509 -哈希) 应链接到每个证书。
-MD 消化
签名或辞职时使用的摘要算法。 如果不存在则默认
将使用签名密钥的摘要算法(通常是 SHA1)。
-[密码]
要使用的加密算法。 例如三重 DES(168 位) - -des3 或 256 位
AES- -aes256. 任何标准算法名称(由 EVP_get_cipherbyname()
函数)也可以在破折号前使用,例如 -aes_128_cbc。 看 ENC 查阅
您的 OpenSSL 版本支持的密码列表。
如果未指定,则使用三重 DES。 仅与 -加密 和 -EncryptedData_create
命令。
-没有实习生
在验证消息时,通常包含在消息中的证书(如果有)是
搜索签名证书。 使用此选项,仅指定的证书
,在 -证书文件 选项被使用。 提供的证书仍可用作
但是,不受信任的 CA。
-no_signer_cert_verify
不验证签名消息的签名者证书。
-nocerts
签署消息时,签名者的证书通常包含在此选项中
它被排除在外。 这将减少签名消息的大小,但验证者必须
有本地可用的签名者证书的副本(使用 -证书文件
例如选项)。
-noattr
通常,当消息被签名时,会包含一组属性,其中包括
签名时间和支持的对称算法。 有了这个选项,他们不是
包括在内。
-nosmimecap
从签名属性中排除支持的算法列表,其他选项如
签名时间和内容类型仍然包括在内。
-二进制
通常输入消息被转换为“规范”格式,这是有效的
使用 CR 和 LF 作为行尾:根据 S/MIME 规范的要求。 当这
选项存在,不发生翻译。 这在处理二进制数据时很有用
可能不是 MIME 格式。
-不分离
签署消息时使用不透明签名:这种形式更耐翻译
通过邮件中继,但它不能被不支持 S/MIME 的邮件代理读取。
如果没有此选项,则使用 MIME 类型 multipart/signed 的明文签名。
-证书文件 文件
允许指定额外的证书。 签署时这些将包括在内
与消息。 验证时将搜索这些签名者证书。
证书应为 PEM 格式。
-certsout 文件
消息中包含的任何证书都被写入 文件.
-签署人 文件
签名或重新签名消息时的签名证书,可以使用此选项
如果需要多个签名者,则多次。 如果正在验证消息
如果验证通过,则签名者证书将写入此文件
成功。
-食谱 文件
解密消息时,这会指定收件人证书。 证书
必须匹配消息的收件人之一,否则会发生错误。
加密消息时,可以多次使用此选项来指定每个
接受者。 这个表格 必须 如果需要自定义参数(例如
指定 RSA-OAEP)。
-keyid
使用主题密钥标识符来标识证书而不是颁发者名称和序列号
数字。 提供的证书 必须 包括主题密钥标识符扩展。
由...支持 -标志 和 -加密 选项。
-receipt_request_all -receipt_request_first
-标志 选项包括签名的收据请求。 表明请求应该是
由所有收件人或第一层收件人(直接邮寄而不是邮寄)提供
来自邮件列表)。 忽略它 -receipt_request_from 已经包括了。
-receipt_request_from 电子邮件地址
-标志 选项包括签名的收据请求。 添加明确的电子邮件地址,其中
应提供收据。
-receipt_request_to 电子邮件地址
添加一个明确的电子邮件地址,签名收据应发送到该地址。 这个选项
必须 但如果要求提供签名收据,则提供。
-收据请求打印
如报名参加 -核实 操作打印出任何已签名的收据请求的内容。
-密钥 键
指定要使用的对称密钥。 密钥必须以十六进制格式提供并保持一致
与使用的算法。 支持 -EncryptedData_加密
-EncrryptedData_decrypt, -加密 和 -解密 选项。 当与 -加密 or
-解密 提供的密钥用于包装或解开内容加密密钥,使用
AES 密钥 KEK收件人信息 类型。
-秘密密钥ID id
提供的对称密钥的密钥标识符 KEK收件人信息 类型。 这个
选项 必须 出现如果 -密钥 选项用于 -加密。 同 -解密
操作 id 如果未提供,则用于定位相关密钥
尝试用于解密任何 KEK收件人信息 结构。
-e内容类型 类型
将封装的内容类型设置为 类型 如果没有提供 时间 类型被使用。 这
类型 参数可以是文本或数字格式的任何有效 OID 名称。
-inkey 文件
签名或解密时使用的私钥。 这必须匹配相应的
证书。 如果未指定此选项,则私钥必须包含在
指定的证书文件 -食谱 or -签署人 文件。 签这个的时候
选项可以多次使用来指定连续的键。
-keyopt 名称:选择
对于签名和加密,此选项可以多次使用以设置自定义
前面的密钥或证书的参数。 它目前可用于设置 RSA-
PSS 用于签名,RSA-OAEP 用于加密或修改 ECDH 的默认参数。
-通行证 ARG
私钥密码来源。 有关格式的更多信息 ARG 看到
PASS 短语 争论 部分 openssl的(1)。
-兰德 文件(S)
包含用于为随机数生成器播种的随机数据的一个或多个文件,或
EGD 插座(见 兰德_egd(3))。 可以指定多个文件,由 OS 分隔 -
依赖性格。 分隔符是 ; 对于 MS-Windows, , 对于 OpenVMS,和 : 支持所有
其他。
证书.pem...
一个或多个消息接收者的证书:加密消息时使用。
-到, -从, -主题
相关的邮件标题。 这些包含在消息的签名部分之外
所以它们可以手动包含。 如果签名,则许多 S/MIME 邮件客户端检查
签名者证书的电子邮件地址与发件人:地址中指定的地址相匹配。
-目的, -ignore_critical, -issuer_checks, -crl_check, -crl_check_all, -policy_check,
-extended_crl, -x509_strict, -政策 -check_ss_sig -no_alt_chains
设置各种证书链验证选项。 见 确认 手册页
细节。
附注
MIME 消息必须在标题和输出之间没有任何空行的情况下发送。
一些邮件程序会自动添加一个空行。 将邮件直接通过管道发送至
sendmail 是实现正确格式的一种方法。
提供的要签名或加密的消息必须包含必要的 MIME 标头或
许多 S/MIME 客户端不会正确显示它(如果有的话)。 您可以使用 -文本 选项
自动添加纯文本标题。
“签名和加密”消息是对签名消息进行加密的消息。 这个可以
通过加密已签名的消息生成:请参阅示例部分。
此版本的程序只允许每条消息有一个签名者,但它会验证多个
收到消息的签名者。 如果邮件包含多个 S/MIME 客户端会阻塞
签名者。 可以通过签署已经签署的消息来“并行”签署消息
信息。
选项 -加密 和 -解密 反映 S/MIME 客户端中的常见用法。 严格的
讲这些过程 CMS 封装数据: CMS 加密数据用于其他目的。
这款 -辞职 添加新签名者时,选项使用现有的消息摘要。 这意味着
该属性必须存在于至少一个使用相同消息的现有签名者中
摘要或此操作将失败。
这款 -溪流 和 -索引 选项启用实验性流 I/O 支持。 结果是
编码是使用无限长度构造编码的 BER,不再是 DER。 流媒体
支持 -加密 操作和 -标志 如果内容不是,则操作
超脱。
流总是用于 -标志 操作与分离的数据,但由于内容
不再是 CMS 结构的一部分,编码仍然是 DER。
如果 -解密 选项在没有收件人证书的情况下使用,然后尝试
通过使用提供的私人信息依次尝试每个潜在收件人来定位收件人
钥匙。 阻止 MMA 攻击(Bleichenbacher 对 PKCS #1 v1.5 RSA 填充的攻击)所有
无论成功与否,都会尝试收件人,如果没有收件人匹配,则消息是
使用随机密钥“解密”,通常会输出垃圾。 这 -调试解密
选项可用于禁用 MMA 攻击保护,如果没有则返回错误
可以找到收件人:应谨慎使用此选项。 更完整的描述
请点击 CMS_解密(3))。
退出 编码
0 操作完全成功。
1 解析命令选项时发生错误。
2 无法读取其中一个输入文件。
3 创建 CMS 文件或读取 MIME 消息时发生错误。
4 解密或验证消息时发生错误。
5 消息已正确验证,但写出签名者时发生错误
证书。
兼容性 与 PKCS#7 格式。
这款 粘液 实用程序只能处理较旧的 PKCS#7 格式。 这 CMS 实用支持
加密消息语法格式。 使用某些功能会导致消息
不能由仅支持旧格式的应用程序处理。 这些是
详细如下。
使用的 -keyid 选项与 -标志 or -加密.
这款 -出类拔萃 质子交换膜 选项使用不同的标题。
这款 -压缩 选项。
这款 -密钥 使用时的选项 -加密.
PSS的使用 -标志.
使用 OAEP 或非 RSA 密钥 -加密.
此外,该 -EncryptedData_create 和 -数据创建 类型不能被处理
老年人 粘液 命令。
示例
创建明文签名消息:
openssl cms -sign -in message.txt -text -out mail.msg \
-签名者 mycert.pem
创建不透明的签名消息
openssl cms -sign -in message.txt -text -out mail.msg -nodetach \
-签名者 mycert.pem
创建签名消息,包括一些额外的证书并读取私钥
从另一个文件:
openssl cms -sign -in in.txt -text -out mail.msg \
-signer mycert.pem -inkey mykey.pem -certfile mycerts.pem
创建具有两个签名者的签名消息,使用密钥标识符:
openssl cms -sign -in message.txt -text -out mail.msg \
-签名者 mycert.pem -签名者 othercert.pem -keyid
Unix下直接向sendmail发送签名邮件,包括headers:
openssl cms -sign -in in.txt -text -signer mycert.pem \
从 [电子邮件保护] - 给某人@某处\
-subject "签名消息" | 发送邮件某人@某处
如果成功,验证消息并提取签名者的证书:
openssl cms -verify -in mail.msg -signer user.pem -outsignedtext.txt
使用三重 DES 发送加密邮件:
openssl cms -加密 -in in.txt -from [电子邮件保护] \
-to someone@somewhere -subject "加密消息" \
-des3 user.pem -out mail.msg
对邮件进行签名和加密:
openssl cms -sign -in ml.txt -signer my.pem -text \
| openssl cms -加密 -out mail.msg \
从 [电子邮件保护] - 给某人@某处\
-主题“签名和加密的消息”-des3 user.pem
注意:加密命令不包括 -文本 选项,因为消息是
加密已经有 MIME 标头。
解密邮件:
openssl cms -decrypt -in mail.msg -recip mycert.pem -inkey key.pem
Netscape 表单签名的输出是带有分离签名的 PKCS#7 结构
格式。 您可以使用此程序通过对 base64 进行换行来验证签名
编码结构并围绕它:
-----开始PKCS7-----
-----结束PKCS7-----
并使用命令,
openssl cms -verify -inform PEM -in signature.pem -content 内容.txt
或者,您可以对签名进行 base64 解码并使用
openssl cms -verify -inform DER -in signature.der -content 内容.txt
使用 128 位 Camellia 创建加密消息:
openssl cms -加密 -in plain.txt -camellia128 -out mail.msg cert.pem
向现有消息添加签名者:
openssl cms -resign -in mail.msg -signer newsign.pem -out mail2.msg
使用 RSA-PSS 签署邮件:
openssl cms -sign -in message.txt -text -out mail.msg \
-signer mycert.pem -keyopt rsa_padding_mode:pss
使用 RSA-OAEP 创建加密邮件:
openssl cms -加密 -in plain.txt -out mail.msg \
-recip cert.pem -keyopt rsa_padding_mode:oaep
使用带有 ECDH 证书的 SHA256 KDF:
openssl cms -加密 -in plain.txt -out mail.msg \
-recip ecdhcert.pem -keyopt ecdh_kdf_md:sha256
使用 onworks.net 服务在线使用 cmssl