26#define NTLM_MAGIC { 'N', 'T', 'L', 'M', 'S', 'S', 'P', '\0' }
163#define NTLM_VERSION_NTLMV2 0x01
union @162305117151260234136356364136041353210355154177 key
Sense key.
unsigned long long uint64_t
#define FILE_LICENCE(_licence)
Declare a particular licence as applying to a file.
#define FILE_SECBOOT(_status)
Declare a file's UEFI Secure Boot permission status.
static struct dynamic_item username
static struct dynamic_item password
#define MD5_DIGEST_SIZE
MD5 digest size.
struct mschapv2_nt_response nt
NT response.
void ntlm_response(struct ntlm_challenge_info *info, struct ntlm_key *key, struct ntlm_nonce *nonce, struct ntlm_lm_response *lm, struct ntlm_nt_response *nt)
Construct NTLM responses.
ntlm_flags
Negotiation flags.
@ NTLM_NEGOTIATE_NTLM
Negotiate NTLM key.
@ NTLM_REQUEST_TARGET
Request target name and information.
@ NTLM_NEGOTIATE_KEY_EXCH
Negotiate key exchange.
@ NTLM_NEGOTIATE_UNICODE
Negotiate Unicode character encoding.
@ NTLM_NEGOTIATE_ALWAYS_SIGN
Negotiate always sign.
@ NTLM_NEGOTIATE_EXTENDED_SESSIONSECURITY
Negotiate extended security.
size_t ntlm_authenticate(struct ntlm_challenge_info *info, const char *domain, const char *username, const char *workstation, struct ntlm_lm_response *lm, struct ntlm_nt_response *nt, struct ntlm_authenticate *auth)
Construct NTLM Authenticate message.
int ntlm_challenge(struct ntlm_challenge *challenge, size_t len, struct ntlm_challenge_info *info)
Parse NTLM Challenge.
@ NTLM_AUTHENTICATE
Authenticate message.
@ NTLM_CHALLENGE
Challenge message type.
@ NTLM_NEGOTIATE
Negotiate message type.
size_t ntlm_authenticate_len(struct ntlm_challenge_info *info, const char *domain, const char *username, const char *workstation)
Calculate NTLM Authenticate message length.
void ntlm_key(const char *domain, const char *username, const char *password, struct ntlm_key *key)
Calculate NTLM verification key.
struct ntlm_data lm
LAN Manager response.
struct ntlm_data user
User name.
struct ntlm_data domain
Domain name.
struct ntlm_data nt
NT response.
struct ntlm_data session
Session key.
struct ntlm_header header
Message header.
struct ntlm_data workstation
Workstation name.
uint32_t flags
Negotiation flags.
NTLM challenge information.
void * target
Target information.
struct ntlm_nonce * nonce
Server nonce.
size_t len
Length of target information.
uint32_t flags
Negotiation flags.
struct ntlm_nonce nonce
Server nonce.
struct ntlm_header header
Message header.
struct ntlm_data info
Target information.
struct ntlm_data name
Target name.
uint8_t reserved[8]
Reserved.
A variable-length data descriptor.
uint16_t len
Length (in bytes)
uint32_t offset
Offset from start of message header.
uint16_t max_len
Maximum length (in bytes)
An NTLM verification key.
uint8_t raw[MD5_DIGEST_SIZE]
Raw bytes.
uint8_t digest[MD5_DIGEST_SIZE]
HMAC-MD5 digest.
struct ntlm_nonce nonce
Client nonce.
uint32_t flags
Negotiation flags.
struct ntlm_data domain
Domain name.
struct ntlm_data workstation
Workstation name.
struct ntlm_header header
Message header.
uint64_t time
Current time.
struct ntlm_nonce nonce
Client nonce.
uint32_t zero
Must be zero.
uint8_t version
Response version.
uint8_t digest[MD5_DIGEST_SIZE]
HMAC-MD5 digest.
uint8_t reserved_a[6]
Reserved.
uint8_t high
Highest response version.
uint8_t revision
NTLMSSP revision.
uint8_t minor
Product minor version.
uint16_t build
Product build number.
uint8_t reserved[3]
Reserved.
uint8_t major
Product major version.