Statistics
| Branch: | Revision:

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

History | View | Annotate | Download (1 KB)

1
/*
2
 *        BIRD Library -- SHA-256 and SHA-224 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_SHA256_H_
13
#define _BIRD_SHA256_H_
14

    
15
#include "nest/bird.h"
16

    
17

    
18
#define SHA224_SIZE                 28
19
#define SHA224_HEX_SIZE                57
20
#define SHA224_BLOCK_SIZE         64
21

    
22
#define SHA256_SIZE                 32
23
#define SHA256_HEX_SIZE                65
24
#define SHA256_BLOCK_SIZE         64
25

    
26

    
27
struct hash_context;
28

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

    
36
#define sha224_context sha256_context
37

    
38

    
39
void sha256_init(struct hash_context *ctx);
40
void sha224_init(struct hash_context *ctx);
41

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

    
45
byte *sha256_final(struct hash_context *ctx);
46
#define sha224_final sha256_final
47

    
48

    
49
#endif /* _BIRD_SHA256_H_ */