FreeRDP
Loading...
Searching...
No Matches
cred.h
1
19#ifndef WINPR_CRED_H_
20#define WINPR_CRED_H_
21
22#include <winpr/winpr.h>
23
24#ifdef _WIN32
25#include <windows.h>
26#include <wincred.h>
27#else
28
29#include <winpr/wtypes.h>
30
31#define CERT_HASH_LENGTH 20
32
33#ifdef __cplusplus
34extern "C"
35{
36#endif
37
38 typedef enum
39 {
40 CertCredential = 1,
41 UsernameTargetCredential,
42 BinaryBlobCredential,
43 UsernameForPackedCredentials,
44 BinaryBlobForSystem
45 } CRED_MARSHAL_TYPE,
46 *PCRED_MARSHAL_TYPE;
47
48 typedef struct
49 {
50 ULONG cbSize;
51 UCHAR rgbHashOfCert[CERT_HASH_LENGTH];
53
54 typedef struct
55 {
56 LPSTR Keyword;
57 DWORD Flags;
58 DWORD ValueSize;
59 LPBYTE Value;
61
62 typedef struct
63 {
64 LPWSTR Keyword;
65 DWORD Flags;
66 DWORD ValueSize;
67 LPBYTE Value;
69
70 typedef struct
71 {
72 DWORD Flags;
73 DWORD Type;
74 LPSTR TargetName;
75 LPSTR Comment;
76 FILETIME LastWritten;
77 DWORD CredentialBlobSize;
78 LPBYTE CredentialBlob;
79 DWORD Persist;
80 DWORD AttributeCount;
81 PCREDENTIAL_ATTRIBUTEA Attributes;
82 LPSTR TargetAlias;
83 LPSTR UserName;
85
86 typedef struct
87 {
88 DWORD Flags;
89 DWORD Type;
90 LPWSTR TargetName;
91 LPWSTR Comment;
92 FILETIME LastWritten;
93 DWORD CredentialBlobSize;
94 LPBYTE CredentialBlob;
95 DWORD Persist;
96 DWORD AttributeCount;
97 PCREDENTIAL_ATTRIBUTEA Attributes;
98 LPWSTR TargetAlias;
99 LPWSTR UserName;
101
102 typedef struct
103 {
104 LPSTR TargetName;
105 LPSTR NetbiosServerName;
106 LPSTR DnsServerName;
107 LPSTR NetbiosDomainName;
108 LPSTR DnsDomainName;
109 LPSTR DnsTreeName;
110 LPSTR PackageName;
111 ULONG Flags;
112 DWORD CredTypeCount;
113 LPDWORD CredTypes;
115
116 typedef struct
117 {
118 LPWSTR TargetName;
119 LPWSTR NetbiosServerName;
120 LPWSTR DnsServerName;
121 LPWSTR NetbiosDomainName;
122 LPWSTR DnsDomainName;
123 LPWSTR DnsTreeName;
124 LPWSTR PackageName;
125 ULONG Flags;
126 DWORD CredTypeCount;
127 LPDWORD CredTypes;
129
130 typedef enum
131 {
132 CredUnprotected,
133 CredUserProtection,
134 CredTrustedProtection,
135 CredForSystemProtection
136 } CRED_PROTECTION_TYPE,
137 *PCRED_PROTECTION_TYPE;
138
139 WINPR_ATTR_NODISCARD
140 WINPR_API BOOL CredMarshalCredentialA(CRED_MARSHAL_TYPE CredType, PVOID Credential,
141 LPSTR* MarshaledCredential);
142
143 WINPR_ATTR_NODISCARD
144 WINPR_API BOOL CredMarshalCredentialW(CRED_MARSHAL_TYPE CredType, PVOID Credential,
145 LPWSTR* MarshaledCredential);
146
147#ifdef UNICODE
148#define CredMarshalCredential CredMarshalCredentialW
149#else
150#define CredMarshalCredential CredMarshalCredentialA
151#endif
152
153 WINPR_ATTR_NODISCARD
154 WINPR_API BOOL CredUnmarshalCredentialW(LPCWSTR cred, PCRED_MARSHAL_TYPE CredType,
155 PVOID* Credential);
156
157 WINPR_ATTR_NODISCARD
158 WINPR_API BOOL CredUnmarshalCredentialA(LPCSTR cred, PCRED_MARSHAL_TYPE CredType,
159 PVOID* Credential);
160
161#ifdef UNICODE
162#define CredUnmarshalCredential CredUnmarshalCredentialW
163#else
164#define CredUnmarshalCredential CredUnmarshalCredentialA
165#endif
166
167 WINPR_ATTR_NODISCARD
168 WINPR_API BOOL CredIsMarshaledCredentialA(LPCSTR MarshaledCredential);
169
170 WINPR_ATTR_NODISCARD
171 WINPR_API BOOL CredIsMarshaledCredentialW(LPCWSTR MarshaledCredential);
172 WINPR_API VOID CredFree(PVOID Buffer);
173
174#ifdef __cplusplus
175}
176#endif
177
178#endif /* _WIN32 */
179
180#endif /* WINPR_CRED_H_ */