]> granicus.if.org Git - curl/commitdiff
vauth: Moved the OAuth 2.0 authentication code to the new vauth directory
authorSteve Holme <steve_holme@hotmail.com>
Sat, 12 Sep 2015 14:24:44 +0000 (15:24 +0100)
committerSteve Holme <steve_holme@hotmail.com>
Fri, 25 Mar 2016 15:11:10 +0000 (15:11 +0000)
lib/Makefile.inc
lib/Makefile.vc6
lib/curl_sasl.c
lib/vauth/oauth2.c [new file with mode: 0644]
lib/vauth/vauth.h
packages/Symbian/group/libcurl.mmp

index 92cc40f015c55b7d8e08cc2d93f6a2417a72e191..4ec8bcfb7128bac768c66a0cdfb20af6cf684ee6 100644 (file)
@@ -22,7 +22,7 @@
 
 LIB_VAUTH_CFILES = vauth/vauth.c vauth/cleartext.c vauth/cram.c         \
   vauth/digest.c vauth/digest_sspi.c vauth/krb5_gssapi.c                \
-  vauth/krb5_sspi.c vauth/ntlm.c vauth/ntlm_sspi.c
+  vauth/krb5_sspi.c vauth/ntlm.c vauth/ntlm_sspi.c vauth/oauth2.c
 
 LIB_VAUTH_HFILES = vauth/vauth.h vauth/digest.h vauth/ntlm.h
 
index 57e03929f3dba1319bb1ba843a2c50bbac7d7182..addaf794f9c4cab2b9466851ad9db944a8396b2e 100644 (file)
@@ -626,6 +626,7 @@ X_OBJS= \
        $(DIROBJ)\krb5_sspi.obj \\r
        $(DIROBJ)\ntlm.obj \\r
        $(DIROBJ)\ntlm_sspi.obj \\r
+       $(DIROBJ)\oauth.obj \\r
        $(DIROBJ)\vtls.obj \\r
        $(DIROBJ)\openssl.obj \\r
        $(DIROBJ)\strdup.obj \\r
index aabf3ecf5427b51a8543c781a5a338e8c8f55a59..e92eda5b5d5f0900d40f0865983123efd7c05a03 100644 (file)
@@ -70,55 +70,6 @@ const struct {
   { ZERO_NULL,      0,  0 }
 };
 
-/*
- * sasl_create_oauth_bearer_message()
- *
- * This is used to generate an already encoded OAuth 2.0 message ready for
- * sending to the recipient.
- *
- * Parameters:
- *
- * data    [in]     - The session handle.
- * user    [in]     - The user name.
- * host    [in]     - The host name (for OAUTHBEARER).
- * port    [in]     - The port (for OAUTHBEARER when not Port 80).
- * bearer  [in]     - The bearer token.
- * outptr  [in/out] - The address where a pointer to newly allocated memory
- *                    holding the result will be stored upon completion.
- * outlen  [out]    - The length of the output message.
- *
- * Returns CURLE_OK on success.
- */
-static CURLcode sasl_create_oauth_bearer_message(struct SessionHandle *data,
-                                                 const char *user,
-                                                 const char *host,
-                                                 const long port,
-                                                 const char *bearer,
-                                                 char **outptr, size_t *outlen)
-{
-  CURLcode result = CURLE_OK;
-  char *oauth = NULL;
-
-  /* Generate the message */
-  if(host == NULL && (port == 0 || port == 80))
-    oauth = aprintf("user=%s\1auth=Bearer %s\1\1", user, bearer);
-  else if(port == 0 || port == 80)
-    oauth = aprintf("user=%s\1host=%s\1auth=Bearer %s\1\1", user, host,
-                    bearer);
-  else
-    oauth = aprintf("user=%s\1host=%s\1port=%ld\1auth=Bearer %s\1\1", user,
-                    host, port, bearer);
-  if(!oauth)
-    return CURLE_OUT_OF_MEMORY;
-
-  /* Base64 encode the reply */
-  result = Curl_base64_encode(data, oauth, strlen(oauth), outptr, outlen);
-
-  free(oauth);
-
-  return result;
-}
-
 /*
  * Curl_sasl_cleanup()
  *
diff --git a/lib/vauth/oauth2.c b/lib/vauth/oauth2.c
new file mode 100644 (file)
index 0000000..eb4df3e
--- /dev/null
@@ -0,0 +1,86 @@
+/***************************************************************************
+ *                                  _   _ ____  _
+ *  Project                     ___| | | |  _ \| |
+ *                             / __| | | | |_) | |
+ *                            | (__| |_| |  _ <| |___
+ *                             \___|\___/|_| \_\_____|
+ *
+ * Copyright (C) 1998 - 2015, Daniel Stenberg, <daniel@haxx.se>, et al.
+ *
+ * This software is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at http://curl.haxx.se/docs/copyright.html.
+ *
+ * You may opt to use, copy, modify, merge, publish, distribute and/or sell
+ * copies of the Software, and permit persons to whom the Software is
+ * furnished to do so, under the terms of the COPYING file.
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+ * KIND, either express or implied.
+ *
+ * RFC6749 OAuth 2.0 Authorization Framework
+ *
+ ***************************************************************************/
+
+#include "curl_setup.h"
+
+#include <curl/curl.h>
+#include "urldata.h"
+
+#include "vauth/vauth.h"
+#include "curl_base64.h"
+#include "warnless.h"
+#include "curl_printf.h"
+
+/* The last #include files should be: */
+#include "curl_memory.h"
+#include "memdebug.h"
+
+/*
+ * sasl_create_oauth_bearer_message()
+ *
+ * This is used to generate an already encoded OAuth 2.0 message ready for
+ * sending to the recipient.
+ *
+ * Parameters:
+ *
+ * data[in]         - The session handle.
+ * user[in]         - The user name.
+ * host[in]         - The host name(for OAUTHBEARER).
+ * port[in]         - The port(for OAUTHBEARER when not Port 80).
+ * bearer[in]       - The bearer token.
+ * outptr[in / out] - The address where a pointer to newly allocated memory
+ *                    holding the result will be stored upon completion.
+ * outlen[out]      - The length of the output message.
+ *
+ * Returns CURLE_OK on success.
+ */
+CURLcode sasl_create_oauth_bearer_message(struct SessionHandle *data,
+                                          const char *user,
+                                          const char *host,
+                                          const long port,
+                                          const char *bearer,
+                                          char **outptr, size_t *outlen)
+{
+  CURLcode result = CURLE_OK;
+  char *oauth = NULL;
+
+  /* Generate the message */
+  if(host == NULL && (port == 0 || port == 80))
+    oauth = aprintf("user=%s\1auth=Bearer %s\1\1", user, bearer);
+  else if(port == 0 || port == 80)
+    oauth = aprintf("user=%s\1host=%s\1auth=Bearer %s\1\1", user, host,
+                    bearer);
+  else
+    oauth = aprintf("user=%s\1host=%s\1port=%ld\1auth=Bearer %s\1\1", user,
+                    host, port, bearer);
+  if(!oauth)
+    return CURLE_OUT_OF_MEMORY;
+
+  /* Base64 encode the reply */
+  result = Curl_base64_encode(data, oauth, strlen(oauth), outptr, outlen);
+
+  free(oauth);
+
+  return result;
+}
index c26b9e31dca6b4da59f091280327c4d4ebdb20a7..e34a930cffb94556c2cfa09668cb7ae56bd3f595 100644 (file)
@@ -126,6 +126,13 @@ CURLcode Curl_sasl_create_ntlm_type3_message(struct SessionHandle *data,
 void Curl_sasl_ntlm_cleanup(struct ntlmdata *ntlm);
 #endif /* USE_NTLM */
 
+/* This is used to generate a base64 encoded OAuth 2.0 message */
+CURLcode sasl_create_oauth_bearer_message(struct SessionHandle *data,
+                                          const char *user,
+                                          const char *host,
+                                          const long port,
+                                          const char *bearer,
+                                          char **outptr, size_t *outlen);
 #if defined(USE_KERBEROS5)
 /* This is used to generate a base64 encoded GSSAPI (Kerberos V5) user token
    message */
index ab628bc5337262293180ab494c281abe0aaffa72..234e188efef224023d7dff294f0f2447f0988fdc 100644 (file)
@@ -42,7 +42,7 @@ SOURCE \
   curl_sasl_sspi.c smb.c curl_endian.c curl_des.c                      \
   vauth/vauth.c vauth/cleartext.c vauth/cram.c vauth/digest.c          \
   vauth/digest_sspi.c vauth/krb5_gssapi.c vauth/krb5_sspi.c            \
-  vauth/ntlm.c vauth/ntlm_sspi.c
+  vauth/ntlm.c vauth/ntlm_sspi.c vauth/oauth.c
 
 USERINCLUDE   ../../../lib ../../../include/curl
 #ifdef ENABLE_SSL