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
33typedef enum
34{
35 CertCredential = 1,
36 UsernameTargetCredential,
37 BinaryBlobCredential,
38 UsernameForPackedCredentials,
39 BinaryBlobForSystem
40} CRED_MARSHAL_TYPE,
41 *PCRED_MARSHAL_TYPE;
42
43typedef struct
44{
45 ULONG cbSize;
46 UCHAR rgbHashOfCert[CERT_HASH_LENGTH];
48
49typedef struct
50{
51 LPSTR Keyword;
52 DWORD Flags;
53 DWORD ValueSize;
54 LPBYTE Value;
56
57typedef struct
58{
59 LPWSTR Keyword;
60 DWORD Flags;
61 DWORD ValueSize;
62 LPBYTE Value;
64
65typedef struct
66{
67 DWORD Flags;
68 DWORD Type;
69 LPSTR TargetName;
70 LPSTR Comment;
71 FILETIME LastWritten;
72 DWORD CredentialBlobSize;
73 LPBYTE CredentialBlob;
74 DWORD Persist;
75 DWORD AttributeCount;
76 PCREDENTIAL_ATTRIBUTEA Attributes;
77 LPSTR TargetAlias;
78 LPSTR UserName;
80
81typedef struct
82{
83 DWORD Flags;
84 DWORD Type;
85 LPWSTR TargetName;
86 LPWSTR Comment;
87 FILETIME LastWritten;
88 DWORD CredentialBlobSize;
89 LPBYTE CredentialBlob;
90 DWORD Persist;
91 DWORD AttributeCount;
92 PCREDENTIAL_ATTRIBUTEA Attributes;
93 LPWSTR TargetAlias;
94 LPWSTR UserName;
96
97typedef struct
98{
99 LPSTR TargetName;
100 LPSTR NetbiosServerName;
101 LPSTR DnsServerName;
102 LPSTR NetbiosDomainName;
103 LPSTR DnsDomainName;
104 LPSTR DnsTreeName;
105 LPSTR PackageName;
106 ULONG Flags;
107 DWORD CredTypeCount;
108 LPDWORD CredTypes;
110
111typedef struct
112{
113 LPWSTR TargetName;
114 LPWSTR NetbiosServerName;
115 LPWSTR DnsServerName;
116 LPWSTR NetbiosDomainName;
117 LPWSTR DnsDomainName;
118 LPWSTR DnsTreeName;
119 LPWSTR PackageName;
120 ULONG Flags;
121 DWORD CredTypeCount;
122 LPDWORD CredTypes;
124
125typedef enum
126{
127 CredUnprotected,
128 CredUserProtection,
129 CredTrustedProtection,
130 CredForSystemProtection
131} CRED_PROTECTION_TYPE,
132 *PCRED_PROTECTION_TYPE;
133
134WINPR_API BOOL CredMarshalCredentialA(CRED_MARSHAL_TYPE CredType, PVOID Credential,
135 LPSTR* MarshaledCredential);
136WINPR_API BOOL CredMarshalCredentialW(CRED_MARSHAL_TYPE CredType, PVOID Credential,
137 LPWSTR* MarshaledCredential);
138
139#ifdef UNICODE
140#define CredMarshalCredential CredMarshalCredentialW
141#else
142#define CredMarshalCredential CredMarshalCredentialA
143#endif
144
145WINPR_API BOOL CredUnmarshalCredentialW(LPCWSTR cred, PCRED_MARSHAL_TYPE CredType,
146 PVOID* Credential);
147
148WINPR_API BOOL CredUnmarshalCredentialA(LPCSTR cred, PCRED_MARSHAL_TYPE CredType,
149 PVOID* Credential);
150
151#ifdef UNICODE
152#define CredUnmarshalCredential CredUnmarshalCredentialW
153#else
154#define CredUnmarshalCredential CredUnmarshalCredentialA
155#endif
156
157WINPR_API BOOL CredIsMarshaledCredentialA(LPCSTR MarshaledCredential);
158WINPR_API BOOL CredIsMarshaledCredentialW(LPCWSTR MarshaledCredential);
159WINPR_API VOID CredFree(PVOID Buffer);
160
161#endif /* _WIN32 */
162
163#endif /* WINPR_CRED_H_ */