module KRB5::Mixin::Unpacker

Public Instance Methods

unpack_bytes(length) click to toggle source

Unpack raw bytes

@param length [Integer] number of bytes to unpack @return [Array] raw bytes

# File lib/krb5/mixin/unpacker.rb, line 25
def unpack_bytes(length)
  data = bytes[@index, length]
  @index += length

  data
end
unpack_data() click to toggle source

Generic method to unpack Kerberos data

data ::=

length (16 bits)
value (length bytes)

See: web.mit.edu/kerberos/krb5-1.16/doc/formats/keytab_file_format.html

@return [String]

# File lib/krb5/mixin/unpacker.rb, line 14
def unpack_data
  length = unpack_int16
  data = unpack_bytes(length)
end
unpack_int16() click to toggle source
# File lib/krb5/mixin/unpacker.rb, line 39
def unpack_int16
  data = bytes[@index, 2].unpack('s>').first
  @index += 2

  data
end
unpack_int32() click to toggle source
# File lib/krb5/mixin/unpacker.rb, line 46
def unpack_int32
  data = bytes[@index, 4].unpack('l>').first
  @index += 4

  data
end
unpack_int8() click to toggle source
# File lib/krb5/mixin/unpacker.rb, line 32
def unpack_int8
  data = bytes[@index].unpack('c').first
  @index += 1

  data
end