source: lib/base64.h @ 12fe5ea

Last change on this file since 12fe5ea was b38d399, checked in by dequis <dx@…>, at 2014-11-24T05:16:09Z

Use glib functions for base64 decoding/encoding

This fixes several coverity warnings about 'tainted data index sink' and
a fixme about thread safety in the old base64_decode implementation.

Had to adapt the code that used base64_encode_real:

  • oauth.c: different character set order, but it's for the nonce so it doesn't matter
  • libyahoo2.c: used as part of the auth, changes "+/=" into "._-". Fixed by encoding first the usual way through glib, then replacing.
  • Property mode set to 100644
File size: 2.0 KB
Line 
1/***************************************************************************\
2*                                                                           *
3*  BitlBee - An IRC to IM gateway                                           *
4*  Base64 handling functions. encode_real() is mostly based on the y64 en-  *
5*  coder from libyahoo2. Moving it to a new file because it's getting big.  *
6*                                                                           *
7*  Copyright 2006 Wilmer van der Gaast <wilmer@gaast.net>                   *
8*                                                                           *
9*  This program is free software; you can redistribute it and/or modify     *
10*  it under the terms of the GNU General Public License as published by     *
11*  the Free Software Foundation; either version 2 of the License, or        *
12*  (at your option) any later version.                                      *
13*                                                                           *
14*  This program is distributed in the hope that it will be useful,          *
15*  but WITHOUT ANY WARRANTY; without even the implied warranty of           *
16*  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the            *
17*  GNU General Public License for more details.                             *
18*                                                                           *
19*  You should have received a copy of the GNU General Public License along  *
20*  with this program; if not, write to the Free Software Foundation, Inc.,  *
21*  51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.              *
22*                                                                           *
23\***************************************************************************/
24
25#include <glib.h>
26#include <gmodule.h>
27
28G_MODULE_EXPORT char *tobase64( const char *text );
29G_MODULE_EXPORT char *base64_encode( const unsigned char *in, int len );
30G_MODULE_EXPORT char *frombase64( const char *in );
31G_MODULE_EXPORT int base64_decode( const char *in, unsigned char **out );
Note: See TracBrowser for help on using the repository browser.