wget2: Base64 functions

| wget2 2.0.0

- Main Page
- Modules
- Data Structures
- Files

Macros | Functions
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] | src | String 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] | dst | Output buffer
  [in] | src | Base64 string to be decoded
  [in] | n | Length 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] | src | Base64 string to be decoded
  [in] | n | Length of `src`
  [out] | outlen | Length 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] | dst | Base64 output string
  [in] | src | Input buffer
  [in] | n | Number 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] | dst | Base64 output string (URL and filename safe)
  [in] | src | Input buffer
  [in] | n | Number 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] | src | Input buffer
  [in] | n | Number 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] | fmt | Printf-like format string
  [in] | args | Argument 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] | fmt | Printf-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()

size_t wget_base64_get_decoded_length | ( | size_t | len | ) |

Parameters

  [in] | len | Length 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()

size_t wget_base64_get_encoded_length | ( | size_t | len | ) |

Parameters

  [in] | len | Number 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.