FreeRDP
Loading...
Searching...
No Matches
include/winpr/ntlm.h
1
20#ifndef WINPR_UTILS_NTLM_H
21#define WINPR_UTILS_NTLM_H
22
23#include <stdio.h>
24#include <stdlib.h>
25#include <string.h>
26#include <winpr/winpr.h>
27#include <winpr/wtypes.h>
28#include <winpr/sspi.h>
29
30#ifdef __cplusplus
31extern "C"
32{
33#endif
34
35 typedef SECURITY_STATUS (*psPeerComputeNtlmHash)(void* client,
36 const SEC_WINNT_AUTH_IDENTITY* authIdentity,
37 const SecBuffer* ntproofvalue,
38 const BYTE* randkey, const BYTE* mic,
39 const SecBuffer* micvalue, BYTE* ntlmhash);
40
41 WINPR_ATTR_NODISCARD
42 WINPR_API BOOL NTOWFv1W(LPWSTR Password, UINT32 PasswordLength, BYTE* NtHash);
43
44 WINPR_ATTR_NODISCARD
45 WINPR_API BOOL NTOWFv1A(LPSTR Password, UINT32 PasswordLength, BYTE* NtHash);
46
47 WINPR_ATTR_NODISCARD
48 WINPR_API BOOL NTOWFv2W(LPWSTR Password, UINT32 PasswordLength, LPWSTR User, UINT32 UserLength,
49 LPWSTR Domain, UINT32 DomainLength, BYTE* NtHash);
50
51 WINPR_ATTR_NODISCARD
52 WINPR_API BOOL NTOWFv2A(LPSTR Password, UINT32 PasswordLength, LPSTR User, UINT32 UserLength,
53 LPSTR Domain, UINT32 DomainLength, BYTE* NtHash);
54
55 WINPR_ATTR_NODISCARD
56 WINPR_API BOOL NTOWFv2FromHashW(BYTE* NtHashV1, LPWSTR User, UINT32 UserLength, LPWSTR Domain,
57 UINT32 DomainLength, BYTE* NtHash);
58
59 WINPR_ATTR_NODISCARD
60 WINPR_API BOOL NTOWFv2FromHashA(BYTE* NtHashV1, LPSTR User, UINT32 UserLength, LPSTR Domain,
61 UINT32 DomainLength, BYTE* NtHash);
62
63#ifdef __cplusplus
64}
65#endif
66
67#ifdef UNICODE
68#define NTOWFv1 NTOWFv1W
69#define NTOWFv2 NTOWFv2W
70#define NTOWFv2FromHash NTOWFv2FromHashW
71#else
72#define NTOWFv1 NTOWFv1A
73#define NTOWFv2 NTOWFv2A
74#define NTOWFv2FromHash NTOWFv2FromHashA
75#endif
76
77#endif /* WINPR_UTILS_NTLM_H */