BeeCrypt 4.2.1
sha1.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 1997, 1998, 1999, 2000, 2002 X-Way Rights BV
3 *
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
8 *
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
13 *
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17 *
18 */
19
25
26#ifndef _SHA1_H
27#define _SHA1_H
28
29#include "beecrypt/beecrypt.h"
30#include "beecrypt/sha1opt.h"
31
35#ifdef __cplusplus
37#else
38struct _sha1Param
39#endif
40{
43 uint32_t h[5];
46 uint32_t data[80];
51 #if (MP_WBITS == 64)
53 #elif (MP_WBITS == 32)
54 mpw length[2];
55 #else
56 # error
57 #endif
62 uint32_t offset;
63};
64
65#ifndef __cplusplus
66typedef struct _sha1Param sha1Param;
67#endif
68
69#ifdef __cplusplus
70extern "C" {
71#endif
72
76extern BEECRYPTAPI const hashFunction sha1;
77
85
94
104int sha1Update (sha1Param* sp, const byte* data, size_t size);
105
114int sha1Digest (sha1Param* sp, byte* digest);
115
116#ifdef __cplusplus
117}
118#endif
119
120#endif
#define BEECRYPTAPI
Definition api.h:52
uint64_t mpw
Definition api.h:87
BeeCrypt API, headers.
int sha1Digest(sha1Param *sp, byte *digest)
This function finishes the current hash computation and copies the digest value into digest.
int sha1Reset(sha1Param *sp)
This function resets the parameter block so that it's ready for a new hash.
const hashFunction sha1
Holds the full API description of the SHA-1 algorithm.
int sha1Update(sha1Param *sp, const byte *data, size_t size)
This function should be used to pass successive blocks of data to be hashed.
void sha1Process(sha1Param *sp)
This function performs the core of the SHA-1 hash algorithm; it processes a block of 64 bytes.
Definition beecrypt.h:305
Holds all the parameters necessary for the SHA-1 algorithm.
Definition sha1.h:40
mpw length[1]
Multi-precision integer counter for the bits that have been processed so far.
Definition sha1.h:52
uint32_t offset
Offset into data; points to the place where new data will be copied before it is processed.
Definition sha1.h:62
uint32_t data[80]
Definition sha1.h:46
uint32_t h[5]
Definition sha1.h:43