Module: KRB5::Mixin::Unpacker

Included in:
KeytabParser
Defined in:
lib/krb5/mixin/unpacker.rb

Instance Method Summary collapse

Instance Method Details

#unpack_bytes(length) ⇒ Array

Unpack raw bytes

Parameters:

  • length (Integer)

    number of bytes to unpack

Returns:

  • (Array)

    raw bytes



25
26
27
28
29
30
# File 'lib/krb5/mixin/unpacker.rb', line 25

def unpack_bytes(length)
  data = bytes[@index, length]
  @index += length

  data
end

#unpack_dataString

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

Returns:

  • (String)


14
15
16
17
# File 'lib/krb5/mixin/unpacker.rb', line 14

def unpack_data
  length = unpack_int16
  data = unpack_bytes(length)
end

#unpack_int16Object



39
40
41
42
43
44
# File 'lib/krb5/mixin/unpacker.rb', line 39

def unpack_int16
  data = bytes[@index, 2].unpack('s>').first
  @index += 2

  data
end

#unpack_int32Object



46
47
48
49
50
51
# File 'lib/krb5/mixin/unpacker.rb', line 46

def unpack_int32
  data = bytes[@index, 4].unpack('l>').first
  @index += 4

  data
end

#unpack_int8Object



32
33
34
35
36
37
# File 'lib/krb5/mixin/unpacker.rb', line 32

def unpack_int8
  data = bytes[@index].unpack('c').first
  @index += 1

  data
end