openssl工具国际/国密签名命令的流程
跳槽文档带不出来,每次开发设计安全启动都要重新调试一边openssl工具用于国际和国密算法签名的命令行参数。
这次直接记录到csdn,以备将来之需。以下命令基于OpenSSL 1.1.1f,其它版本慎用。
国际签名算法(RSA2048 + SHA256)
1. 生成privkey
openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:2048 -pkeyopt rsa_keygen_pubexp:65537 -out rsa2048_priv.key
2. 生成pubkey
openssl rsa -in rsa2048_priv.key -pubout -out rsa2048_pub.key
3. 生成签名
openssl dgst -sha256 -sign rsa2048_priv.key -out signature.bin test.bin
验证签名
openssl dgst -verify rsa2048_pub.key -sha256 -signature signature.bin test.bin
国密算法签名(SM2 + SM3)
1. 生成privkey
openssl ecparam -genkey -name SM2 -out sm2_priv.key
2. 生成pubkey
openssl ec -in sm2_priv.key -pubout -out sm2_pub.key
3. 生成sm3
dgst openssl dgst -binary -out test.sm3.bin -sm3 test.bin
4. 生成签名
openssl pkeyutl -sign -in test.bin -inkey sm2_priv.key -out sm2.sig
5. 验证签名
openssl pkeyutl -verify -pubin -in test.sm3.bin -inkey sm2_pub.key -sigfile sm2.sig