class SesameOs2::Ssm

Attributes

ssm[R]

Public Class Methods

new(ssm:) click to toggle source
# File lib/sesame_os2/ssm.rb, line 5
def initialize(ssm:)
  @ssm = ssm
end

Public Instance Methods

information() click to toggle source
# File lib/sesame_os2/ssm.rb, line 39
def information
  URI::decode_www_form(parsed_ssm.query).to_h
end
key_index() click to toggle source
# File lib/sesame_os2/ssm.rb, line 27
def key_index
  unpacked_sk[81..82].pack("C*").unpack("H*").first
end
name() click to toggle source
# File lib/sesame_os2/ssm.rb, line 9
def name
  information['n']
end
publick_key() click to toggle source
# File lib/sesame_os2/ssm.rb, line 35
def publick_key
  unpacked_sk[17..80].pack("C*").unpack("H*").first
end
secret_key() click to toggle source
# File lib/sesame_os2/ssm.rb, line 31
def secret_key
  unpacked_sk[1..16].pack("C*").unpack("H*").first
end
uuid() click to toggle source
# File lib/sesame_os2/ssm.rb, line 13
def uuid
  unpacked = unpacked_sk[83..99].pack("C*").unpack("H*").first.upcase

  parts = [
    unpacked[0..7],
    unpacked[8..11],
    unpacked[12..15],
    unpacked[16..19],
    unpacked[20..-1]
  ]

  parts.join('-')
end

Private Instance Methods

parsed_ssm() click to toggle source
# File lib/sesame_os2/ssm.rb, line 47
def parsed_ssm
  URI.parse(ssm)
end
sk() click to toggle source
# File lib/sesame_os2/ssm.rb, line 51
def sk
  information['sk']
end
unpacked_sk() click to toggle source
# File lib/sesame_os2/ssm.rb, line 55
def unpacked_sk
  Base64.decode64(sk).unpack("C*")
end