class Net::SSH::Transport::Kex::DiffieHellmanGroup1SHA1

A key-exchange service implementing the “diffie-hellman-group1-sha1” key-exchange algorithm.

Constants

G

The group constant

P_r

The radix in which P_s represents the value of P

P_s

The value of ‘P’, as a string, in hexadecimal

Public Instance Methods

digester() click to toggle source
# File lib/net/ssh/transport/kex/diffie_hellman_group1_sha1.rb, line 26
def digester
  OpenSSL::Digest::SHA1
end

Private Instance Methods

build_signature_buffer(result) click to toggle source

Build the signature buffer to use when verifying a signature from the server.

# File lib/net/ssh/transport/kex/diffie_hellman_group1_sha1.rb, line 47
def build_signature_buffer(result)
  response = Net::SSH::Buffer.new
  response.write_string data[:client_version_string],
                        data[:server_version_string],
                        data[:client_algorithm_packet],
                        data[:server_algorithm_packet],
                        result[:key_blob]
  response.write_bignum dh.pub_key,
                        result[:server_dh_pubkey],
                        result[:shared_secret]
  response
end
get_message_types() click to toggle source

Returns the INIT/REPLY constants used by this algorithm.

# File lib/net/ssh/transport/kex/diffie_hellman_group1_sha1.rb, line 41
def get_message_types
  [KEXDH_INIT, KEXDH_REPLY]
end
get_parameters() click to toggle source

Returns the DH key parameters for the current connection. [p, q]

# File lib/net/ssh/transport/kex/diffie_hellman_group1_sha1.rb, line 33
def get_parameters
  [
    OpenSSL::BN.new(self.class::P_s, self.class::P_r),
    self.class::G
  ]
end