]> git.ipfire.org Git - thirdparty/git.git/commitdiff
Merge branch 'mh/credential-password-expiry-wincred'
authorJunio C Hamano <gitster@pobox.com>
Thu, 11 May 2023 19:16:16 +0000 (12:16 -0700)
committerJunio C Hamano <gitster@pobox.com>
Thu, 11 May 2023 19:16:16 +0000 (12:16 -0700)
Teach the recently invented "password expiry time" trait to the
wincred credential helper.

* mh/credential-password-expiry-wincred:
  credential/wincred: store password_expiry_utc

1  2 
contrib/credential/wincred/git-credential-wincred.c

index bb5f7aa7d17ee4df3d44c6f99fc6b7e314d02014,7b4e7fae67507ba21e840b5583dd03fff815f882..96f10613aee29b7c360b25308927564df1551388
@@@ -34,7 -33,66 +34,8 @@@ static void *xmalloc(size_t size
        return ret;
  }
  
- static WCHAR *wusername, *password, *protocol, *host, *path, target[1024];
 -/* MinGW doesn't have wincred.h, so we need to define stuff */
 -
 -typedef struct _CREDENTIAL_ATTRIBUTEW {
 -      LPWSTR Keyword;
 -      DWORD  Flags;
 -      DWORD  ValueSize;
 -      LPBYTE Value;
 -} CREDENTIAL_ATTRIBUTEW, *PCREDENTIAL_ATTRIBUTEW;
 -
 -typedef struct _CREDENTIALW {
 -      DWORD                  Flags;
 -      DWORD                  Type;
 -      LPWSTR                 TargetName;
 -      LPWSTR                 Comment;
 -      FILETIME               LastWritten;
 -      DWORD                  CredentialBlobSize;
 -      LPBYTE                 CredentialBlob;
 -      DWORD                  Persist;
 -      DWORD                  AttributeCount;
 -      PCREDENTIAL_ATTRIBUTEW Attributes;
 -      LPWSTR                 TargetAlias;
 -      LPWSTR                 UserName;
 -} CREDENTIALW, *PCREDENTIALW;
 -
 -#define CRED_TYPE_GENERIC 1
 -#define CRED_PERSIST_LOCAL_MACHINE 2
 -#define CRED_MAX_ATTRIBUTES 64
 -
 -typedef BOOL (WINAPI *CredWriteWT)(PCREDENTIALW, DWORD);
 -typedef BOOL (WINAPI *CredEnumerateWT)(LPCWSTR, DWORD, DWORD *,
 -    PCREDENTIALW **);
 -typedef VOID (WINAPI *CredFreeT)(PVOID);
 -typedef BOOL (WINAPI *CredDeleteWT)(LPCWSTR, DWORD, DWORD);
 -
 -static HMODULE advapi;
 -static CredWriteWT CredWriteW;
 -static CredEnumerateWT CredEnumerateW;
 -static CredFreeT CredFree;
 -static CredDeleteWT CredDeleteW;
 -
 -static void load_cred_funcs(void)
 -{
 -      /* load DLLs */
 -      advapi = LoadLibraryExA("advapi32.dll", NULL,
 -                              LOAD_LIBRARY_SEARCH_SYSTEM32);
 -      if (!advapi)
 -              die("failed to load advapi32.dll");
 -
 -      /* get function pointers */
 -      CredWriteW = (CredWriteWT)GetProcAddress(advapi, "CredWriteW");
 -      CredEnumerateW = (CredEnumerateWT)GetProcAddress(advapi,
 -          "CredEnumerateW");
 -      CredFree = (CredFreeT)GetProcAddress(advapi, "CredFree");
 -      CredDeleteW = (CredDeleteWT)GetProcAddress(advapi, "CredDeleteW");
 -      if (!CredWriteW || !CredEnumerateW || !CredFree || !CredDeleteW)
 -              die("failed to load functions");
 -}
 -
+ static WCHAR *wusername, *password, *protocol, *host, *path, target[1024],
+       *password_expiry_utc;
  
  static void write_item(const char *what, LPCWSTR wbuf, int wlen)
  {