Base64 Library
Base64 is an encoding for representing arbitrary data as a printable ASCII string. 4 Bytes in base64 encoding represent 3 Bytes of the data.
File information
The same functions exist with name ..._base64url for base 64 encoding with URL and filename safe alphabet, see RFC 4648 section 5.
Public functions
encode_base64
Encodes arbitrary data into a null-terminated base64 string. This increases the needed space by 4/3 plus one byte for the null-termination.
Parameters
const byte * in |
The data that shall be encoded.
|
char * out |
The function writes the null-terminated base64 string to this buffer. The buffer has to be large enough to contain 4/3 * len + 1 bytes.
|
int len |
The number of bytes that shall be encoded.
|
Return value
dword |
The number of bytes that have been written to the out buffer.
|
decode_base64
Decodes a base64 string into a null-terminated plain string.
Parameters
const char * in |
The base64 string to be decoded.
|
byte * out |
The function writes the decoded data to this buffer and places an additional null byte at the end.
|
int n |
The number of bytes in the in buffer to be decoded.
|
Return value
dword |
The number of bytes that have been written to the out buffer.
|
decode_base64_bin
Decodes a null-terminated base64 string.
Parameters
const char * in |
The null-terminated base64 string to be decoded.
|
byte * out |
The function writes the decoded data to this buffer.
|
unsigned size_of_out |
The size of the out buffer.
|
Return value
dword |
The number of bytes that have been written to the out buffer.
|
Code Example
encode_base64
const char * in = "This is an example text";
char out[64];
dword out_len = encode_base64(in, out, strlen(in));
decode_base64
const char * in = "VGhpcyBpcyBhbiBleGFtcGxlIHRleHQ=";
char out[64];
dword out_len = decode_base64(in, out, strlen(in));
decode_base64_bin
const char * in = "VGhpcyBpcyBhbiBleGFtcGxlIHRleHQ=";
char out[64];
dword out_len = decode_base64_bin(in, out, sizeof(out));