参考:http://gmssl.org/docs/sm2.html
1 产生SM2密钥:
gmssl ecparam -genkey -name sm2p256v1 -out sm2pvk.pem
2 从SM2私钥导出公钥:
gmssl ec -in sm2pvk.pem -pubout -out sm2puk.pem
3 从SM2私钥导出证书请求:
gmssl req -new -sm3 -key sm2pvk.pem -subj /C=CN/CN=test -out cameracsr.pem
4 SM2-SM3签名测试:
gmssl dgst -sign sm2pvk.pem -sm3 -out signature.txt content.txt
gmssl sm2utl -sign -in content.txt -inkey sm2pvk.pem -id 1234567812345678 -out sig.der
5 SM2-SM3验证测试:
gmssl dgst -verify sm2puk.pem -sm3 -signature signature.txt content.txt
gmssl sm2utl -verify -in content.txt -sigfile sig.der -pubin -inkey sm2puk.pem -id 1234567812345678
其他命令:
6 从证书导出公钥:
gmssl x509 -in test2.cer -pubkey -out sm2puk.pem
3 SM2公钥加密:
gmssl sm2utl -encrypt -in plain.txt -pubin -inkey sm2puk.pem -out encrypt.bin
4 SM2私钥解密:
gmssl sm2utl -decrypt -in encrypt.bin -inkey sm2pvk.pem -out plain2.txt
5 SM4加密:
gmssl sms4-cbc -K 01020304050607080910111213141516 -iv 01020304050607080910111213141516 -e -in plain.txt -out encrypt.bin
gmssl sms4-ecb -K 01020304050607080910111213141516 -e -in plain.txt -out encrypt.bin
6 SM4解密:
gmssl sms4-cbc -K 01020304050607080910111213141516 -iv 01020304050607080910111213141516 -d -in encrypt.bin -out plain2.txt
gmssl sms4-ecb -K 01020304050607080910111213141516 -d -in encrypt.bin -out plain2.txt
7 SM4 CMAC:
gmssl dgst -out cmac.bin -mac cmac -macopt cipher:sms4-cbc -macopt hexkey:01020304050607080910111213141516 plain.txt
8 算SM3摘要:
gmssl dgst -out sm3.bin -sm3 plain.txt
9 算SM3 HMAC:
gmssl dgst -out hmac.bin -sm3 -hmac 01020304050607080910111213141516 plain.txt