From: Simon Josefsson Date: Fri, 28 Mar 2008 14:50:04 +0000 (+0100) Subject: Support SHA-224 in gc. X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=47ce26fc9f5632c8b9b58999fe0484100a51289d;p=pspp Support SHA-224 in gc. --- diff --git a/ChangeLog b/ChangeLog index a391159f17..1a52a97f66 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2008-03-28 Simon Josefsson + + * 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 * doc/gnulib-tool.texi (gettextize and autopoint): Explain in more diff --git a/lib/gc-libgcrypt.c b/lib/gc-libgcrypt.c index bec7b76f5a..2affba09a3 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 33109fd4d0..35d3f8a41c 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