Tests for module 'ftell'.
[gnulib.git] / lib / gc.h
index a6a50da..d06b07e 100644 (file)
--- 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  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,10 @@ enum Gc_hash
   GC_MD5,
   GC_SHA1,
   GC_MD2,
-  GC_RMD160
+  GC_RMD160,
+  GC_SHA256,
+  GC_SHA384,
+  GC_SHA512
 };
 typedef enum Gc_hash Gc_hash;
 
@@ -57,9 +60,14 @@ 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
 
 /* Cipher types. */
 enum Gc_cipher
@@ -77,6 +85,7 @@ typedef enum Gc_cipher Gc_cipher;
 
 enum Gc_cipher_mode
 {
+  GC_ECB,
   GC_CBC,
   GC_STREAM
 };
@@ -140,6 +149,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,