class Net::NTLM::Message

@private false

Public Class Methods

decode64(str) click to toggle source
# File lib/net/ntlm/message.rb, line 65
def decode64(str)
  parse(Base64.decode64(str))
end
parse(str) click to toggle source
# File lib/net/ntlm/message.rb, line 49
def parse(str)
  m = Type0.new
  m.parse(str)
  case m.type
  when 1
    t = Type1.new.parse(str)
  when 2
    t = Type2.new.parse(str)
  when 3
    t = Type3.new.parse(str)
  else
    raise ArgumentError, "unknown type: #{m.type}"
  end
  t
end

Public Instance Methods

data_edge() click to toggle source
# File lib/net/ntlm/message.rb, line 131
def data_edge
  security_buffers.map{ |n, f| f.active ? f.offset : size}.min
end
data_size() click to toggle source
# File lib/net/ntlm/message.rb, line 110
def data_size
  security_buffers.inject(0){|sum, a| sum += a[1].data_size}
end
decode64(str) click to toggle source
# File lib/net/ntlm/message.rb, line 104
def decode64(str)
  parse(Base64.decode64(str))
end
deflag() click to toggle source
# File lib/net/ntlm/message.rb, line 123
def deflag
  security_buffers.inject(head_size){|cur, a|
    a[1].offset = cur
    cur += a[1].data_size
    has_flag?(:UNICODE) ? cur + cur % 2 : cur
  }
end
dump_flags() click to toggle source
# File lib/net/ntlm/message.rb, line 91
def dump_flags
  FLAG_KEYS.each{ |k| print(k, "=", has_flag?(k), "\n") }
end
encode64() click to toggle source
# File lib/net/ntlm/message.rb, line 100
def encode64
  Base64.encode64(serialize).gsub(/\n/, '')
end
has_flag?(flag) click to toggle source
# File lib/net/ntlm/message.rb, line 83
def has_flag?(flag)
  (self[:flag].value & FLAGS[flag]) == FLAGS[flag]
end
head_size()
Alias for: size
parse(str) click to toggle source

@return [self]

Calls superclass method Net::NTLM::FieldSet#parse
# File lib/net/ntlm/message.rb, line 71
def parse(str)
  super

  while has_disabled_fields? && serialize.size < str.size
    # enable the next disabled field
    self.class.names.find { |name| !self[name].active && enable(name) }
    super
  end

  self
end
security_buffers() click to toggle source
# File lib/net/ntlm/message.rb, line 119
def security_buffers
  @alist.find_all{|n, f| f.instance_of?(SecurityBuffer)}
end
serialize() click to toggle source
Calls superclass method Net::NTLM::FieldSet#serialize
# File lib/net/ntlm/message.rb, line 95
def serialize
  deflag
  super + security_buffers.map{|n, f| f.value + (has_flag?(:UNICODE) ? "\x00".b * (f.value.length % 2) : '')}.join
end
set_flag(flag) click to toggle source
# File lib/net/ntlm/message.rb, line 87
def set_flag(flag)
  self[:flag].value  |= FLAGS[flag]
end
size() click to toggle source
# File lib/net/ntlm/message.rb, line 114
def size
  head_size + data_size
end
Also aliased as: head_size