openssl pkeyutl

用途:
pkeyutl是非对称加密的通用工具,大体上和rsautl的用法差不多,所以此处只解释rsautl。
 
语法:
openssl pkeyutl
[-in file] [-out file] [-sigfile file] [-inkey file] [-passin arg] [-pubin]
[-certin] [-sign] [-verify] [-encrypt] [-decrypt] [-hexdump]
 
参数说明:
-infile :指定输入文件

-help: 打印输出使用信息

-digest:用在签名验签前,对数据进行hash计算。SHA-256默认为RSA,DSA和ECDSA的hash,SM3默认为SM2的hash.

-rawin:输入数据是原始数据,不会被任何消息摘要算法散列。 用户可以指定使用-digest选项进行摘要算法。 此选项用于-sign和-verify使用。

-out file :指定输出文件

-inkey file :指定密钥输入文件,默认是私钥文件,指定了"

-pubin"则表示为公钥文件,使用"

-certin"则表示为包含公钥的证书文件

-pubin :指定"-inkey file"的file是公钥文件

-certin :使用该选项时,表示"-inkey file"的file是包含公钥的证书文件

-keyform PEM|DER|ENGIEN:指定输入密钥的格式,默认为PEM

-peerkey file:密钥协商

 

-passin arg :传递解密密码。若验证签名时实用的公钥或私钥文件是被加密过的,则需要传递密码来解密。

-derive:密钥交换协议

-asn1parse: ASN1格式输出

 

 

 【功能选项:】

-sign :签名并输出签名结果,注意,该选项需要提供RSA私钥文件

-verify :使用验证签名文件

-encrypt :使用公钥加密文件

-decrypt :使用私钥解密文件

【输出格式选项:】

-hexdump :以hex方式输出

 

【使用例子:】

 

01.Sign some data using a private key:
  openssl pkeyutl -sign -in file -inkey key.pem -out sig
02.Recover the signed data (e.g. if an RSA key is used):
  openssl pkeyutl -verifyrecover -in sig -inkey key.pem
03.Verify the signature (e.g. a DSA key):
  openssl pkeyutl -verify -in file -sigfile sig -inkey key.pem
04.Sign data using a message digest value (this is currently only valid for RSA):
  openssl pkeyutl -sign -in file -inkey key.pem -out sig -pkeyopt digest:sha256
05.Derive a shared secret value:
  openssl pkeyutl -derive -inkey key.pem -peerkey pubkey.pem -out secret
06.Hexdump 48 bytes of TLS1 PRF using digest SHA256 and shared secret and seed consisting of the single byte 0xFF:
  openssl pkeyutl -kdf TLS1-PRF -kdflen 48 -pkeyopt md:SHA256 -pkeyopt hexsecret:ff -pkeyopt hexseed:ff -hexdump
07.Derive a key using scrypt where the password is read from command line:
  openssl pkeyutl -kdf scrypt -kdflen 16 -pkeyopt_passin pass  -pkeyopt hexsalt:aabbcc -pkeyopt N:16384 -pkeyopt r:8 -pkeyopt p:1
08.Derive using the same algorithm, but read key from environment variable MYPASS:
  openssl pkeyutl -kdf scrypt -kdflen 16 -pkeyopt_passin pass:env:MYPASS -pkeyopt hexsalt:aabbcc -pkeyopt N:16384 -pkeyopt r:8 -pkeyopt p:1
09.Sign some data using an SM2(7) private key and a specific ID:
  openssl pkeyutl -sign -in file -inkey sm2.key -out sig -rawin -digest sm3 -pkeyopt sm2_id:someid
10.Verify some data using an SM2(7) certificate and a specific ID:
  openssl pkeyutl -verify -certin -in file -inkey sm2.cert -sigfile sig -rawin -digest sm3 -pkeyopt sm2_id:someid

 

 

 
posted @ 2018-04-18 10:15  艾小小雨  阅读(2587)  评论(0编辑  收藏  举报