2.2.1.3
# File lib/ntlm/message.rb, line 305 def parse(string) super lm_response, nt_response, domain, user, workstation, session_key, @flag, version, mic = string.unpack('x12a8a8a8a8a8a8Va8a16') @lm_response = fetch_payload(lm_response) @nt_response = fetch_payload(nt_response) @domain = fetch_payload(domain) @user = fetch_payload(user) @workstation = fetch_payload(workstation) @session_key = fetch_payload(session_key) if has_flag?(:NEGOTIATE_KEY_EXCH) @version = decode_version(version) if has_flag?(:NEGOTIATE_VERSION) @mic = mic if unicode? @domain = decode_utf16(@domain) @user = decode_utf16(@user) @workstation = decode_utf16(@workstation) end self end
# File lib/ntlm/message.rb, line 328 def serialize @buffer = '' @offset = 88 # (8 + 4) + (8 * 6) + 4 + 8 + 16 lm_response = append_payload(@lm_response) nt_response = append_payload(@nt_response) if unicode? domain = append_payload(encode_utf16(@domain)) user = append_payload(encode_utf16(@user)) workstation = append_payload(encode_utf16(@workstation)) else domain = append_payload(@domain) user = append_payload(@user) workstation = append_payload(@workstation) end if @session_key set(:NEGOTIATE_KEY_EXCH) session_key = append_payload(@session_key) end if @version set(:NEGOTIATE_VERSION) version = encode_version(@version) end [SSP_SIGNATURE, TYPE, lm_response, nt_response, domain, user, workstation, session_key, @flag, version, @mic].pack('a8Va8a8a8a8a8a8Va8a16') + @buffer end