project_files/frontlib/base64/base64.h
changeset 7271 5608ac657362
child 7316 f7b49b2c5d84
equal deleted inserted replaced
7269:5b0aeef8ba2a 7271:5608ac657362
       
     1 /* base64.h -- Encode binary data using printable characters.
       
     2    Copyright (C) 2004, 2005, 2006 Free Software Foundation, Inc.
       
     3    Written by Simon Josefsson.
       
     4 
       
     5    This program is free software; you can redistribute it and/or modify
       
     6    it under the terms of the GNU General Public License as published by
       
     7    the Free Software Foundation; either version 2, or (at your option)
       
     8    any later version.
       
     9 
       
    10    This program is distributed in the hope that it will be useful,
       
    11    but WITHOUT ANY WARRANTY; without even the implied warranty of
       
    12    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
       
    13    GNU General Public License for more details.
       
    14 
       
    15    You should have received a copy of the GNU General Public License
       
    16    along with this program; if not, write to the Free Software Foundation,
       
    17    Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
       
    18 
       
    19 #ifndef BASE64_H
       
    20 # define BASE64_H
       
    21 
       
    22 /* Get size_t. */
       
    23 # include <stddef.h>
       
    24 
       
    25 /* Get bool. */
       
    26 # include <stdbool.h>
       
    27 
       
    28 /* This uses that the expression (n+(k-1))/k means the smallest
       
    29    integer >= n/k, i.e., the ceiling of n/k.  */
       
    30 # define BASE64_LENGTH(inlen) ((((inlen) + 2) / 3) * 4)
       
    31 
       
    32 extern bool isbase64 (char ch);
       
    33 
       
    34 extern void base64_encode (const char *restrict in, size_t inlen,
       
    35 			   char *restrict out, size_t outlen);
       
    36 
       
    37 extern size_t base64_encode_alloc (const char *in, size_t inlen, char **out);
       
    38 
       
    39 extern bool base64_decode (const char *restrict in, size_t inlen,
       
    40 			   char *restrict out, size_t *outlen);
       
    41 
       
    42 extern bool base64_decode_alloc (const char *in, size_t inlen,
       
    43 				 char **out, size_t *outlen);
       
    44 
       
    45 #endif /* BASE64_H */