wget2 2.1.0
Loading...
Searching...
No Matches
Base64 functions

Macros

#define WGET_BASE64_URLENCODE   1
 

Functions

bool wget_base64_is_string (const char *src)
 
size_t wget_base64_decode (char *dst, const char *src, size_t n)
 
char * wget_base64_decode_alloc (const char *src, size_t n, size_t *outlen)
 
size_t wget_base64_encode (char *dst, const char *src, size_t n)
 
size_t wget_base64_urlencode (char *dst, const char *src, size_t n)
 
char * wget_base64_encode_alloc (const char *src, size_t n)
 
char * wget_base64_encode_vprintf_alloc (const char *fmt, va_list args)
 
char * wget_base64_encode_printf_alloc (const char *fmt,...)
 
size_t wget_base64_get_decoded_length (size_t len)
 
size_t wget_base64_get_encoded_length (size_t len)
 

Detailed Description

This is a collection base64 encoding/decoding functions used in Wget2.

Function Documentation

◆ wget_base64_is_string()

bool wget_base64_is_string ( const char *  src)
Parameters
[in]srcString to be checked
Returns
1 if src is a base64 string, 0 otherwise

Checks whether src is a base64 string. Returns 0 if src is NULL.

◆ wget_base64_decode()

size_t wget_base64_decode ( char *  dst,
const char *  src,
size_t  n 
)
Parameters
[out]dstOutput buffer
[in]srcBase64 string to be decoded
[in]nLength of src
Returns
Number of bytes written into dst

Decodes n bytes of the base64 string src. The decoded bytes are written into dst and are 0-terminated.

The size of dst has to be at minimum ((n + 3) / 4) * 3 + 1 bytes.

◆ wget_base64_decode_alloc()

char * wget_base64_decode_alloc ( const char *  src,
size_t  n,
size_t *  outlen 
)
Parameters
[in]srcBase64 string to be decoded
[in]nLength of src
[out]outlenLength of returned string, may be NULL.
Returns
Decoded bytes, zero terminated. Returns NULL if memory allocation failed.

Decodes n bytes of the base64 string src. The decoded bytes are returned in an allocated buffer.

You should free() the returned string when not needed any more.

◆ wget_base64_encode()

size_t wget_base64_encode ( char *  dst,
const char *  src,
size_t  n 
)
Parameters
[out]dstBase64 output string
[in]srcInput buffer
[in]nNumber of bytes to be encoded
Returns
Length of output string dst

Encodes n bytes from src into a base64 string. The encoded string is written into dst (0-terminated).

The length of dst has to be at minimum ((n + 2) / 3) * 4 + 1 bytes.

◆ wget_base64_urlencode()

size_t wget_base64_urlencode ( char *  dst,
const char *  src,
size_t  n 
)
Parameters
[out]dstBase64 output string (URL and filename safe)
[in]srcInput buffer
[in]nNumber of bytes to be encoded
Returns
Length of output string dst

Encodes n bytes from src into a base64 URL and filename safe string (see RFC 4648, 5.). The encoded string is written into dst (0-terminated).

The length of dst has to be at minimum ((n + 2) / 3) * 4 + 1 bytes.

◆ wget_base64_encode_alloc()

char * wget_base64_encode_alloc ( const char *  src,
size_t  n 
)
Parameters
[in]srcInput buffer
[in]nNumber of bytes to be encoded
Returns
Base64 encoded string or NULL if memory allocation failed

Encodes n bytes from input buffer src. The encoded string is returned in an allocated buffer.

You should free() the returned string when not needed any more.

◆ wget_base64_encode_vprintf_alloc()

char * wget_base64_encode_vprintf_alloc ( const char *  fmt,
va_list  args 
)
Parameters
[in]fmtPrintf-like format string
[in]argsArgument list
Returns
Base64 encoded string

Encodes the string constructed by fmt and args. The encoded string is returned in an allocated buffer.

You should free() the returned string when not needed any more.

◆ wget_base64_encode_printf_alloc()

char * wget_base64_encode_printf_alloc ( const char *  fmt,
  ... 
)
Parameters
[in]fmtPrintf-like format string
[in]...Argument list
Returns
Base64 encoded string

Encodes the string constructed by fmt and the arguments. The encoded string is returned in an allocated buffer.

You should free() the returned string when not needed any more.

◆ wget_base64_get_decoded_length()

static inline size_t wget_base64_get_decoded_length ( size_t  len)
Parameters
[in]lenLength of base64 sequence
Returns
Number of decoded bytes plus one (for 0-byte termination)

Calculate the number of bytes needed for decoding a base64 sequence with length len.

◆ wget_base64_get_encoded_length()

static inline size_t wget_base64_get_encoded_length ( size_t  len)
Parameters
[in]lenNumber of (un-encoded) bytes
Returns
Length of base64 encoding plus one (for 0-byte termination)

Calculate the number of bytes needed for base64 encoding a byte sequence with length len, including the padding and 0-termination bytes.