source: clamav/trunk/libclamav/sha1.h@ 319

Last change on this file since 319 was 319, checked in by Yuri Dario, 14 years ago

clamav: update trunk to 0.97.

File size: 2.1 KB
Line 
1/*-
2 * Copyright (c) 2001-2003 Allan Saddi <allan@saddi.com>
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer.
10 * 2. Redistributions in binary form must reproduce the above copyright
11 * notice, this list of conditions and the following disclaimer in the
12 * documentation and/or other materials provided with the distribution.
13 *
14 * THIS SOFTWARE IS PROVIDED BY ALLAN SADDI AND HIS CONTRIBUTORS ``AS IS''
15 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
17 * ARE DISCLAIMED. IN NO EVENT SHALL ALLAN SADDI OR HIS CONTRIBUTORS BE
18 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
19 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
20 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
21 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
22 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
23 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
24 * POSSIBILITY OF SUCH DAMAGE.
25 *
26 * $Id: sha1.h 347 2003-02-23 22:11:49Z asaddi $
27 */
28
29#ifndef _SHA1_H
30#define _SHA1_H
31
32#include "cltypes.h"
33
34#define SHA1_HASH_SIZE 20
35
36/* Hash size in 32-bit words */
37#define SHA1_HASH_WORDS 5
38
39struct _SHA1Context {
40 uint64_t totalLength;
41 uint32_t hash[SHA1_HASH_WORDS];
42 uint32_t bufferLength;
43 union {
44 uint32_t words[16];
45 uint8_t bytes[64];
46 } buffer;
47#ifdef RUNTIME_ENDIAN
48 int littleEndian;
49#endif /* RUNTIME_ENDIAN */
50};
51
52typedef struct _SHA1Context SHA1Context;
53
54#ifdef __cplusplus
55extern "C" {
56#endif
57
58void SHA1Init (SHA1Context *sc);
59void SHA1Update (SHA1Context *sc, const void *data, uint32_t len);
60void SHA1Final (SHA1Context *sc, uint8_t hash[SHA1_HASH_SIZE]);
61
62#ifdef __cplusplus
63}
64#endif
65
66#endif /* _SHA1_H */
Note: See TracBrowser for help on using the repository browser.