base64 encoder and decoder
More...
base64 encoder and decoder
encoding and decoding functions for base64
- Author
- Martin Landsmann Marti.nosp@m.n.La.nosp@m.ndsma.nosp@m.nn@H.nosp@m.AW-Ha.nosp@m.mbur.nosp@m.g.de
|
static size_t | base64_estimate_decode_size (size_t base64_in_size) |
| Estimates the amount of bytes needed for decoding base64_in_size characters from base64.
|
|
static size_t | base64_estimate_encode_size (size_t data_in_size) |
| Estimates the length of the resulting string after encoding data_in_size bytes into base64.
|
|
int | base64_encode (const void *data_in, size_t data_in_size, void *base64_out, size_t *base64_out_size) |
| Encodes a given datum to base64 and save the result to the given destination.
|
|
int | base64url_encode (const void *data_in, size_t data_in_size, void *base64_out, size_t *base64_out_size) |
| Encodes a given datum to base64 with URL and Filename Safe Alphabet and save the result to the given destination.
|
|
int | base64_decode (const void *base64_in, size_t base64_in_size, void *data_out, size_t *data_out_size) |
| Decodes a given base64 string and save the result to the given destination.
|
|
◆ BASE64_ERROR_BUFFER_OUT
#define BASE64_ERROR_BUFFER_OUT (-1) |
error value for invalid output buffer pointer
Definition at line 30 of file base64.h.
◆ BASE64_ERROR_BUFFER_OUT_SIZE
#define BASE64_ERROR_BUFFER_OUT_SIZE (-2) |
error value for invalid output buffer size
Definition at line 31 of file base64.h.
◆ BASE64_ERROR_DATA_IN
#define BASE64_ERROR_DATA_IN (-3) |
error value for invalid input buffer
Definition at line 32 of file base64.h.
◆ BASE64_ERROR_DATA_IN_SIZE
#define BASE64_ERROR_DATA_IN_SIZE (-4) |
error value for invalid input buffer size
Definition at line 33 of file base64.h.
◆ BASE64_SUCCESS
#define BASE64_SUCCESS (0) |
return value for success
Definition at line 29 of file base64.h.
◆ base64_decode()
int base64_decode |
( |
const void * |
base64_in, |
|
|
size_t |
base64_in_size, |
|
|
void * |
data_out, |
|
|
size_t * |
data_out_size |
|
) |
| |
Decodes a given base64 string and save the result to the given destination.
- Parameters
-
[out] | base64_in | pointer to store the encoded base64 string |
[in] | base64_in_size | pointer to the variable containing the size of base64_out. |
[in] | data_out | pointer to the datum to encode |
[in,out] | data_out_size | the size of data_out . This value is overwritten with the estimated size used for the decoded string on BASE64_ERROR_BUFFER_OUT_SIZE. This value is overwritten with the actual used size for the decoded string on BASE64_SUCCESS. |
- Returns
- BASE64_SUCCESS on success, BASE64_ERROR_BUFFER_OUT_SIZE on insufficient size for decoding to
data_out
, BASE64_ERROR_BUFFER_OUT if data_out
equals NULL but the size for data_out_size
is sufficient, BASE64_ERROR_DATA_IN if base64_in
equals NULL, BASE64_ERROR_DATA_IN_SIZE if base64_in_size
is between 1 and 4.
◆ base64_encode()
int base64_encode |
( |
const void * |
data_in, |
|
|
size_t |
data_in_size, |
|
|
void * |
base64_out, |
|
|
size_t * |
base64_out_size |
|
) |
| |
Encodes a given datum to base64 and save the result to the given destination.
- Parameters
-
[in] | data_in | pointer to the datum to encode |
[in] | data_in_size | the size of data_in |
[out] | base64_out | pointer to store the encoded base64 string |
[in,out] | base64_out_size | pointer to the variable containing the size of base64_out. This value is overwritten with the estimated size used for the encoded base64 string on BASE64_ERROR_BUFFER_OUT_SIZE. This value is overwritten with the actual used size for the encoded base64 string on BASE64_SUCCESS. |
- Returns
- BASE64_SUCCESS on success, BASE64_ERROR_BUFFER_OUT_SIZE on insufficient size for encoding to
base64_out
, BASE64_ERROR_BUFFER_OUT if base64_out
equals NULL but the base64_out_size
is sufficient, BASE64_ERROR_DATA_IN if data_in
equals NULL.
◆ base64_estimate_decode_size()
static size_t base64_estimate_decode_size |
( |
size_t |
base64_in_size | ) |
|
|
inlinestatic |
Estimates the amount of bytes needed for decoding base64_in_size
characters from base64.
- Parameters
-
[in] | base64_in_size | Size of the string to be decoded |
- Returns
- Amount of bytes estimated to be used after decoding
Definition at line 42 of file base64.h.
◆ base64_estimate_encode_size()
static size_t base64_estimate_encode_size |
( |
size_t |
data_in_size | ) |
|
|
inlinestatic |
Estimates the length of the resulting string after encoding data_in_size
bytes into base64.
- Parameters
-
[in] | data_in_size | Amount of bytes to be encoded |
- Returns
- Amount of characters the output string is estimated to have
Definition at line 54 of file base64.h.
◆ base64url_encode()
int base64url_encode |
( |
const void * |
data_in, |
|
|
size_t |
data_in_size, |
|
|
void * |
base64_out, |
|
|
size_t * |
base64_out_size |
|
) |
| |
Encodes a given datum to base64 with URL and Filename Safe Alphabet and save the result to the given destination.
- See also
- RFC 4648, section 5
- Note
- Requires the use of the
base64url
module.
- Parameters
-
[in] | data_in | pointer to the datum to encode |
[in] | data_in_size | the size of data_in |
[out] | base64_out | pointer to store the encoded base64 string |
[in,out] | base64_out_size | pointer to the variable containing the size of base64_out. This value is overwritten with the estimated size used for the encoded base64 string on BASE64_ERROR_BUFFER_OUT_SIZE. This value is overwritten with the actual used size for the encoded base64 string on BASE64_SUCCESS. |
- Returns
- BASE64_SUCCESS on success, BASE64_ERROR_BUFFER_OUT_SIZE on insufficient size for encoding to
base64_out
, BASE64_ERROR_BUFFER_OUT if base64_out
equals NULL but the base64_out_size
is sufficient, BASE64_ERROR_DATA_IN if data_in
equals NULL.