/ libpkg / sha256.h
sha256.h
 1  /*********************************************************************
 2  * Filename:   sha256.h
 3  * Author:     Brad Conte (brad AT bradconte.com)
 4  * Copyright:
 5  * Disclaimer: This code is presented "as is" without any guarantees.
 6  * Details:    Defines the API for the corresponding SHA1 implementation.
 7  *********************************************************************/
 8  
 9  #ifndef SHA256_H
10  #define SHA256_H
11  
12  /*************************** HEADER FILES ***************************/
13  #include <stddef.h>
14  
15  /****************************** MACROS ******************************/
16  #define SHA256_BLOCK_SIZE 32            // SHA256 outputs a 32 byte digest
17  
18  /**************************** DATA TYPES ****************************/
19  typedef unsigned char BYTE;             // 8-bit byte
20  typedef unsigned int  WORD;             // 32-bit word, change to "long" for 16-bit machines
21  
22  typedef struct {
23  	BYTE data[64];
24  	WORD datalen;
25  	unsigned long long bitlen;
26  	WORD state[8];
27  } SHA256_CTX;
28  
29  /*********************** FUNCTION DECLARATIONS **********************/
30  void sha256_init(SHA256_CTX *ctx);
31  void sha256_update(SHA256_CTX *ctx, const BYTE data[], size_t len);
32  void sha256_final(SHA256_CTX *ctx, BYTE hash[]);
33  
34  #endif   // SHA256_H