github.com/jiajun1992/watercarver@v0.0.0-20191031150618-dfc2b17c0c4a/StadiumForWaterCarver/src/sha256.h (about)

     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