Annotation of truecrypt/crypto/sha1.h, revision 1.1.1.2

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

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.