Statistics
| Branch: | Revision:

iof-bird / bird-2.0.1 / lib / sha512.h @ 6b3f1a54

History | View | Annotate | Download (1 KB)

1
/*
2
 *        BIRD Library -- SHA-512 and SHA-384 Hash Functions
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

    
15
#include "nest/bird.h"
16

    
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

    
26

    
27
struct hash_context;
28

    
29
struct sha512_context {
30
  u64  h0, h1, h2, h3, h4, h5, h6, h7;
31
  byte buf[SHA512_BLOCK_SIZE];
32
  uint nblocks;
33
  uint count;
34
};
35

    
36
#define sha384_context sha512_context
37

    
38

    
39
void sha512_init(struct hash_context *ctx);
40
void sha384_init(struct hash_context *ctx);
41

    
42
void sha512_update(struct hash_context *ctx, const byte *buf, uint len);
43
#define sha384_update sha512_update
44

    
45
byte *sha512_final(struct hash_context *ctx);
46
#define sha384_final sha512_final
47

    
48

    
49
#endif /* _BIRD_SHA512_H_ */