crypto-algorithms.c

Basic implementations of standard cryptography algorithms, like AES and SHA-1
git clone git://git.finwo.net/lib/crypto-algorithms.c
Log | Files | Refs | README

sha256.h (1189B)


      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 #include <stdint.h>
     15 
     16 /****************************** MACROS ******************************/
     17 #define SHA256_BLOCK_SIZE 32            // SHA256 outputs a 32 byte digest
     18 
     19 /**************************** DATA TYPES ****************************/
     20 typedef uint8_t   BYTE;             // 8-bit byte
     21 typedef uint32_t  WORD;             // 32-bit word
     22 
     23 typedef struct {
     24 	BYTE data[64];
     25 	WORD datalen;
     26 	unsigned long long bitlen;
     27 	WORD state[8];
     28 } SHA256_CTX;
     29 
     30 /*********************** FUNCTION DECLARATIONS **********************/
     31 void sha256_init(SHA256_CTX *ctx);
     32 void sha256_update(SHA256_CTX *ctx, const BYTE data[], size_t len);
     33 void sha256_final(SHA256_CTX *ctx, BYTE hash[]);
     34 
     35 #endif   // SHA256_H