Mercurial > gnulib
changeset 6349:c195d0c75e25
2005-10-08 Simon Josefsson <jas@extundo.com>
* gc.h: Add gc_hash and gc_hash_buffer.
* gc-gnulib.c (gc_hash_buffer): Add. Reorder #include's.
* gc-libgcrypt.c (gc_hash_buffer): Add.
author | Simon Josefsson <simon@josefsson.org> |
---|---|
date | Sat, 08 Oct 2005 09:26:59 +0000 |
parents | 55961a93440c |
children | 2ad6a124d96e |
files | lib/gc-gnulib.c lib/gc-libgcrypt.c lib/gc.h |
diffstat | 3 files changed, 58 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- a/lib/gc-gnulib.c Sat Oct 08 08:33:07 2005 +0000 +++ b/lib/gc-gnulib.c Sat Oct 08 09:26:59 2005 +0000 @@ -24,11 +24,12 @@ # include <config.h> #endif -#include <stdlib.h> - /* Get prototype. */ #include <gc.h> +#include <stdlib.h> +#include <string.h> + /* For randomize. */ #include <unistd.h> #include <sys/types.h> @@ -36,7 +37,8 @@ #include <fcntl.h> #include <errno.h> -#include <string.h> +#include "md5.h" +#include "hmac.h" int gc_init (void) @@ -133,7 +135,23 @@ return; } -#include "md5.h" +/* Hashes. */ + +int +gc_hash_buffer (int hash, const void *in, size_t inlen, char *resbuf) +{ + switch (hash) + { + case GC_MD5: + md5_buffer (in, inlen, resbuf); + break; + + default: + return GC_INVALID_HASH; + } + + return GC_OK; +} int gc_md5 (const void *in, size_t inlen, void *resbuf) @@ -142,8 +160,6 @@ return 0; } -#include "hmac.h" - int gc_hmac_md5 (const void *key, size_t keylen, const void *in, size_t inlen, char *resbuf)
--- a/lib/gc-libgcrypt.c Sat Oct 08 08:33:07 2005 +0000 +++ b/lib/gc-libgcrypt.c Sat Oct 08 09:26:59 2005 +0000 @@ -94,6 +94,28 @@ func_realloc, func_free); } +/* Hashes. */ + +int +gc_hash_buffer (int hash, const void *in, size_t inlen, char *resbuf) +{ + int gcryalg; + + switch (hash) + { + case GC_MD5: + gcryalg = GCRY_MD_MD5; + break; + + default: + return GC_INVALID_HASH; + } + + gcry_md_hash_buffer (gcryalg, resbuf, in, inlen); + + return GC_OK; +} + /* One-call interface. */ int
--- a/lib/gc.h Sat Oct 08 08:33:07 2005 +0000 +++ b/lib/gc.h Sat Oct 08 09:26:59 2005 +0000 @@ -24,8 +24,6 @@ /* Get size_t. */ # include <stddef.h> -#define GC_MD5_DIGEST_SIZE 16 - enum Gc_rc { GC_OK = 0, @@ -40,6 +38,16 @@ }; typedef enum Gc_rc Gc_rc; +/* Hash types. */ +enum Gc_hash + { + GC_MD5 + }; +typedef enum Gc_hash Gc_hash; + +#define GC_MD5_DIGEST_SIZE 16 + +/* Call before respectively after any other functions. */ extern int gc_init (void); extern void gc_done (void); @@ -54,6 +62,10 @@ gc_realloc_t func_realloc, gc_free_t func_free); +/* Hashes. */ +extern int +gc_hash_buffer (int hash, const void *in, size_t inlen, char *out); + /* One-call interface. */ extern int gc_md5 (const void *in, size_t inlen, void *resbuf); extern int gc_hmac_md5 (const void *key, size_t keylen,