1*2b9912e6SJeroen Hofstee #ifndef _SHA256_H 2*2b9912e6SJeroen Hofstee #define _SHA256_H 3*2b9912e6SJeroen Hofstee 4*2b9912e6SJeroen Hofstee #define SHA256_SUM_LEN 32 5*2b9912e6SJeroen Hofstee 6*2b9912e6SJeroen Hofstee /* Reset watchdog each time we process this many bytes */ 7*2b9912e6SJeroen Hofstee #define CHUNKSZ_SHA256 (64 * 1024) 8*2b9912e6SJeroen Hofstee 9*2b9912e6SJeroen Hofstee typedef struct { 10*2b9912e6SJeroen Hofstee uint32_t total[2]; 11*2b9912e6SJeroen Hofstee uint32_t state[8]; 12*2b9912e6SJeroen Hofstee uint8_t buffer[64]; 13*2b9912e6SJeroen Hofstee } sha256_context; 14*2b9912e6SJeroen Hofstee 15*2b9912e6SJeroen Hofstee void sha256_starts(sha256_context * ctx); 16*2b9912e6SJeroen Hofstee void sha256_update(sha256_context *ctx, const uint8_t *input, uint32_t length); 17*2b9912e6SJeroen Hofstee void sha256_finish(sha256_context * ctx, uint8_t digest[SHA256_SUM_LEN]); 18*2b9912e6SJeroen Hofstee 19*2b9912e6SJeroen Hofstee void sha256_csum_wd(const unsigned char *input, unsigned int ilen, 20*2b9912e6SJeroen Hofstee unsigned char *output, unsigned int chunk_sz); 21*2b9912e6SJeroen Hofstee 22*2b9912e6SJeroen Hofstee #endif /* _SHA256_H */ 23