view src/lib/base64.h @ 9191:b340ecb24469 HEAD

Fix VPATH build of RQUOTA support. Some rpcgen derive #include "..." paths from the infile argument. This will be off for VPATH builds, as the generated rquota_xdr.c code will look in $(srcdir), but we'll generate the rquota.h file in $(builddir). Play safe and copy rquota.x to $(builddir) first. This fixes the build on openSUSE 11.1.
author Matthias Andree <>
date Tue, 07 Jul 2009 21:01:36 +0200
parents e4eb71ae8e96
line wrap: on
line source

#ifndef BASE64_H
#define BASE64_H

/* Translates binary data into base64. The src must not point to dest buffer. */
void base64_encode(const void *src, size_t src_size, buffer_t *dest);

/* Translates base64 data into binary and appends it to dest buffer. dest may
   point to same buffer as src. Returns 1 if all ok, 0 if end of base64 data
   found, -1 if data is invalid.

   Any CR, LF characters are ignored, as well as whitespace at beginning or
   end of line.

   This function may be called multiple times for parsing the same stream.
   If src_pos is non-NULL, it's updated to first non-translated character in
   src. */
int base64_decode(const void *src, size_t src_size,
		  size_t *src_pos_r, buffer_t *dest);

/* Decode given string to a buffer allocated from data stack. */
buffer_t *t_base64_decode_str(const char *str);

/* max. buffer size required for base64_encode() */
#define MAX_BASE64_ENCODED_SIZE(size) \
	((size) / 3 * 4 + 2+2)
/* max. buffer size required for base64_decode() */
#define MAX_BASE64_DECODED_SIZE(size) \
	((size) / 4 * 3 + 3)