Sha256: 737c01e48fbbec92576efa039d8bfb4ea9a32a7b86ab198c76eead72f22bbc95
Contents?: true
Size: 1.13 KB
Versions: 19
Compression:
Stored size: 1.13 KB
Contents
require 'net/ssh/transport/kex/abstract5656' module Net module SSH module Transport module Kex # A key-exchange service implementing the "ecdh-sha2-nistp256" # key-exchange algorithm. (defined in RFC 5656) class EcdhSHA2NistP256 < Abstract5656 def digester OpenSSL::Digest::SHA256 end def curve_name OpenSSL::PKey::EC::CurveNameAlias['nistp256'] end private def generate_key # :nodoc: OpenSSL::PKey::EC.generate(curve_name) end # compute shared secret from server's public key and client's private key 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 ## string Q_C, client's ephemeral public key octet string def ecdh_public_key_bytes ecdh.public_key.to_bn.to_s(2) end end end end end end
Version data entries
19 entries across 19 versions & 4 rubygems