nettle
3.7.3
About:
Nettle
is a low-level cryptographic library.
Fossies
Dox
:
nettle-3.7.3.tar.gz
("unofficial" and yet experimental doxygen-generated source code documentation)
sha1.h
Go to the documentation of this file.
1
/* sha1.h
2
3
The sha1 hash function.
4
5
Copyright (C) 2001, 2012 Niels Möller
6
7
This file is part of GNU Nettle.
8
9
GNU Nettle is free software: you can redistribute it and/or
10
modify it under the terms of either:
11
12
* the GNU Lesser General Public License as published by the Free
13
Software Foundation; either version 3 of the License, or (at your
14
option) any later version.
15
16
or
17
18
* the GNU General Public License as published by the Free
19
Software Foundation; either version 2 of the License, or (at your
20
option) any later version.
21
22
or both in parallel, as here.
23
24
GNU Nettle is distributed in the hope that it will be useful,
25
but WITHOUT ANY WARRANTY; without even the implied warranty of
26
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
27
General Public License for more details.
28
29
You should have received copies of the GNU General Public License and
30
the GNU Lesser General Public License along with this program. If
31
not, see http://www.gnu.org/licenses/.
32
*/
33
34
#ifndef NETTLE_SHA1_H_INCLUDED
35
#define NETTLE_SHA1_H_INCLUDED
36
37
#include "
nettle-types.h
"
38
39
#ifdef __cplusplus
40
extern
"C"
{
41
#endif
42
43
/* Name mangling */
44
#define sha1_init nettle_sha1_init
45
#define sha1_update nettle_sha1_update
46
#define sha1_digest nettle_sha1_digest
47
48
/* SHA1 */
49
50
#define SHA1_DIGEST_SIZE 20
51
#define SHA1_BLOCK_SIZE 64
52
/* For backwards compatibility */
53
#define SHA1_DATA_SIZE SHA1_BLOCK_SIZE
54
55
/* Digest is kept internally as 5 32-bit words. */
56
#define _SHA1_DIGEST_LENGTH 5
57
58
struct
sha1_ctx
59
{
60
uint32_t
state
[
_SHA1_DIGEST_LENGTH
];
/* State variables */
61
uint64_t
count
;
/* 64-bit block count */
62
unsigned
int
index
;
/* index into buffer */
63
uint8_t
block
[
SHA1_BLOCK_SIZE
];
/* SHA1 data buffer */
64
};
65
66
void
67
sha1_init
(
struct
sha1_ctx
*ctx);
68
69
void
70
sha1_update
(
struct
sha1_ctx
*ctx,
71
size_t
length,
72
const
uint8_t *data);
73
74
void
75
sha1_digest
(
struct
sha1_ctx
*ctx,
76
size_t
length,
77
uint8_t *digest);
78
79
/* Internal compression function. STATE points to 5 uint32_t words,
80
and DATA points to 64 bytes of input data, possibly unaligned. */
81
void
82
nettle_sha1_compress
(uint32_t *state,
const
uint8_t *data);
83
84
#define _nettle_sha1_compress nettle_sha1_compress
85
86
#ifdef __cplusplus
87
}
88
#endif
89
90
#endif
/* NETTLE_SHA1_H_INCLUDED */
nettle-types.h
_SHA1_DIGEST_LENGTH
#define _SHA1_DIGEST_LENGTH
Definition:
sha1.h:56
sha1_init
#define sha1_init
Definition:
sha1.h:44
SHA1_BLOCK_SIZE
#define SHA1_BLOCK_SIZE
Definition:
sha1.h:51
nettle_sha1_compress
void nettle_sha1_compress(uint32_t *state, const uint8_t *data)
Definition:
fat-arm.c:264
sha1_digest
#define sha1_digest
Definition:
sha1.h:46
sha1_update
#define sha1_update
Definition:
sha1.h:45
sha1_ctx
Definition:
sha1.h:59
sha1_ctx::block
uint8_t block[64]
Definition:
sha1.h:63
sha1_ctx::count
uint64_t count
Definition:
sha1.h:61
sha1_ctx::state
uint32_t state[5]
Definition:
sha1.h:60
sha1_ctx::index
unsigned int index
Definition:
sha1.h:62
sha1.h
Generated by
1.9.2