class Net::SSH::Transport::Kex::EcdhSHA2NistP256

A key-exchange service implementing the “ecdh-sha2-nistp256” key-exchange algorithm. (defined in RFC 5656)

Public Instance Methods

curve_name() click to toggle source
# File lib/net/ssh/transport/kex/ecdh_sha2_nistp256.rb, line 14
def curve_name
  OpenSSL::PKey::EC::CurveNameAlias['nistp256']
end
digester() click to toggle source
# File lib/net/ssh/transport/kex/ecdh_sha2_nistp256.rb, line 10
def digester
  OpenSSL::Digest::SHA256
end

Private Instance Methods

compute_shared_secret(server_ecdh_pubkey) click to toggle source

compute shared secret from server’s public key and client’s private key

# File lib/net/ssh/transport/kex/ecdh_sha2_nistp256.rb, line 25
def compute_shared_secret(server_ecdh_pubkey)
  pk = OpenSSL::PKey::EC::Point.new(OpenSSL::PKey::EC.new(curve_name).group,
                                    OpenSSL::BN.new(server_ecdh_pubkey, 2))
  OpenSSL::BN.new(ecdh.dh_compute_key(pk), 2)
end
ecdh_public_key_bytes() click to toggle source

string Q_C, client’s ephemeral public key octet string

# File lib/net/ssh/transport/kex/ecdh_sha2_nistp256.rb, line 32
def ecdh_public_key_bytes
  ecdh.public_key.to_bn.to_s(2)
end