Files
GmSSL/demos/scripts/x509.sh
2018-10-20 11:41:48 +08:00

27 lines
1.2 KiB
Bash
Executable File

#!/bin/bash
# Copyright (c) 2014 - 2018 The GmSSL Project. All rights reserved.
gmssl=gmssl
paramfile=ecparam.pem
keyfile=eckey.pem
pubkeyfile=ecpubkey.pem
pkeyopt="-pkeyopt ec_paramgen_curve:sm2p256v1"
$gmssl ecparam -list_curves | grep sm2
$gmssl ecparam -text -noout -name sm2p256v1 -param_enc explicit
$gmssl genpkey -genparam -algorithm EC -out sm2p256v1.pem -pkeyopt ec_paramgen_curve:sm2p256v1 -pkeyopt ec_param_enc:named_curve
$gmssl genpkey -algorithm EC -out sm2key.pem -pkeyopt ec_paramgen_curve:sm2p256v1 -pkeyopt ec_param_enc:named_curve
$gmssl pkey -text -noout -in sm2key.pem
$gmssl pkey -in sm2key.pem -pubout -out sm2pubkey.pem
$gmssl pkey -text -noout -pubin -in $pubkeyfile
echo hello | $gmssl pkeyutl -sign -inkey sm2key.pem -pkeyopt ec_scheme:sm2 > sm2sig.der
echo hello | $gmssl pkeyutl -verify -inkey sm2key.pem -sigfile sm2sig.der -pkeyopt ec_scheme:sm2
echo hello | $gmssl pkeyutl -encrypt -inkey sm2key.pem -pkeyopt ec_scheme:sm2 > sm2ciphertext.bin
cat sm2ciphertext.bin | $gmssl pkeyutl -decrypt -inkey sm2key.pem -pkeyopt ec_scheme:sm2
#$gmssl req -new -x509 -days 3650 -key sm2key.pem -out cert.pem
#$gmssl x509 -text -noout -in $DIR/cacert.pem