20#ifndef WINPR_UTILS_NTLM_H
21#define WINPR_UTILS_NTLM_H
26#include <winpr/winpr.h>
27#include <winpr/wtypes.h>
28#include <winpr/sspi.h>
35 typedef SECURITY_STATUS (*psPeerComputeNtlmHash)(
void* client,
36 const SEC_WINNT_AUTH_IDENTITY* authIdentity,
38 const BYTE* randkey,
const BYTE* mic,
39 const SecBuffer* micvalue, BYTE* ntlmhash);
42 WINPR_API BOOL NTOWFv1W(LPCWSTR Password, UINT32 PasswordLengthInBytes, BYTE* NtHash);
45 WINPR_API BOOL NTOWFv1A(LPCSTR Password, UINT32 PasswordLengthInBytes, BYTE* NtHash);
48 WINPR_API BOOL NTOWFv2W(LPCWSTR Password, UINT32 PasswordLengthInBytes, LPCWSTR User,
49 UINT32 UserLengthInBytes, LPCWSTR Domain, UINT32 DomainLengthInBytes,
53 WINPR_API BOOL NTOWFv2A(LPCSTR Password, UINT32 PasswordLengthInBytes, LPCSTR User,
54 UINT32 UserLengthInBytes, LPCSTR Domain, UINT32 DomainLengthInBytes,
58 WINPR_API BOOL NTOWFv2FromHashW(
const BYTE* NtHashV1, LPCWSTR User, UINT32 UserLengthInBytes,
59 LPCWSTR Domain, UINT32 DomainLengthInBytes, BYTE* NtHash);
62 WINPR_API BOOL NTOWFv2FromHashA(
const BYTE* NtHashV1, LPCSTR User, UINT32 UserLengthInBytes,
63 LPCSTR Domain, UINT32 DomainLengthInBytes, BYTE* NtHash);
70#define NTOWFv1 NTOWFv1W
71#define NTOWFv2 NTOWFv2W
72#define NTOWFv2FromHash NTOWFv2FromHashW
74#define NTOWFv1 NTOWFv1A
75#define NTOWFv2 NTOWFv2A
76#define NTOWFv2FromHash NTOWFv2FromHashA