diff options
author | Steve Holme <steve_holme@hotmail.com> | 2016-03-24 19:03:58 +0000 |
---|---|---|
committer | Steve Holme <steve_holme@hotmail.com> | 2016-08-21 10:27:09 +0100 |
commit | 43dbd766164153d49ab266355d2f35e6bf010b30 (patch) | |
tree | f462aa45c56f76b548f2e830129f3d2b74cb0ceb | |
parent | 317795d1bf49e6ec048999c55d204093dd1626d4 (diff) |
vauth: Added check for supported SSPI based authentication mechanisms
Completing commit 00417fd66c and 2708d4259b.
-rw-r--r-- | lib/vauth/digest_sspi.c | 11 | ||||
-rw-r--r-- | lib/vauth/krb5_sspi.c | 12 | ||||
-rw-r--r-- | lib/vauth/ntlm_sspi.c | 11 | ||||
-rw-r--r-- | lib/vauth/spnego_sspi.c | 12 |
4 files changed, 34 insertions, 12 deletions
diff --git a/lib/vauth/digest_sspi.c b/lib/vauth/digest_sspi.c index 9254385e5..1cc704d58 100644 --- a/lib/vauth/digest_sspi.c +++ b/lib/vauth/digest_sspi.c @@ -54,9 +54,14 @@ */ bool Curl_auth_is_digest_supported(void) { - /* TODO: Return true for now which maintains compatability with the existing - code */ - return TRUE; + PSecPkgInfo SecurityPackage; + SECURITY_STATUS status; + + /* Query the security package for Digest */ + status = s_pSecFn->QuerySecurityPackageInfo((TCHAR *) TEXT(SP_NAME_DIGEST), + &SecurityPackage); + + return (status == SEC_E_OK ? TRUE : FALSE); } /* diff --git a/lib/vauth/krb5_sspi.c b/lib/vauth/krb5_sspi.c index e04690046..151794e61 100644 --- a/lib/vauth/krb5_sspi.c +++ b/lib/vauth/krb5_sspi.c @@ -50,9 +50,15 @@ */ bool Curl_auth_is_gssapi_supported(void) { - /* TODO: Return true for now which maintains compatability with the existing - code */ - return TRUE; + PSecPkgInfo SecurityPackage; + SECURITY_STATUS status; + + /* Query the security package for Kerberos */ + status = s_pSecFn->QuerySecurityPackageInfo((TCHAR *) + TEXT(SP_NAME_KERBEROS), + &SecurityPackage); + + return (status == SEC_E_OK ? TRUE : FALSE); } /* diff --git a/lib/vauth/ntlm_sspi.c b/lib/vauth/ntlm_sspi.c index 6f446780e..c3305176d 100644 --- a/lib/vauth/ntlm_sspi.c +++ b/lib/vauth/ntlm_sspi.c @@ -48,9 +48,14 @@ */ bool Curl_auth_is_ntlm_supported(void) { - /* TODO: Return true for now which maintains compatability with the existing - code */ - return TRUE; + PSecPkgInfo SecurityPackage; + SECURITY_STATUS status; + + /* Query the security package for NTLM */ + status = s_pSecFn->QuerySecurityPackageInfo((TCHAR *) TEXT(SP_NAME_NTLM), + &SecurityPackage); + + return (status == SEC_E_OK ? TRUE : FALSE); } /* diff --git a/lib/vauth/spnego_sspi.c b/lib/vauth/spnego_sspi.c index f83c44632..672b43fa4 100644 --- a/lib/vauth/spnego_sspi.c +++ b/lib/vauth/spnego_sspi.c @@ -50,9 +50,15 @@ */ bool Curl_auth_is_spnego_supported(void) { - /* TODO: Return true for now which maintains compatability with the existing - code */ - return TRUE; + PSecPkgInfo SecurityPackage; + SECURITY_STATUS status; + + /* Query the security package for Negotiate */ + status = s_pSecFn->QuerySecurityPackageInfo((TCHAR *) + TEXT(SP_NAME_NEGOTIATE), + &SecurityPackage); + + return (status == SEC_E_OK ? TRUE : FALSE); } /* |