123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159 |
- #include "curl_setup.h"
- #include <curl/curl.h>
- #include "urldata.h"
- #include "vauth/vauth.h"
- #include "curl_base64.h"
- #include "curl_md5.h"
- #include "warnless.h"
- #include "strtok.h"
- #include "sendf.h"
- #include "curl_printf.h"
- #include "curl_memory.h"
- #include "memdebug.h"
- CURLcode Curl_auth_create_plain_message(struct Curl_easy *data,
- const char *userp,
- const char *passwdp,
- char **outptr, size_t *outlen)
- {
- CURLcode result;
- char *plainauth;
- size_t ulen;
- size_t plen;
- size_t plainlen;
- *outlen = 0;
- *outptr = NULL;
- ulen = strlen(userp);
- plen = strlen(passwdp);
-
- if((ulen > SIZE_T_MAX/2) || (plen > (SIZE_T_MAX/2 - 2)))
- return CURLE_OUT_OF_MEMORY;
- plainlen = 2 * ulen + plen + 2;
- plainauth = malloc(plainlen);
- if(!plainauth)
- return CURLE_OUT_OF_MEMORY;
-
- memcpy(plainauth, userp, ulen);
- plainauth[ulen] = '\0';
- memcpy(plainauth + ulen + 1, userp, ulen);
- plainauth[2 * ulen + 1] = '\0';
- memcpy(plainauth + 2 * ulen + 2, passwdp, plen);
-
- result = Curl_base64_encode(data, plainauth, plainlen, outptr, outlen);
- free(plainauth);
- return result;
- }
- CURLcode Curl_auth_create_login_message(struct Curl_easy *data,
- const char *valuep, char **outptr,
- size_t *outlen)
- {
- size_t vlen = strlen(valuep);
- if(!vlen) {
-
- *outptr = strdup("=");
- if(*outptr) {
- *outlen = (size_t) 1;
- return CURLE_OK;
- }
- *outlen = 0;
- return CURLE_OUT_OF_MEMORY;
- }
-
- return Curl_base64_encode(data, valuep, vlen, outptr, outlen);
- }
- CURLcode Curl_auth_create_external_message(struct Curl_easy *data,
- const char *user, char **outptr,
- size_t *outlen)
- {
-
- return Curl_auth_create_login_message(data, user, outptr, outlen);
- }
|