Rob Shearman : include: Add credential serialisation APIs to
wincred.h.
Alexandre Julliard
julliard at wine.codeweavers.com
Tue Mar 13 16:56:25 CDT 2007
Module: wine
Branch: master
Commit: 213f645a109e22cbcf7be5ab4bd2918b979764c2
URL: http://source.winehq.org/git/wine.git/?a=commit;h=213f645a109e22cbcf7be5ab4bd2918b979764c2
Author: Rob Shearman <rob at codeweavers.com>
Date: Tue Mar 13 12:38:46 2007 +0000
include: Add credential serialisation APIs to wincred.h.
---
include/wincred.h | 97 +++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 97 insertions(+), 0 deletions(-)
diff --git a/include/wincred.h b/include/wincred.h
index b44a83f..983bcb4 100644
--- a/include/wincred.h
+++ b/include/wincred.h
@@ -35,6 +35,60 @@ typedef struct _SecHandle
typedef SecHandle CtxtHandle;
typedef PSecHandle PCtxtHandle;
+typedef struct _CREDENTIAL_ATTRIBUTEA
+{
+ LPSTR Keyword;
+ DWORD Flags;
+ DWORD ValueSize;
+ LPBYTE Value;
+} CREDENTIAL_ATTRIBUTEA, *PCREDENTIAL_ATTRIBUTEA;
+
+typedef struct _CREDENTIAL_ATTRIBUTEW
+{
+ LPWSTR Keyword;
+ DWORD Flags;
+ DWORD ValueSize;
+ LPBYTE Value;
+} CREDENTIAL_ATTRIBUTEW, *PCREDENTIAL_ATTRIBUTEW;
+
+DECL_WINELIB_TYPE_AW(CREDENTIAL_ATTRIBUTE)
+DECL_WINELIB_TYPE_AW(PCREDENTIAL_ATTRIBUTE)
+
+typedef struct _CREDENTIALA
+{
+ DWORD Flags;
+ DWORD Type;
+ LPSTR TargetName;
+ LPSTR Comment;
+ FILETIME LastWritten;
+ DWORD CredentialBlobSize;
+ LPBYTE CredentialBlob;
+ DWORD Persist;
+ DWORD AttributeCount;
+ PCREDENTIAL_ATTRIBUTEA Attribute;
+ LPSTR TargetAlias;
+ LPSTR UserName;
+} CREDENTIALA, *PCREDENTIALA;
+
+typedef struct _CREDENTIALW
+{
+ DWORD Flags;
+ DWORD Type;
+ LPWSTR TargetName;
+ LPWSTR Comment;
+ FILETIME LastWritten;
+ DWORD CredentialBlobSize;
+ LPBYTE CredentialBlob;
+ DWORD Persist;
+ DWORD AttributeCount;
+ PCREDENTIAL_ATTRIBUTEW Attribute;
+ LPWSTR TargetAlias;
+ LPWSTR UserName;
+} CREDENTIALW, *PCREDENTIALW;
+
+DECL_WINELIB_TYPE_AW(CREDENTIAL)
+DECL_WINELIB_TYPE_AW(PCREDENTIAL)
+
typedef struct _CREDUI_INFOA
{
DWORD cbSize;
@@ -53,6 +107,9 @@ typedef struct _CREDUI_INFOW
HBITMAP hbmBanner;
} CREDUI_INFOW, *PCREDUI_INFOW;
+DECL_WINELIB_TYPE_AW(CREDUI_INFO)
+DECL_WINELIB_TYPE_AW(PCREDUI_INFO)
+
#define CRED_MAX_STRING_LENGTH 256
#define CRED_MAX_USERNAME_LENGTH 513
#define CRED_MAX_GENERIC_TARGET_NAME_LENGTH 32767
@@ -69,6 +126,26 @@ typedef struct _CREDUI_INFOW
#define CREDUI_MAX_USERNAME_LENGTH CRED_MAX_USERNAME_LENGTH
#define CREDUI_MAX_PASSWORD_LENGTH (CRED_MAX_CREDENTIAL_BLOB_SIZE / 2)
+/* flags for CREDENTIAL::Flags */
+#define CRED_FLAGS_PASSWORD_FOR_CERT 0x0001
+#define CRED_FLAGS_PROMPT_NOW 0x0002
+#define CRED_FLAGS_USERNAME_TARGET 0x0004
+#define CRED_FLAGS_OWF_CRED_BLOB 0x0008
+#define CRED_FLAGS_VALID_FLAGS 0x000f
+
+/* values for CREDENTIAL::Type */
+#define CRED_TYPE_GENERIC 1
+#define CRED_TYPE_DOMAIN_PASSWORD 2
+#define CRED_TYPE_DOMAIN_CERTIFICATE 3
+#define CRED_TYPE_DOMAIN_VISIBLE_PASSWORD 4
+#define CRED_TYPE_MAXIMUM 5
+
+/* values for CREDENTIAL::Persist */
+#define CRED_PERSIST_NONE 0
+#define CRED_PERSIST_SESSION 1
+#define CRED_PERSIST_LOCAL_MACHINE 2
+#define CRED_PERSIST_ENTERPRISE 3
+
#define CREDUI_FLAGS_INCORRECT_PASSWORD 0x00000001
#define CREDUI_FLAGS_DO_NOT_PERSIST 0x00000002
#define CREDUI_FLAGS_REQUEST_ADMINISTRATOR 0x00000004
@@ -87,6 +164,26 @@ typedef struct _CREDUI_INFOW
#define CREDUI_FLAGS_USERNAME_TARGET_CREDENTIALS 0x00080000
#define CREDUI_FLAGS_KEEP_USERNAME 0x00100000
+/* flags for CredWrite and CredWriteDomainCredentials */
+#define CRED_PRESERVE_CREDENTIAL_BLOB 0x00000001
+
+BOOL WINAPI CredDeleteA(LPCSTR,DWORD,DWORD);
+BOOL WINAPI CredDeleteW(LPCWSTR,DWORD,DWORD);
+#define CredDelete WINELIB_NAME_AW(CredDelete)
+BOOL WINAPI CredEnumerateA(LPCSTR,DWORD,DWORD *,PCREDENTIALA **);
+BOOL WINAPI CredEnumerateW(LPCWSTR,DWORD,DWORD *,PCREDENTIALW **);
+#define CredEnumerate WINELIB_NAME_AW(CredEnumerate)
+VOID WINAPI CredFree(PVOID);
+BOOL WINAPI CredReadA(LPCSTR,DWORD,DWORD,PCREDENTIALA *);
+BOOL WINAPI CredReadW(LPCWSTR,DWORD,DWORD,PCREDENTIALW *);
+#define CredRead WINELIB_NAME_AW(CredRead)
+BOOL WINAPI CredRenameA(LPCSTR,LPCSTR,DWORD,DWORD);
+BOOL WINAPI CredRenameW(LPCWSTR,LPCWSTR,DWORD,DWORD);
+#define CredRename WINELIB_NAME_AW(CredRename)
+BOOL WINAPI CredWriteA(PCREDENTIALA,DWORD);
+BOOL WINAPI CredWriteW(PCREDENTIALW,DWORD);
+#define CredWrite WINELIB_NAME_AW(CredWrite)
+
DWORD WINAPI CredUICmdLinePromptForCredentialsW(PCWSTR,PCtxtHandle,DWORD,PWSTR,ULONG,PWSTR,ULONG,PBOOL,DWORD);
DWORD WINAPI CredUICmdLinePromptForCredentialsA(PCSTR,PCtxtHandle,DWORD,PSTR,ULONG,PSTR,ULONG,PBOOL,DWORD);
#define CredUICmdLinePromptForCredentials WINELIB_NAME_AW(CredUICmdLinePromptForCredentials)
More information about the wine-cvs
mailing list