gsasl  1.8.0
crypto.c
Go to the documentation of this file.
00001 /* crypto.c --- Simple crypto wrappers for applications.
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 "gc.h"
00026 
00036 int
00037 gsasl_nonce (char *data, size_t datalen)
00038 {
00039   return gc_nonce (data, datalen);
00040 }
00041 
00052 int
00053 gsasl_random (char *data, size_t datalen)
00054 {
00055   return gc_random (data, datalen);
00056 }
00057 
00069 int
00070 gsasl_md5 (const char *in, size_t inlen, char *out[16])
00071 {
00072   *out = malloc (16);
00073   if (!*out)
00074     return GSASL_MALLOC_ERROR;
00075   return gc_md5 (in, inlen, *out);
00076 }
00077 
00091 int
00092 gsasl_hmac_md5 (const char *key, size_t keylen,
00093                 const char *in, size_t inlen, char *outhash[16])
00094 {
00095   *outhash = malloc (16);
00096   if (!*outhash)
00097     return GSASL_MALLOC_ERROR;
00098   return gc_hmac_md5 (key, keylen, in, inlen, *outhash);
00099 }
00100 
00114 int
00115 gsasl_sha1 (const char *in, size_t inlen, char *out[20])
00116 {
00117   *out = malloc (20);
00118   if (!*out)
00119     return GSASL_MALLOC_ERROR;
00120   return gc_sha1 (in, inlen, *out);
00121 }
00122 
00138 int
00139 gsasl_hmac_sha1 (const char *key, size_t keylen,
00140                  const char *in, size_t inlen, char *outhash[20])
00141 {
00142   *outhash = malloc (20);
00143   if (!*outhash)
00144     return GSASL_MALLOC_ERROR;
00145   return gc_hmac_sha1 (key, keylen, in, inlen, *outhash);
00146 }