Method: Kdbx::Header.load

Defined in:
lib/kdbx/header.rb

.load(file) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
19
20
# File 'lib/kdbx/header.rb', line 7

def self.load(file)
  if file.readpartial(12) != FILEMAGIC
    fail ParseError, "bad magic number"
  end
  fields = {}
  loop do
    (id, sz) = file.readpartial(3).unpack("CS<")
    fields[id] = file.readpartial sz
    break if id == 0
  end
  new fields
rescue TypeError, EOFError
  fail ParseError, "truncated header"
end