diff options
Diffstat (limited to 'gl/base64.h')
| -rw-r--r-- | gl/base64.h | 24 |
1 files changed, 20 insertions, 4 deletions
diff --git a/gl/base64.h b/gl/base64.h index 1f9b203e..63b6abcb 100644 --- a/gl/base64.h +++ b/gl/base64.h | |||
| @@ -29,6 +29,12 @@ | |||
| 29 | integer >= n/k, i.e., the ceiling of n/k. */ | 29 | integer >= n/k, i.e., the ceiling of n/k. */ |
| 30 | # define BASE64_LENGTH(inlen) ((((inlen) + 2) / 3) * 4) | 30 | # define BASE64_LENGTH(inlen) ((((inlen) + 2) / 3) * 4) |
| 31 | 31 | ||
| 32 | struct base64_decode_context | ||
| 33 | { | ||
| 34 | unsigned int i; | ||
| 35 | char buf[4]; | ||
| 36 | }; | ||
| 37 | |||
| 32 | extern bool isbase64 (char ch); | 38 | extern bool isbase64 (char ch); |
| 33 | 39 | ||
| 34 | extern void base64_encode (const char *restrict in, size_t inlen, | 40 | extern void base64_encode (const char *restrict in, size_t inlen, |
| @@ -36,10 +42,20 @@ extern void base64_encode (const char *restrict in, size_t inlen, | |||
| 36 | 42 | ||
| 37 | extern size_t base64_encode_alloc (const char *in, size_t inlen, char **out); | 43 | extern size_t base64_encode_alloc (const char *in, size_t inlen, char **out); |
| 38 | 44 | ||
| 39 | extern bool base64_decode (const char *restrict in, size_t inlen, | 45 | extern void base64_decode_ctx_init (struct base64_decode_context *ctx); |
| 40 | char *restrict out, size_t *outlen); | 46 | |
| 47 | extern bool base64_decode_ctx (struct base64_decode_context *ctx, | ||
| 48 | const char *restrict in, size_t inlen, | ||
| 49 | char *restrict out, size_t *outlen); | ||
| 50 | |||
| 51 | extern bool base64_decode_alloc_ctx (struct base64_decode_context *ctx, | ||
| 52 | const char *in, size_t inlen, | ||
| 53 | char **out, size_t *outlen); | ||
| 54 | |||
| 55 | #define base64_decode(in, inlen, out, outlen) \ | ||
| 56 | base64_decode_ctx (NULL, in, inlen, out, outlen) | ||
| 41 | 57 | ||
| 42 | extern bool base64_decode_alloc (const char *in, size_t inlen, | 58 | #define base64_decode_alloc(in, inlen, out, outlen) \ |
| 43 | char **out, size_t *outlen); | 59 | base64_decode_alloc_ctx (NULL, in, inlen, out, outlen) |
| 44 | 60 | ||
| 45 | #endif /* BASE64_H */ | 61 | #endif /* BASE64_H */ |
