bug-gnulib
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

add sha-224 to gc


From: Simon Josefsson
Subject: add sha-224 to gc
Date: Fri, 28 Mar 2008 15:56:39 +0100
User-agent: Gnus/5.110007 (No Gnus v0.7) Emacs/22.1 (gnu/linux)

Pushed.

/Simon

>From 47ce26fc9f5632c8b9b58999fe0484100a51289d Mon Sep 17 00:00:00 2001
From: Simon Josefsson <address@hidden>
Date: Fri, 28 Mar 2008 15:50:04 +0100
Subject: [PATCH] Support SHA-224 in gc.

---
 ChangeLog          |    9 +++++++++
 lib/gc-libgcrypt.c |   14 ++++++++++++++
 lib/gc.h           |    6 ++++--
 3 files changed, 27 insertions(+), 2 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index a391159..1a52a97 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2008-03-28  Simon Josefsson  <address@hidden>
+
+       * lib/gc.h (enum Gc_hash): Add GC_SHA224.
+       (GC_SHA224_DIGEST_SIZE): Add.
+
+       * lib/gc-libgcrypt.c (gc_hash_open): Handle SHA-224.
+       (gc_hash_digest_length): Likewise.
+       (gc_hash_buffer): Likewise.
+
 2008-03-25  Bruno Haible  <address@hidden>
 
        * doc/gnulib-tool.texi (gettextize and autopoint): Explain in more
diff --git a/lib/gc-libgcrypt.c b/lib/gc-libgcrypt.c
index bec7b76..2affba0 100644
--- a/lib/gc-libgcrypt.c
+++ b/lib/gc-libgcrypt.c
@@ -294,6 +294,10 @@ gc_hash_open (Gc_hash hash, Gc_hash_mode mode, 
gc_hash_handle * outhandle)
       gcryalg = GCRY_MD_SHA512;
       break;
 
+    case GC_SHA224:
+      gcryalg = GCRY_MD_SHA224;
+      break;
+
     case GC_RMD160:
       gcryalg = GCRY_MD_RMD160;
       break;
@@ -393,6 +397,10 @@ gc_hash_digest_length (Gc_hash hash)
       len = GC_SHA512_DIGEST_SIZE;
       break;
 
+    case GC_SHA224:
+      len = GC_SHA224_DIGEST_SIZE;
+      break;
+
     default:
       return 0;
     }
@@ -508,6 +516,12 @@ gc_hash_buffer (Gc_hash hash, const void *in, size_t 
inlen, char *resbuf)
       break;
 #endif
 
+#ifdef GNULIB_GC_SHA224
+    case GC_SHA224:
+      gcryalg = GCRY_MD_SHA224;
+      break;
+#endif
+
 #ifdef GNULIB_GC_RMD160
     case GC_RMD160:
       gcryalg = GCRY_MD_RMD160;
diff --git a/lib/gc.h b/lib/gc.h
index 33109fd..35d3f8a 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, 2007  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
@@ -48,7 +48,8 @@ enum Gc_hash
   GC_RMD160,
   GC_SHA256,
   GC_SHA384,
-  GC_SHA512
+  GC_SHA512,
+  GC_SHA224
 };
 typedef enum Gc_hash Gc_hash;
 
@@ -68,6 +69,7 @@ typedef void *gc_hash_handle;
 #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
-- 
1.5.4.4





reply via email to

[Prev in Thread] Current Thread [Next in Thread]