OpenSSL命令---ecparam

用途:

椭圆曲线密钥参数生成及操作。

用法:

openssl ecparam [-inform DER|PEM] [-outform DER|PEM] [-in filename] [-out filename] 
[-noout] [-text] [-C] [-check] [-name arg] [-list_curve] [-conv_form arg] [-param_enc arg] 
[-no_seed] [-rand file(s)] [-genkey] [-engine id]

选项说明:

-inform PEM|DER::输入文件格式,DER或者PEM格式。DER格式采用ASN1DER标准格式。一般用的多的都是PEM格式,就是base64编码格式。

-outform DER|PEM:输出文件格式,DER或者PEM格式。

-in filename:输入的椭圆曲线密钥文件,默认为标准输入。

-out filename:椭圆曲线密钥输出文件,默认为标准输出。

-noout:不打印参数编码的版本信息。

-text:打印椭圆曲线密钥参数信息值。

-C:以C语言风格打印信息。

-check:检查椭圆曲线密钥参数。

-name arg:采用短名字。

-list_curve:打印所有可用的短名字。

-param_out:指定参数编码方法,可以是named_curveexplicit,默认为named_curve

-conv_form arg:指定信息存放方式,可以是compresseduncompressed或者hybrid,默认为compressed

-no_seed:如果-param_enc指定编码方式为explicit,不采用随机数种子。

-rand file(s):随机数产生种子。

-genkey:生成椭圆曲线密钥参数。

-engine id:指定硬件引擎。

注意:

PEM格式的EC参数用的头部和底部为:

-----BEGIN EC PARAMETERS-----
-----END EC PARAMETERS-----

OpenSSL目前不能够产生新的曲线算法,B<ecparam>命令仅仅能够从知道的曲线中产生EC参数。

示例

用曲线'prime192v1'产生EC参数:

openssl ecparam -out ec_param.pem -name prime192v1


用明确的参数来产生EC参数:

openssl ecparam -out ec_param.pem -name prime192v1 -param_enc explicit


验证给出的EC参数:

openssl ecparam -in ec_param.pem -check


创建EC参数和私钥文件:

  openssl ecparam -out ec_key.pem -name prime192v1 –genkey


改变编码为'compressed'

openssl ecparam -in ec_in.pem -out ec_out.pem -conv_form compressed


打印EC参数到标准输出中:

openssl ecparam -in ec_param.pem -noout -text
转c#写法:#!/bin/sh time_stamp=`date +%s` function CheckStop() { if [ $? -ne 0 ]; then echo "execute fail, error on line_no:"$1" exit!!!" exit fi } function GenEcdsaKey() { ec_param_file_path="/tmp/ec_param.pem."$time_stamp openssl ecparam -out $ec_param_file_path -name prime256v1 -genkey CheckStop $LINENO openssl genpkey -paramfile $ec_param_file_path -out $1 CheckStop $LINENO openssl pkey -in $1 -inform PEM -out $2 -outform PEM -pubout CheckStop $LINENO rm $ec_param_file_path echo "gen_ecdsa_key succ prikey_path:"$1" pubkey_path:"$2 } function GenEcdsaSign() { ec_sign_info_file="/tmp/ec_sign_info_file."$time_stamp ec_sign_info_sha256="/tmp/ec_sign_info_sha256."$time_stamp ec_binary_sign_file="/tmp/ec_binary_sign_file."$time_stamp echo -n "$1"_"$2" > $ec_sign_info_file openssl dgst -sha256 -binary -out $ec_sign_info_sha256 $ec_sign_info_file CheckStop $LINENO openssl pkeyutl -sign -in $ec_sign_info_sha256 -out $ec_binary_sign_file -inkey $3 -keyform PEM CheckStop $LINENO openssl base64 -e -in $ec_binary_sign_file -out $4 CheckStop $LINENO rm $ec_sign_info_file $ec_sign_info_sha256 $ec_binary_sign_file echo "gen_ecdsa_sign succ sign_file_path:"$4 } function VerifyEcdsaSign() { ec_sign_info_file="/tmp/ec_sign_info_file."$time_stamp ec_sign_info_sha256="/tmp/ec_sign_info_sha256."$time_stamp ec_binary_sign_file="/tmp/ec_binary_sign_file."$time_stamp echo -n "$1"_"$2" > $ec_sign_info_file openssl dgst -sha256 -binary -out $ec_sign_info_sha256 $ec_sign_info_file CheckStop $LINENO openssl base64 -d -in $4 -out $ec_binary_sign_file CheckStop $LINENO openssl pkeyutl -verify -in $ec_sign_info_sha256 -sigfile $ec_binary_sign_file -pubin -inkey $3 -keyform PEM rm $ec_sign_info_file $ec_sign_info_sha256 $ec_binary_sign_file } function Usage() { echo "Usage:" echo "mmiot_ecdsa_sign.sh gen_ecdsa_key <private_key_file_path> <public_key_file_path>" echo "mmiot_ecdsa_sign.sh gen_ecdsa_sign <product_id> <sn> <private_
05-31
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值