diff options
author | Mikhail Gusarov <dottedmag@dottedmag.net> | 2009-10-21 21:07:43 -0700 |
---|---|---|
committer | Carl Worth <cworth@cworth.org> | 2009-10-21 21:33:02 -0700 |
commit | 96c0d1c1cb020654fd582509b25d979f2752500f (patch) | |
tree | 8cebae6bd20f597cd48e1962579dd6b3d355e544 /libsha1.h | |
parent | 16f2e43652e028566d8e552b9c4dd261f7f0e8dc (diff) |
Add sha1.c and libsha1.h for doing SHA-1-based message-ID generation.
This code comes courtesy of Brian Gladman and Mikhail Gusarov.
Both files are available under the GPL and were downloaded as
version 0.2 of libsha1 from git://github.com/dottedmag/libsha1.git
with the following commit:
commit d0f0e7e0dc5ce2d58972cb5a492183c0d4e58433
Author: Mikhail Gusarov <dottedmag@dottedmag.net>
Date: Mon Oct 20 22:38:47 2008 +0700
Version bump.
Signed-off-by: Mikhail Gusarov <dottedmag@dottedmag.net>
Diffstat (limited to 'libsha1.h')
-rw-r--r-- | libsha1.h | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/libsha1.h b/libsha1.h new file mode 100644 index 00000000..b4dca93b --- /dev/null +++ b/libsha1.h @@ -0,0 +1,67 @@ +/* + --------------------------------------------------------------------------- + Copyright (c) 2002, Dr Brian Gladman, Worcester, UK. All rights reserved. + + LICENSE TERMS + + The free distribution and use of this software in both source and binary + form is allowed (with or without changes) provided that: + + 1. distributions of this source code include the above copyright + notice, this list of conditions and the following disclaimer; + + 2. distributions in binary form include the above copyright + notice, this list of conditions and the following disclaimer + in the documentation and/or other associated materials; + + 3. the copyright holder's name is not used to endorse products + built using this software without specific written permission. + + ALTERNATIVELY, provided that this notice is retained in full, this product + may be distributed under the terms of the GNU General Public License (GPL), + in which case the provisions of the GPL apply INSTEAD OF those given above. + + DISCLAIMER + + This software is provided 'as is' with no explicit or implied warranties + in respect of its properties, including, but not limited to, correctness + and/or fitness for purpose. + --------------------------------------------------------------------------- + Issue Date: 01/08/2005 +*/ + +#ifndef _SHA1_H +#define _SHA1_H + +#if defined(__cplusplus) +extern "C" +{ +#endif +#if 0 +} /* Appleasing Emacs */ +#endif + +#include <stdint.h> + +/* Size of SHA1 digest */ + +#define SHA1_DIGEST_SIZE 20 + +/* type to hold the SHA1 context */ + +typedef struct +{ uint32_t count[2]; + uint32_t hash[5]; + uint32_t wbuf[16]; +} sha1_ctx; + +void sha1_begin(sha1_ctx ctx[1]); +void sha1_hash(const unsigned char data[], unsigned long len, sha1_ctx ctx[1]); +void sha1_end(unsigned char hval[], sha1_ctx ctx[1]); +void sha1(unsigned char hval[], const unsigned char data[], unsigned long len); + +#if defined(__cplusplus) +} +#endif + +#endif |