openssl pkeyutl
-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