source: lib/base64.c @ b17fa67

Last change on this file since b17fa67 was 5ebff60, checked in by dequis <dx@…>, at 2015-02-20T22:50:54Z

Reindent everything to K&R style with tabs

Used uncrustify, with the configuration file in ./doc/uncrustify.cfg

Commit author set to "Indent <please@…>" so that it's easier to
skip while doing git blame.

  • Property mode set to 100644
File size: 2.4 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 <string.h>
27#include "base64.h"
28
29char *tobase64(const char *text)
30{
31        return base64_encode((const unsigned char *) text, strlen(text));
32}
33
34char *base64_encode(const unsigned char *in, int len)
35{
36        return g_base64_encode(in, len);
37}
38
39/* Just a simple wrapper, but usually not very convenient because of zero
40   termination. */
41char *frombase64(const char *in)
42{
43        unsigned char *out;
44
45        base64_decode(in, &out);
46        return (char *) out;
47}
48
49int base64_decode(const char *in, unsigned char **out)
50{
51        gsize len;
52
53        *out = g_base64_decode(in, &len);
54
55        /* Some silly functions expect it to be zero terminated */
56        *out = g_realloc(*out, len + 1);
57        out[0][len] = 0;
58
59        return len;
60}
Note: See TracBrowser for help on using the repository browser.