class NTLM::Message::Challenge
- MS-NLMP
-
2.2.1.2
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 258 def parse(string) super target_name, @flag, @challenge, target_info, version = string.unpack('x12a8Va8x8a8a8') @target_name = fetch_payload(target_name) if has_flag?(:REQUEST_TARGET) @target_info = fetch_payload(target_info) if has_flag?(:NEGOTIATE_TARGET_INFO) @version = decode_version(version) if has_flag?(:NEGOTIATE_VERSION) @target_name &&= decode_utf16(@target_name) if unicode? @target_info &&= decode_av_pair(@target_info) self end
serialize()
click to toggle source
# File lib/ntlm/message.rb, line 271 def serialize @buffer = '' @offset = 56 # (8 + 4) + 8 + 4 + (8 * 4) @challenge ||= OpenSSL::Random.random_bytes(8) if @target_name set(:REQUEST_TARGET) if unicode? target_name = append_payload(encode_utf16(@target_name)) else target_name = append_payload(@target_name) end end if @target_info set(:NEGOTIATE_TARGET_INFO) target_info = append_payload(encode_av_pair(@target_info)) end if @version set(:NEGOTIATE_VERSION) version = encode_version(@version) end [SSP_SIGNATURE, TYPE, target_name, @flag, @challenge, target_info, version].pack('a8Va8Va8x8a8a8') + @buffer end