|
|
1.1.1.2 ! root 1: /* ! 2: --------------------------------------------------------------------------- ! 3: Copyright (c) 2002, Dr Brian Gladman, Worcester, UK. All rights reserved. ! 4: ! 5: LICENSE TERMS ! 6: ! 7: The free distribution and use of this software in both source and binary ! 8: form is allowed (with or without changes) provided that: ! 9: ! 10: 1. distributions of this source code include the above copyright ! 11: notice, this list of conditions and the following disclaimer; ! 12: ! 13: 2. distributions in binary form include the above copyright ! 14: notice, this list of conditions and the following disclaimer ! 15: in the documentation and/or other associated materials; ! 16: ! 17: 3. the copyright holder's name is not used to endorse products ! 18: built using this software without specific written permission. ! 19: ! 20: ALTERNATIVELY, provided that this notice is retained in full, this product ! 21: may be distributed under the terms of the GNU General Public License (GPL), ! 22: in which case the provisions of the GPL apply INSTEAD OF those given above. ! 23: ! 24: DISCLAIMER ! 25: ! 26: This software is provided 'as is' with no explicit or implied warranties ! 27: in respect of its properties, including, but not limited to, correctness ! 28: and/or fitness for purpose. ! 29: --------------------------------------------------------------------------- ! 30: Issue Date: 26/08/2003 ! 31: */ ! 32: ! 33: #ifndef _SHA1_H ! 34: #define _SHA1_H ! 35: ! 36: #include <limits.h> ! 37: ! 38: #define SHA1_BLOCK_SIZE 64 ! 39: #define SHA1_DIGEST_SIZE 20 ! 40: ! 41: #if defined(__cplusplus) ! 42: extern "C" ! 43: { ! 44: #endif ! 45: ! 46: /* define an unsigned 32-bit type */ ! 47: ! 48: #if defined(_MSC_VER) ! 49: typedef unsigned __int32 sha1_32t; ! 50: #elif defined(ULONG_MAX) && ULONG_MAX == 0xfffffffful ! 51: typedef unsigned __int32 sha1_32t; ! 52: #elif defined(UINT_MAX) && UINT_MAX == 0xffffffff ! 53: typedef unsigned int sha1_32t; ! 54: #else ! 55: # error Please define sha1_32t as an unsigned 32 bit type in sha1.h ! 56: #endif ! 57: ! 58: /* type to hold the SHA256 context */ ! 59: ! 60: typedef struct ! 61: { sha1_32t count[2]; ! 62: sha1_32t hash[5]; ! 63: sha1_32t wbuf[16]; ! 64: } sha1_ctx; ! 65: ! 66: /* Note that these prototypes are the same for both bit and */ ! 67: /* byte oriented implementations. However the length fields */ ! 68: /* are in bytes or bits as appropriate for the version used */ ! 69: /* and bit sequences are input as arrays of bytes in which */ ! 70: /* bit sequences run from the most to the least significant */ ! 71: /* end of each byte */ ! 72: ! 73: void sha1_compile(sha1_ctx ctx[1]); ! 74: ! 75: void _cdecl sha1_begin(sha1_ctx ctx[1]); ! 76: void _cdecl sha1_hash(const unsigned char data[], unsigned __int32 len, sha1_ctx ctx[1]); ! 77: void _cdecl sha1_end(unsigned char hval[], sha1_ctx ctx[1]); ! 78: void _cdecl sha1(unsigned char hval[], const unsigned char data[], unsigned __int32 len); ! 79: ! 80: #if defined(__cplusplus) ! 81: } ! 82: #endif ! 83: ! 84: #endif
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.