Module: HrrRbSsh::Authentication::Method::Publickey::Algorithm::Codable

Included in:
Algorithm
Defined in:
lib/hrr_rb_ssh/authentication/method/publickey/algorithm/codable.rb

Instance Method Summary collapse

Instance Method Details

#decode(definition, payload) ⇒ Object



19
20
21
22
23
24
25
26
27
# File 'lib/hrr_rb_ssh/authentication/method/publickey/algorithm/codable.rb', line 19

def decode definition, payload
  payload_io = StringIO.new payload, 'r'
  definition.map{ |data_type, field_name|
    [
      field_name,
      HrrRbSsh::Transport::DataType[data_type].decode(payload_io)
    ]
  }.to_h
end

#encode(definition, payload) ⇒ Object



12
13
14
15
16
17
# File 'lib/hrr_rb_ssh/authentication/method/publickey/algorithm/codable.rb', line 12

def encode definition, payload
  definition.map{ |data_type, field_name|
    field_value = if payload[field_name].instance_of? ::Proc then payload[field_name].call else payload[field_name] end
    HrrRbSsh::Transport::DataType[data_type].encode(field_value)
  }.join
end