Add convenience function to hash a buffer.
authorWerner Koch <wk@gnupg.org>
Thu, 26 Feb 2015 14:35:49 +0000 (15:35 +0100)
committerWerner Koch <wk@gnupg.org>
Thu, 26 Feb 2015 14:35:49 +0000 (15:35 +0100)
* cipher/sha1.c (sha1_hash_buffer): New.

Signed-off-by: Werner Koch <wk@gnupg.org>
cipher/sha1.c
include/cipher.h

index 309b386..898a9a1 100644 (file)
@@ -52,7 +52,7 @@ static void
 burn_stack (int bytes)
 {
     char buf[128];
-    
+
     wipememory(buf,sizeof buf);
     bytes -= sizeof buf;
     if (bytes > 0)
@@ -323,6 +323,23 @@ sha1_read( SHA1_CONTEXT *hd )
     return hd->buf;
 }
 
+
+/****************
+ * Shortcut functions which puts the hash value of the supplied buffer
+ * into outbuf which must have a size of 20 bytes.
+ */
+void
+sha1_hash_buffer (char *outbuf, const char *buffer, size_t length)
+{
+  SHA1_CONTEXT hd;
+
+  sha1_init (&hd);
+  sha1_write (&hd, (byte*)buffer, length);
+  sha1_final (&hd);
+  memcpy (outbuf, hd.buf, 20);
+}
+
+
 /****************
  * Return some information about the algorithm.  We need algo here to
  * distinguish different flavors of the algorithm.
index dcc3045..dd4af18 100644 (file)
@@ -157,6 +157,7 @@ void md_stop_debug( MD_HANDLE a );
            } while(0)
 
 void rmd160_hash_buffer (char *outbuf, const char *buffer, size_t length);
+void sha1_hash_buffer (char *outbuf, const char *buffer, size_t length);
 
 
 /*-- cipher.c --*/