用途:
椭圆曲线密钥处理工具。它可以转换不同的格式以及打印相对应的组件信息值。需要注意的是OpenSSL用的私钥格式指定为: Elliptic Curve Cryptography'(hhttp://www.secg.org/)。为了转换一个OpenSSL EC 私钥文件到PKCS#8文件,建议使用B
用法:
openssl ec [-inform PEM|DER] [-outform PEM|DER] [-in filename] [-out filename] [-passin arg]
[-passout arg] [-text] [-noout] [-param_out] [-conv_form arg] [-pubin] [-pubout] [-param_enc arg]
[-engine id] [-des] [-des3] [-idea]
选项说明:
-inform PEM|DER:输入文件格式,DER或者PEM格式。DER选项是一个私钥,它用ASN。1 DER编码的SEC1私钥文件。当为公钥时,用RFC3280指定的SubjectPublicKeyInfo结构。默认的是PEM格式,它也接受PKCS#8格式的私钥。
-outform DER|PEM:输出文件格式,DER或者PEM格式。
-in filename:输入的椭圆曲线密钥文件,默认为标准输入。
-out filename:椭圆曲线密钥输出文件,默认为标准输出。
-passin arg:指定私钥包含口令存放方式。
-passout arg:输出文件口令保护存放方式。 -text:打印所有信息。
-noout:不打印信息。
-param_out:指定参数编码方法,可以是named_curve和explicit,默认为named_curve。
-conv_form arg:指定信息存放方式,可以是compressed、uncompressed或者hybrid,默认为compressed。
-pubin:设置此选项后,从输入文件中读取公钥值,默认读取的是私钥值。
-pubout:设置此选项后,保存公钥值到输出文件中,默认的是保存私钥值到输出文件中。
-param_enc arg:指定椭圆曲线的编码方式。它的值为可以为B
-engine id:指定引擎。
-des ,-des3, -idea, -aes128, -aes192, -aes256,-camellia128, -camellia192, -camellia256:指定的私钥保护加密算法。会提示输入口令。如果没有指定其中的一种,则密钥用简单的文本形式写出。
注意:
PEM格式的私钥文件使用以下的头部和尾部:
-----BEGIN EC PRIVATE KEY-----
-----END EC PRIVATE KEY-----
PEM格式的公钥文件使用以下的头部和尾部:
-----BEGIN PUBLIC KEY-----
-----END PUBLIC KEY-----
示例:
用3DES加密一个私钥:
openssl ec -in key.pem -des3 -out keyout.pem
生成ec私钥:
openssl ecparam -genkey -name secp112r1 -out eckey.pem -text
转换为DER编码:
openssl ec -outform der -in eckey.pem -out eckey.der
给私钥进行口令保护:
openssl ec -in eckey.pem -des -out enceckey.pem
将公钥写入文件:
openssl ec -in eckey.pem -pubout -out ecpubkey.pem
显示密钥信息:
openssl ec -in eckey.pem –text
openssl ec -in ecpubkey.pem -pubin –text