Method: WWMD::ViewState#deserialize

Defined in:
lib/wwmd/viewstate/viewstate.rb

#deserialize(b64 = nil) ⇒ Object Also known as: parse

deserialize



37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
# File 'lib/wwmd/viewstate/viewstate.rb', line 37

def deserialize(b64=nil)
  @obj_queue = []
  @b64 = b64 if b64
  @raw = @b64.b64d
  @buf = StringIO.new(@raw)
  @size = @buf.size
  raise "Invalid ViewState" if not self.magic?
  @obj_queue << self.deserialize_value
  if (@buf.size - @buf.pos) == 20 then
    @mac = @buf.read(20)
    dlog(0x00,"MAC = #{@mac.hexify}")
  end
  raise "Error Parsing Viewstate (left: #{@buf.size - @buf.pos})" if not (@buf.size - @buf.pos) == 0
  return !self.raw.nil?
end