class NTLM::Message::Negotiate

MS-NLMP

2.2.1.1

Constants

ATTRIBUTES
DEFAULT_FLAGS
TYPE

Public Instance Methods

parse(string) click to toggle source
Calls superclass method NTLM::Message::parse
# File lib/ntlm/message.rb, line 215
def parse(string)
  super
  @flag, domain, workstation, version = string.unpack('x12Va8a8a8')
  @domain      = fetch_payload(domain) if has_flag?(:OEM_DOMAIN_SUPPLIED)
  @workstation = fetch_payload(workstation) if has_flag?(:OEM_WORKSTATION_SUPPLIED)
  @version     = decode_version(version)  if has_flag?(:NEGOTIATE_VERSION)
  self
end
serialize() click to toggle source
# File lib/ntlm/message.rb, line 224
def serialize
  @buffer = ''
  @offset = 40  # (8 + 4) + 4 + (8 * 3)

  if @domain
    set(:OEM_DOMAIN_SUPPLIED)
    domain = append_payload(@domain)
  end

  if @workstation
    set(:OEM_WORKSTATION_SUPPLIED)
    workstation = append_payload(@workstation)
  end

  if @version
    set(:NEGOTIATE_VERSION)
    version = encode_version(@version)
  end

  [SSP_SIGNATURE, TYPE, @flag, domain, workstation, version].pack('a8VVa8a8a8') + @buffer
end