summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon Josefsson <simon@josefsson.org>2007-02-05 11:15:17 +0000
committerSimon Josefsson <simon@josefsson.org>2007-02-05 11:15:17 +0000
commit3fbe4dfaee1426a3d183d93dc1bdf229f3b3447b (patch)
treef4093ff89fc7d247d44c0024271057b2ddd5f916
parent36e8d800713c53d13bc5f132955f4e038c24845f (diff)
downloadgnutls-3fbe4dfaee1426a3d183d93dc1bdf229f3b3447b.tar.gz
Update.
-rw-r--r--lgl/gc-libgcrypt.c42
-rw-r--r--lgl/gc.h10
2 files changed, 50 insertions, 2 deletions
diff --git a/lgl/gc-libgcrypt.c b/lgl/gc-libgcrypt.c
index 319c5e4643..e40a01082b 100644
--- a/lgl/gc-libgcrypt.c
+++ b/lgl/gc-libgcrypt.c
@@ -269,6 +269,18 @@ gc_hash_open (Gc_hash hash, Gc_hash_mode mode, gc_hash_handle * outhandle)
gcryalg = GCRY_MD_SHA1;
break;
+ case GC_SHA256:
+ gcryalg = GCRY_MD_SHA256;
+ break;
+
+ case GC_SHA384:
+ gcryalg = GCRY_MD_SHA384;
+ break;
+
+ case GC_SHA512:
+ gcryalg = GCRY_MD_SHA512;
+ break;
+
case GC_RMD160:
gcryalg = GCRY_MD_RMD160;
break;
@@ -356,6 +368,18 @@ gc_hash_digest_length (Gc_hash hash)
len = GC_SHA1_DIGEST_SIZE;
break;
+ case GC_SHA256:
+ len = GC_SHA256_DIGEST_SIZE;
+ break;
+
+ case GC_SHA384:
+ len = GC_SHA384_DIGEST_SIZE;
+ break;
+
+ case GC_SHA512:
+ len = GC_SHA512_DIGEST_SIZE;
+ break;
+
default:
return 0;
}
@@ -453,6 +477,24 @@ gc_hash_buffer (Gc_hash hash, const void *in, size_t inlen, char *resbuf)
break;
#endif
+#ifdef GNULIB_GC_SHA256
+ case GC_SHA256:
+ gcryalg = GCRY_MD_SHA256;
+ break;
+#endif
+
+#ifdef GNULIB_GC_SHA384
+ case GC_SHA384:
+ gcryalg = GCRY_MD_SHA384;
+ break;
+#endif
+
+#ifdef GNULIB_GC_SHA512
+ case GC_SHA512:
+ gcryalg = GCRY_MD_SHA512;
+ break;
+#endif
+
#ifdef GNULIB_GC_RMD160
case GC_RMD160:
gcryalg = GCRY_MD_RMD160;
diff --git a/lgl/gc.h b/lgl/gc.h
index f30bc29209..9f4bf21515 100644
--- a/lgl/gc.h
+++ b/lgl/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 Lesser 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;
@@ -62,6 +65,9 @@ typedef void *gc_hash_handle;
#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