]>
Commit | Line | Data |
---|---|---|
f312a837 | 1 | /* |
de2a27e2 | 2 | * BIRD Library -- SHA-512 and SHA-384 Hash Functions |
f312a837 PT |
3 | * |
4 | * (c) 2015 CZ.NIC z.s.p.o. | |
5 | * | |
6 | * Based on the code from libgcrypt-1.6.0, which is | |
7 | * (c) 2003, 2006, 2008, 2009 Free Software Foundation, Inc. | |
8 | * | |
9 | * Can be freely distributed and used under the terms of the GNU GPL. | |
10 | */ | |
11 | ||
12 | #ifndef _BIRD_SHA512_H_ | |
13 | #define _BIRD_SHA512_H_ | |
14 | ||
5126380b OZ |
15 | #include "nest/bird.h" |
16 | ||
f312a837 PT |
17 | |
18 | #define SHA384_SIZE 48 | |
19 | #define SHA384_HEX_SIZE 97 | |
20 | #define SHA384_BLOCK_SIZE 128 | |
21 | ||
22 | #define SHA512_SIZE 64 | |
23 | #define SHA512_HEX_SIZE 129 | |
24 | #define SHA512_BLOCK_SIZE 128 | |
25 | ||
5126380b | 26 | |
de2a27e2 OZ |
27 | struct hash_context; |
28 | ||
5126380b | 29 | struct sha512_context { |
de2a27e2 | 30 | u64 h0, h1, h2, h3, h4, h5, h6, h7; |
5126380b OZ |
31 | byte buf[SHA512_BLOCK_SIZE]; |
32 | uint nblocks; | |
33 | uint count; | |
f312a837 PT |
34 | }; |
35 | ||
5126380b | 36 | #define sha384_context sha512_context |
f312a837 PT |
37 | |
38 | ||
de2a27e2 OZ |
39 | void sha512_init(struct hash_context *ctx); |
40 | void sha384_init(struct hash_context *ctx); | |
f312a837 | 41 | |
de2a27e2 OZ |
42 | void sha512_update(struct hash_context *ctx, const byte *buf, uint len); |
43 | #define sha384_update sha512_update | |
f312a837 | 44 | |
de2a27e2 OZ |
45 | byte *sha512_final(struct hash_context *ctx); |
46 | #define sha384_final sha512_final | |
f312a837 | 47 | |
5126380b | 48 | |
f312a837 | 49 | #endif /* _BIRD_SHA512_H_ */ |