# Copyright 2017 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

# Signature
"NTLMSSP\x00"

# Message Types
"\x01\x00\x00\x00"
"\x02\x00\x00\x00"
"\x03\x00\x00\x00"

# Common Target Name offset
"\x20\x00\x00\x00"

# Useful security buffer lengths to match "Server"
"\x06\x00"
"\x0c\x00"

# Common\interesting flag values
"\x07\x82\x08\x00"
"\x06\x82\x08\x00"
"\x07\x82\x00\x00"
"\x06\x82\x00\x00"
"\x01\x00\x08\x00"
"\x02\x00\x08\x00"
"\x03\x00\x08\x00"
"\x01\x00\x00\x00"
"\x02\x00\x00\x00"
"\x03\x00\x00\x00"
"\x08\x00"
"\x00\x00"

# Target Names
"Server"
"S\x00e\x00r\x00v\x00e\x00r\x00"

# Channel bindings prefix
"tls-server-endpoint:"

# Channel bindings with correct length
"tls-server-endpoint:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

# Empty LM Response
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"

# Target Info Field Headers
"\x06\x00\x04\x00"
"\x0a\x00\x10\x00"
"\x02\x00\x0c\x00"
"\x01\x00\x0c\x00"
"\x09\x00\x16\x00"

# Target Info Payload - Server
"\x02\x00\x0c\x00S\x00e\x00r\x00v\x00e\x00r\x00"
"S\x00e\x00r\x00v\x00e\x00r\x00"

# Target Info Payload - Domain
"\x02\x00\x0c\x00D\x00o\x00m\x00a\x00i\x00n\x00"
"D\x00o\x00m\x00a\x00i\x00n\x00"

# Target Info Payload - SPN
"\x09\x00\x16\x00H\x00T\x00T\x00P\x00/\x00S\x00e\x00r\x00v\x00e\x00r\x00"
"H\x00T\x00T\x00P\x00/\x00S\x00e\x00r\x00v\x00e\x00r\x00"

# Target Info Payload - Channel bindings
"\x0a\x00\x10\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"

# Target Info Payload - Flags
"\x06\x00\x04\x00\x02\x00\x00\x00"

# Full V1 Challenge
"\x4e\x54\x4c\x4d\x53\x53\x50\x00\x02\x00\x00\x00\x0c\x00\x0c\x00\x38\x00\x00\x00\x33\x82\x0a\x82\x01\x23\x45\x67\x89\xab\xcd\xef\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\x00\x70\x17\x00\x00\x00\x0f\x53\x00\x65\x00\x72\x00\x76\x00\x65\x00\x72\x00"

# Full V2 Challenge
"\x4e\x54\x4c\x4d\x53\x53\x50\x00\x02\x00\x00\x00\x0c\x00\x0c\x00\x38\x00\x00\x00\x33\x82\x8a\xe2\x01\x23\x45\x67\x89\xab\xcd\xef\x00\x00\x00\x00\x00\x00\x00\x00\x24\x00\x24\x00\x44\x00\x00\x00\x06\x00\x70\x17\x00\x00\x00\x0f\x53\x00\x65\x00\x72\x00\x76\x00\x65\x00\x72\x00\x02\x00\x0c\x00\x44\x00\x6f\x00\x6d\x00\x61\x00\x69\x00\x6e\x00\x01\x00\x0c\x00\x53\x00\x65\x00\x72\x00\x76\x00\x65\x00\x72\x00\x00\x00\x00\x00"
