experimental hashing with oxcaml
at main 1.2 kB view raw
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 ****************************/ 20typedef uint8_t BYTE; // 8-bit byte 21typedef uint32_t WORD; // 32-bit word, change to "long" for 16-bit machines 22 23typedef struct { 24 BYTE data[64]; 25 WORD datalen; 26 unsigned long long bitlen; 27 WORD state[8]; 28} SHA256_CTX; 29 30/*********************** FUNCTION DECLARATIONS **********************/ 31void sha256_init(SHA256_CTX *ctx); 32void sha256_update(SHA256_CTX *ctx, const BYTE data[], size_t len); 33void sha256_final(SHA256_CTX *ctx, BYTE hash[]); 34 35#endif // SHA256_H