File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / bird / lib / sha256.h
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Tue Aug 22 12:33:54 2017 UTC (6 years, 10 months ago) by misho
Branches: bird, MAIN
CVS tags: v1_6_8p3, v1_6_3p0, v1_6_3, HEAD
bird 1.6.3

    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_ */

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>