File base64.h

RFC 1521 base64 encoding/decoding.

Defines

MBEDTLS_ERR_BASE64_BUFFER_TOO_SMALL

Output buffer too small.

MBEDTLS_ERR_BASE64_INVALID_CHARACTER

Invalid character in input.

Functions

int mbedtls_base64_encode(unsigned char *dst, size_t dlen, size_t *olen, const unsigned char *src, size_t slen)

Encode a buffer into base64 format.

Note

Call this function with dlen = 0 to obtain the required buffer size in *olen

Parameters
  • dst – destination buffer

  • dlen – size of the destination buffer

  • olen – number of bytes written

  • src – source buffer

  • slen – amount of data to be encoded

Returns

0 if successful, or MBEDTLS_ERR_BASE64_BUFFER_TOO_SMALL. *olen is always updated to reflect the amount of data that has (or would have) been written. If that length cannot be represented, then no data is written to the buffer and *olen is set to the maximum length representable as a size_t.

int mbedtls_base64_decode(unsigned char *dst, size_t dlen, size_t *olen, const unsigned char *src, size_t slen)

Decode a base64-formatted buffer.

Note

Call this function with *dst = NULL or dlen = 0 to obtain the required buffer size in *olen

Parameters
  • dst – destination buffer (can be NULL for checking size)

  • dlen – size of the destination buffer

  • olen – number of bytes written

  • src – source buffer

  • slen – amount of data to be decoded

Returns

0 if successful, MBEDTLS_ERR_BASE64_BUFFER_TOO_SMALL, or MBEDTLS_ERR_BASE64_INVALID_CHARACTER if the input data is not correct. *olen is always updated to reflect the amount of data that has (or would have) been written.

int mbedtls_base64_self_test(int verbose)

Checkup routine.

Returns

0 if successful, or 1 if the test failed