#include "base64.h"
/* ---- Base64 Encoding/Decoding Table --- */
-const char Curl_base64encdec[] =
+const char curlx_base64encdec[] =
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
/* The Base 64 encoding with a URL and filename safe alphabet, RFC 4648
CURLcode curlx_base64_encode(const uint8_t *inputbuff, size_t insize,
char **outptr, size_t *outlen)
{
- return base64_encode(Curl_base64encdec, '=',
+ return base64_encode(curlx_base64encdec, '=',
inputbuff, insize, outptr, outlen);
}
CURLcode curlx_base64_decode(const char *src,
uint8_t **outptr, size_t *outlen);
-extern const char Curl_base64encdec[];
+extern const char curlx_base64encdec[];
/* maximum input length acceptable to base64 encode, here to catch and prevent
mistakes */
while((ch = *src++) != '\0') {
if(ISXDIGIT(ch)) {
val <<= 4;
- val |= Curl_hexval(ch);
+ val |= curlx_hexval(ch);
if(++saw_xdigit > 4)
return 0;
continue;
/* given an ASCII character and max ascii, return TRUE if valid */
#define valid_digit(x, m) \
- (((x) >= '0') && ((x) <= m) && Curl_hexasciitable[(x) - '0'])
+ (((x) >= '0') && ((x) <= m) && curlx_hexasciitable[(x) - '0'])
/* We use 16 for the zero index (and the necessary bitwise AND in the loop)
to be able to have a non-zero value there to make valid_digit() able to
use the info */
-const unsigned char Curl_hexasciitable[] = {
+const unsigned char curlx_hexasciitable[] = {
16, 1, 2, 3, 4, 5, 6, 7, 8, 9, /* 0x30: 0 - 9 */
0, 0, 0, 0, 0, 0, 0,
10, 11, 12, 13, 14, 15, /* 0x41: A - F */
if(max < base) {
/* special-case low max scenario because check needs to be different */
do {
- int n = Curl_hexval(*p++);
+ int n = curlx_hexval(*p++);
num = num * base + n;
if(num > max)
return STRE_OVERFLOW;
}
else {
do {
- int n = Curl_hexval(*p++);
+ int n = curlx_hexval(*p++);
if(num > ((max - n) / base))
return STRE_OVERFLOW;
num = num * base + n;
returns 10. THIS ONLY WORKS ON VALID HEXADECIMAL LETTER INPUT. Verify
before calling this!
*/
-extern const unsigned char Curl_hexasciitable[];
-#define Curl_hexval(x) (unsigned char)(Curl_hexasciitable[(x) - '0'] & 0x0f)
+extern const unsigned char curlx_hexasciitable[];
+#define curlx_hexval(x) (unsigned char)(curlx_hexasciitable[(x) - '0'] & 0x0f)
#endif /* HEADER_CURL_STRPARSE_H */
if(('%' == in) && (alloc > 2) &&
ISXDIGIT(string[1]) && ISXDIGIT(string[2])) {
/* this is two hexadecimal digits following a '%' */
- in = (unsigned char)((Curl_hexval(string[1]) << 4) |
- Curl_hexval(string[2]));
+ in = (unsigned char)((curlx_hexval(string[1]) << 4) |
+ curlx_hexval(string[2]));
string += 3;
alloc -= 3;
}
i = st->buf[st->bufbeg++] & 0xFF;
i = (i << 8) | (st->buf[st->bufbeg++] & 0xFF);
i = (i << 8) | (st->buf[st->bufbeg++] & 0xFF);
- *ptr++ = Curl_base64encdec[(i >> 18) & 0x3F];
- *ptr++ = Curl_base64encdec[(i >> 12) & 0x3F];
- *ptr++ = Curl_base64encdec[(i >> 6) & 0x3F];
- *ptr++ = Curl_base64encdec[i & 0x3F];
+ *ptr++ = curlx_base64encdec[(i >> 18) & 0x3F];
+ *ptr++ = curlx_base64encdec[(i >> 12) & 0x3F];
+ *ptr++ = curlx_base64encdec[(i >> 6) & 0x3F];
+ *ptr++ = curlx_base64encdec[i & 0x3F];
cursize += 4;
st->pos += 4;
size -= 4;
i = (st->buf[st->bufbeg + 1] & 0xFF) << 8;
i |= (st->buf[st->bufbeg] & 0xFF) << 16;
- ptr[0] = Curl_base64encdec[(i >> 18) & 0x3F];
- ptr[1] = Curl_base64encdec[(i >> 12) & 0x3F];
+ ptr[0] = curlx_base64encdec[(i >> 18) & 0x3F];
+ ptr[1] = curlx_base64encdec[(i >> 12) & 0x3F];
if(++st->bufbeg != st->bufend) {
- ptr[2] = Curl_base64encdec[(i >> 6) & 0x3F];
+ ptr[2] = curlx_base64encdec[(i >> 6) & 0x3F];
st->bufbeg++;
}
cursize += 4;