
1: /* -*- buffer-read-only: t -*- vi: set ro: */ 2: /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ 3: /* base64.h -- Encode binary data using printable characters. 4: Copyright (C) 2004, 2005, 2006 Free Software Foundation, Inc. 5: Written by Simon Josefsson. 6: 7: This program is free software; you can redistribute it and/or modify 8: it under the terms of the GNU General Public License as published by 9: the Free Software Foundation; either version 2, or (at your option) 10: any later version. 11: 12: This program is distributed in the hope that it will be useful, 13: but WITHOUT ANY WARRANTY; without even the implied warranty of 14: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15: GNU General Public License for more details. 16: 17: You should have received a copy of the GNU General Public License 18: along with this program; if not, write to the Free Software Foundation, 19: Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ 20: 21: #ifndef BASE64_H 22: # define BASE64_H 23: 24: /* Get size_t. */ 25: # include <stddef.h> 26: 27: /* Get bool. */ 28: # include <stdbool.h> 29: 30: /* This uses that the expression (n+(k-1))/k means the smallest 31: integer >= n/k, i.e., the ceiling of n/k. */ 32: # define BASE64_LENGTH(inlen) ((((inlen) + 2) / 3) * 4) 33: 34: struct base64_decode_context 35: { 36: unsigned int i; 37: char buf[4]; 38: }; 39: 40: extern bool isbase64 (char ch); 41: 42: extern void base64_encode (const char *restrict in, size_t inlen, 43: char *restrict out, size_t outlen); 44: 45: extern size_t base64_encode_alloc (const char *in, size_t inlen, char **out); 46: 47: extern void base64_decode_ctx_init (struct base64_decode_context *ctx); 48: extern bool base64_decode (struct base64_decode_context *ctx, 49: const char *restrict in, size_t inlen, 50: char *restrict out, size_t *outlen); 51: 52: extern bool base64_decode_alloc (struct base64_decode_context *ctx, 53: const char *in, size_t inlen, 54: char **out, size_t *outlen); 55: 56: #endif /* BASE64_H */