binlex
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
SHA256_CTX
Definition: sha256.h:22