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_API BOOL CredMarshalCredentialA(CRED_MARSHAL_TYPE CredType, PVOID Credential,
140 LPSTR* MarshaledCredential);
141 WINPR_API BOOL CredMarshalCredentialW(CRED_MARSHAL_TYPE CredType, PVOID Credential,
142 LPWSTR* MarshaledCredential);
143
144#ifdef UNICODE
145#define CredMarshalCredential CredMarshalCredentialW
146#else
147#define CredMarshalCredential CredMarshalCredentialA
148#endif
149
150WINPR_API BOOL CredUnmarshalCredentialW(LPCWSTR cred, PCRED_MARSHAL_TYPE CredType,
151 PVOID* Credential);
152
153WINPR_API BOOL CredUnmarshalCredentialA(LPCSTR cred, PCRED_MARSHAL_TYPE CredType,
154 PVOID* Credential);
155
156#ifdef UNICODE
157#define CredUnmarshalCredential CredUnmarshalCredentialW
158#else
159#define CredUnmarshalCredential CredUnmarshalCredentialA
160#endif
161
162WINPR_API BOOL CredIsMarshaledCredentialA(LPCSTR MarshaledCredential);
163WINPR_API BOOL CredIsMarshaledCredentialW(LPCWSTR MarshaledCredential);
164WINPR_API VOID CredFree(PVOID Buffer);
165
166#ifdef __cplusplus
167}
168#endif
169
170#endif /* _WIN32 */
171
172#endif /* WINPR_CRED_H_ */