X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=lib%2Fgc.h;h=35d3f8a41c7d6593cf8e706da52aff86ac6bbebc;hb=6c9f1e88ada406b65f6b10098b8c9e60c973e614;hp=a6a50daeb7d72a774cb9d039d64072f40c6f9442;hpb=eecf6279cfd2b8aa43b7eb1752034b497fd67877;p=gnulib.git diff --git a/lib/gc.h b/lib/gc.h index a6a50daeb..35d3f8a41 100644 --- a/lib/gc.h +++ b/lib/gc.h @@ -1,5 +1,5 @@ /* gc.h --- Header file for implementation agnostic crypto wrapper API. - * Copyright (C) 2002, 2003, 2004, 2005 Simon Josefsson + * Copyright (C) 2002, 2003, 2004, 2005, 2007, 2008 Simon Josefsson * * This file is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published @@ -45,7 +45,11 @@ enum Gc_hash GC_MD5, GC_SHA1, GC_MD2, - GC_RMD160 + GC_RMD160, + GC_SHA256, + GC_SHA384, + GC_SHA512, + GC_SHA224 }; typedef enum Gc_hash Gc_hash; @@ -57,9 +61,15 @@ typedef enum Gc_hash_mode Gc_hash_mode; typedef void *gc_hash_handle; +#define GC_MD2_DIGEST_SIZE 16 #define GC_MD4_DIGEST_SIZE 16 #define GC_MD5_DIGEST_SIZE 16 +#define GC_RMD160_DIGEST_SIZE 20 #define GC_SHA1_DIGEST_SIZE 20 +#define GC_SHA256_DIGEST_SIZE 32 +#define GC_SHA384_DIGEST_SIZE 48 +#define GC_SHA512_DIGEST_SIZE 64 +#define GC_SHA224_DIGEST_SIZE 24 /* Cipher types. */ enum Gc_cipher @@ -71,12 +81,15 @@ enum Gc_cipher GC_DES, GC_ARCFOUR128, GC_ARCFOUR40, - GC_ARCTWO40 + GC_ARCTWO40, + GC_CAMELLIA128, + GC_CAMELLIA256 }; typedef enum Gc_cipher Gc_cipher; enum Gc_cipher_mode { + GC_ECB, GC_CBC, GC_STREAM }; @@ -140,6 +153,8 @@ extern Gc_rc gc_hash_buffer (Gc_hash hash, const void *in, size_t inlen, char *out); /* One-call interface. */ +extern Gc_rc gc_md2 (const void *in, size_t inlen, void *resbuf); +extern Gc_rc gc_md4 (const void *in, size_t inlen, void *resbuf); extern Gc_rc gc_md5 (const void *in, size_t inlen, void *resbuf); extern Gc_rc gc_sha1 (const void *in, size_t inlen, void *resbuf); extern Gc_rc gc_hmac_md5 (const void *key, size_t keylen,