aboutsummaryrefslogtreecommitdiff
path: root/lib/vauth/vauth.h
diff options
context:
space:
mode:
Diffstat (limited to 'lib/vauth/vauth.h')
-rw-r--r--lib/vauth/vauth.h30
1 files changed, 30 insertions, 0 deletions
diff --git a/lib/vauth/vauth.h b/lib/vauth/vauth.h
index 7f2f48826..8a0c67765 100644
--- a/lib/vauth/vauth.h
+++ b/lib/vauth/vauth.h
@@ -38,6 +38,14 @@ struct ntlmdata;
struct kerberos5data;
#endif
+#if defined(USE_WINDOWS_SSPI) && defined(USE_SPNEGO)
+struct negotiatedata;
+#endif
+
+#if defined(USE_WINDOWS_SSPI)
+#define GSS_ERROR(status) (status & 0x80000000)
+#endif
+
/* This is used to build a SPN string */
#if !defined(USE_WINDOWS_SSPI)
char *Curl_auth_build_spn(const char *service, const char *instance);
@@ -157,4 +165,26 @@ CURLcode Curl_auth_create_gssapi_security_message(struct SessionHandle *data,
void Curl_auth_gssapi_cleanup(struct kerberos5data *krb5);
#endif /* USE_KERBEROS5 */
+#if defined(USE_WINDOWS_SSPI) && defined(USE_SPNEGO)
+/* This is used to decode a base64 encoded SPNEGO (Negotiate) challenge
+ message */
+CURLcode Curl_auth_decode_spnego_message(struct SessionHandle *data,
+ const char *user,
+ const char *passwood,
+ const char *service,
+ const char *host,
+ const char *chlg64,
+ struct negotiatedata *nego);
+
+/* This is used to generate a base64 encoded SPNEGO (Negotiate) response
+ message */
+CURLcode Curl_auth_create_spnego_message(struct SessionHandle *data,
+ struct negotiatedata *nego,
+ char **outptr, size_t *outlen);
+
+/* This is used to clean up the SPNEGO specifiec data */
+void Curl_auth_spnego_cleanup(struct negotiatedata* nego);
+
+#endif /* USE_WINDOWS_SSPI && USE_SPNEGO */
+
#endif /* HEADER_CURL_VAUTH_H */