]> git.ipfire.org Git - thirdparty/bird.git/blame - lib/sha512.h
Filter test: typo fix
[thirdparty/bird.git] / lib / sha512.h
CommitLineData
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
27struct hash_context;
28
5126380b 29struct 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
39void sha512_init(struct hash_context *ctx);
40void sha384_init(struct hash_context *ctx);
f312a837 41
de2a27e2
OZ
42void sha512_update(struct hash_context *ctx, const byte *buf, uint len);
43#define sha384_update sha512_update
f312a837 44
de2a27e2
OZ
45byte *sha512_final(struct hash_context *ctx);
46#define sha384_final sha512_final
f312a837 47
5126380b 48
f312a837 49#endif /* _BIRD_SHA512_H_ */