gsasl  1.8.0
base64.c
Go to the documentation of this file.
00001 /* base64.c --- Base64 encoding/decoding functions.
00002  * Copyright (C) 2002-2012 Simon Josefsson
00003  *
00004  * This file is part of GNU SASL Library.
00005  *
00006  * GNU SASL Library is free software; you can redistribute it and/or
00007  * modify it under the terms of the GNU Lesser General Public License
00008  * as published by the Free Software Foundation; either version 2.1 of
00009  * the License, or (at your option) any later version.
00010  *
00011  * GNU SASL Library is distributed in the hope that it will be useful,
00012  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00013  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00014  * Lesser General Public License for more details.
00015  *
00016  * You should have received a copy of the GNU Lesser General Public
00017  * License License along with GNU SASL Library; if not, write to the
00018  * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
00019  * Boston, MA 02110-1301, USA.
00020  *
00021  */
00022 
00023 #include "internal.h"
00024 
00025 #include "base64.h"
00026 
00043 int
00044 gsasl_base64_to (const char *in, size_t inlen, char **out, size_t * outlen)
00045 {
00046   size_t len = base64_encode_alloc (in, inlen, out);
00047 
00048   if (outlen)
00049     *outlen = len;
00050 
00051   if (*out == NULL)
00052     return GSASL_MALLOC_ERROR;
00053 
00054   return GSASL_OK;
00055 }
00056 
00073 int
00074 gsasl_base64_from (const char *in, size_t inlen, char **out, size_t * outlen)
00075 {
00076   int ok = base64_decode_alloc (in, inlen, out, outlen);
00077 
00078   if (!ok)
00079     return GSASL_BASE64_ERROR;
00080 
00081   if (*out == NULL)
00082     return GSASL_MALLOC_ERROR;
00083 
00084   return GSASL_OK;
00085 }