19#ifndef DETERMINISTICESPASYNCWEBSERVER_NTLMSSP_H
20#define DETERMINISTICESPASYNCWEBSERVER_NTLMSSP_H
35 static constexpr uint32_t NTLMSSP_NEGOTIATE_UNICODE = 0x00000001;
36 static constexpr uint32_t NTLMSSP_REQUEST_TARGET = 0x00000004;
37 static constexpr uint32_t NTLMSSP_NEGOTIATE_NTLM = 0x00000200;
38 static constexpr uint32_t NTLMSSP_NEGOTIATE_ALWAYS_SIGN = 0x00008000;
39 static constexpr uint32_t NTLMSSP_NEGOTIATE_EXTENDED_SESSIONSECURITY = 0x00080000;
40 static constexpr uint32_t NTLMSSP_NEGOTIATE_TARGET_INFO = 0x00800000;
41 static constexpr uint32_t NTLMSSP_NEGOTIATE_128 = 0x20000000;
42 static constexpr uint32_t NTLMSSP_NEGOTIATE_56 = 0x80000000;
44 static constexpr uint32_t NTLMSSP_CLIENT_DEFAULT_FLAGS = NTLMSSP_NEGOTIATE_UNICODE | NTLMSSP_REQUEST_TARGET |
45 NTLMSSP_NEGOTIATE_NTLM | NTLMSSP_NEGOTIATE_ALWAYS_SIGN |
46 NTLMSSP_NEGOTIATE_EXTENDED_SESSIONSECURITY;
53 uint8_t server_challenge[8];
54 const uint8_t *target_info;
55 uint16_t target_info_len;
62size_t ntlmssp_build_negotiate(uint8_t *buf,
size_t cap, uint32_t flags);
70bool ntlmssp_parse_challenge(
const uint8_t *msg,
size_t len, NtlmChallenge *out);
82size_t ntlmssp_build_authenticate(uint8_t *buf,
size_t cap,
const uint8_t *lm_resp,
size_t lm_len,
83 const uint8_t *nt_resp,
size_t nt_len,
const char *domain,
const char *user,
84 const char *workstation, uint32_t flags);
User-facing configuration for DeterministicESPAsyncWebServer.