class SSHScan::KeyExchangeInit

SSHv2 KexInit

Public Class Methods

from_hash(opts) click to toggle source

Generate a {SSHScan::KeyExchangeInit} object from given Ruby hash. @param opts [Hash] options @return [SSHScan::KeyExchangeInit] {SSHScan::KeyExchangeInit}

instance initialized using passed opts
# File lib/ssh_scan/protocol.rb, line 228
def self.from_hash(opts)
  kex_init = SSHScan::KeyExchangeInit.new()
  kex_init.cookie = opts[:cookie]
  kex_init.padding = opts[:padding]
  kex_init.key_algorithms = opts[:key_algorithms]
  kex_init.server_host_key_algorithms = opts[:server_host_key_algorithms]
  kex_init.encryption_algorithms_client_to_server =
    opts[:encryption_algorithms_client_to_server]
  kex_init.encryption_algorithms_server_to_client =
    opts[:encryption_algorithms_server_to_client]
  kex_init.mac_algorithms_client_to_server =
    opts[:mac_algorithms_client_to_server]
  kex_init.mac_algorithms_server_to_client =
    opts[:mac_algorithms_server_to_client]
  kex_init.compression_algorithms_client_to_server =
    opts[:compression_algorithms_client_to_server]
  kex_init.compression_algorithms_server_to_client =
    opts[:compression_algorithms_server_to_client]
  kex_init.languages_client_to_server = opts[:languages_client_to_server]
  kex_init.languages_server_to_client = opts[:languages_server_to_client]
  return kex_init
end

Public Instance Methods

compression_algorithms_client_to_server() click to toggle source
# File lib/ssh_scan/protocol.rb, line 154
def compression_algorithms_client_to_server
  self.compression_algorithms_client_to_server_string.split(",")
end
compression_algorithms_client_to_server=(data) click to toggle source
# File lib/ssh_scan/protocol.rb, line 158
def compression_algorithms_client_to_server=(data)
  string = parse_string_or_array(data)
  self.compression_algorithms_client_to_server_string = string
  self.compression_algorithms_client_to_server_length = string.size
  recalc_packet_length
end
compression_algorithms_server_to_client() click to toggle source
# File lib/ssh_scan/protocol.rb, line 165
def compression_algorithms_server_to_client
  self.compression_algorithms_server_to_client_string.split(",")
end
compression_algorithms_server_to_client=(data) click to toggle source
# File lib/ssh_scan/protocol.rb, line 169
def compression_algorithms_server_to_client=(data)
  string = parse_string_or_array(data)
  self.compression_algorithms_server_to_client_string = string
  self.compression_algorithms_server_to_client_length = string.size
  recalc_packet_length
end
encryption_algorithms_client_to_server() click to toggle source
# File lib/ssh_scan/protocol.rb, line 110
def encryption_algorithms_client_to_server
  self.encryption_algorithms_client_to_server_string.split(",")
end
encryption_algorithms_client_to_server=(data) click to toggle source
# File lib/ssh_scan/protocol.rb, line 114
def encryption_algorithms_client_to_server=(data)
  string = parse_string_or_array(data)
  self.encryption_algorithms_client_to_server_string = string
  self.encryption_algorithms_client_to_server_length = string.size
  recalc_packet_length
end
encryption_algorithms_server_to_client() click to toggle source
# File lib/ssh_scan/protocol.rb, line 121
def encryption_algorithms_server_to_client
  self.encryption_algorithms_server_to_client_string.split(",")
end
encryption_algorithms_server_to_client=(data) click to toggle source
# File lib/ssh_scan/protocol.rb, line 125
def encryption_algorithms_server_to_client=(data)
  string = parse_string_or_array(data)
  self.encryption_algorithms_server_to_client_string = string
  self.encryption_algorithms_server_to_client_length = string.size
  recalc_packet_length
end
key_algorithms() click to toggle source
# File lib/ssh_scan/protocol.rb, line 75
def key_algorithms
  self.key_algorithms_string.split(",")
end
key_algorithms=(data) click to toggle source
# File lib/ssh_scan/protocol.rb, line 92
def key_algorithms=(data)
  string = parse_string_or_array(data)
  self.key_algorithms_string = string
  self.kex_algorithms_length = string.size
  recalc_packet_length
end
languages_client_to_server() click to toggle source
# File lib/ssh_scan/protocol.rb, line 176
def languages_client_to_server
  self.languages_client_to_server_string.split(",")
end
languages_client_to_server=(data) click to toggle source
# File lib/ssh_scan/protocol.rb, line 180
def languages_client_to_server=(data)
  string = parse_string_or_array(data)
  self.languages_client_to_server_string = string
  self.languages_client_to_server_length = string.size
  recalc_packet_length
end
languages_server_to_client() click to toggle source
# File lib/ssh_scan/protocol.rb, line 187
def languages_server_to_client
  self.languages_server_to_client_string.split(",")
end
languages_server_to_client=(data) click to toggle source
# File lib/ssh_scan/protocol.rb, line 191
def languages_server_to_client=(data)
  string = parse_string_or_array(data)
  self.languages_server_to_client_string = string
  self.languages_server_to_client_length = string.size
  recalc_packet_length
end
mac_algorithms_client_to_server() click to toggle source
# File lib/ssh_scan/protocol.rb, line 132
def mac_algorithms_client_to_server
  self.mac_algorithms_client_to_server_string.split(",")
end
mac_algorithms_client_to_server=(data) click to toggle source
# File lib/ssh_scan/protocol.rb, line 136
def mac_algorithms_client_to_server=(data)
  string = parse_string_or_array(data)
  self.mac_algorithms_client_to_server_string = string
  self.mac_algorithms_client_to_server_length = string.size
  recalc_packet_length
end
mac_algorithms_server_to_client() click to toggle source
# File lib/ssh_scan/protocol.rb, line 143
def mac_algorithms_server_to_client
  self.mac_algorithms_server_to_client_string.split(",")
end
mac_algorithms_server_to_client=(data) click to toggle source
# File lib/ssh_scan/protocol.rb, line 147
def mac_algorithms_server_to_client=(data)
  string = parse_string_or_array(data)
  self.mac_algorithms_server_to_client_string = string
  self.mac_algorithms_server_to_client_length = string.size
  recalc_packet_length
end
padding() click to toggle source
# File lib/ssh_scan/protocol.rb, line 67
def padding
  self.padding_string
end
padding=(string) click to toggle source
# File lib/ssh_scan/protocol.rb, line 71
def padding=(string)
  self.padding_string = string
end
parse_string_or_array(data) click to toggle source
# File lib/ssh_scan/protocol.rb, line 79
def parse_string_or_array(data)
  case data
  when String
    string = data
  when Array
    string = data.join(",")
  else
    raise ArgumentError
  end

  return string
end
recalc_packet_length() click to toggle source
# File lib/ssh_scan/protocol.rb, line 198
def recalc_packet_length
  self.packet_length = self.to_binary_s.size - self.padding_length
end
server_host_key_algorithms() click to toggle source
# File lib/ssh_scan/protocol.rb, line 99
def server_host_key_algorithms
  self.server_host_key_algorithms_string.split(",")
end
server_host_key_algorithms=(data) click to toggle source
# File lib/ssh_scan/protocol.rb, line 103
def server_host_key_algorithms=(data)
  string = parse_string_or_array(data)
  self.server_host_key_algorithms_string = string
  self.server_host_key_algorithms_length = string.size
  recalc_packet_length
end
to_hash() click to toggle source

Summarize as Hash @return [Hash] summary

# File lib/ssh_scan/protocol.rb, line 204
def to_hash
  {
    :cookie => self.cookie.hexify,
    :key_algorithms => key_algorithms,
    :server_host_key_algorithms => server_host_key_algorithms,
    :encryption_algorithms_client_to_server =>
      encryption_algorithms_client_to_server,
    :encryption_algorithms_server_to_client =>
      encryption_algorithms_server_to_client,
    :mac_algorithms_client_to_server => mac_algorithms_client_to_server,
    :mac_algorithms_server_to_client => mac_algorithms_server_to_client,
    :compression_algorithms_client_to_server =>
      compression_algorithms_client_to_server,
    :compression_algorithms_server_to_client =>
      compression_algorithms_server_to_client,
    :languages_client_to_server => languages_client_to_server,
    :languages_server_to_client => languages_server_to_client,
  }
end
to_json() click to toggle source

Summarize as JSON @return [String] JSON representation for summary hash

# File lib/ssh_scan/protocol.rb, line 253
def to_json
  self.to_hash.to_json
end