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<named_curve>,EC参数被OID所指定;它的另一个值为B<explicit>,EC参数被明确的给出(RFC3279中定义的EC参数结构)。默认的值是B<named_curve>。在RFC3279中指定B<Note> 和 B<implicitlyCA>众二选一。
-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
openssl genrsa -out rsa_pem.key 512
2.DER 格式
openssl rsa -in rsa_pem.key -inform PEM -out rsa_der.key -outform DER
3.PKCS#8 格式
openssl pkcs8 -topk8 -in rsa_pem.key -infor
测试一下openvpn做二层桥接时. 能达到什么样的性能.
操作系统: debian10 内核 4.19.0-16-amd64
cpu:Xeon E5640 @ 2.67GHz2 每台服务器
通信物理网卡: BCM5709 Gigabit Ethernet3 bond rr模式 默认驱动.
eno2,eno3,eno4连了三条电口网线. 两台服务器直连.
bond网卡是链路聚合网卡.用的都是 rr方式.
tap网卡是openvpn用的二层网卡.
veth0和client中的eth0是虚拟的网卡对.
在素域Fp上,仿射点P1=(x1, y1)的逆点很好计算,为,P2=-P1=(x1, p-y1)。如果采用射影坐标,射影点P1=(X1, Y1, Z1)的逆点为P2=-P1=(X1, p-Y1, Z1)。
───────────────────────────────────────
int EC_POINT_invert(const EC_GROUP *group, EC_POINT *a)...