class OpenSSL::PKey::EC

OpenSSL::PKey::EC 提供了对椭圆曲线数字签名算法 (ECDSA) 和椭圆曲线 Diffie-Hellman (ECDH) 的访问。

密钥交换

ec1 = OpenSSL::PKey::EC.generate("prime256v1")
ec2 = OpenSSL::PKey::EC.generate("prime256v1")
# ec1 and ec2 have own private key respectively
shared_key1 = ec1.dh_compute_key(ec2.public_key)
shared_key2 = ec2.dh_compute_key(ec1.public_key)

p shared_key1 == shared_key2 #=> true