1 #ifndef _SHA256_H 2 #define _SHA256_H 3 4 #define SHA256_SUM_LEN 32 5 #define SHA256_DER_LEN 19 6 7 extern const uint8_t sha256_der_prefix[]; 8 9 /* Reset watchdog each time we process this many bytes */ 10 #define CHUNKSZ_SHA256 (64 * 1024) 11 12 typedef struct { 13 uint32_t total[2]; 14 uint32_t state[8]; 15 uint8_t buffer[64]; 16 17 #if !defined(USE_HOSTCC) 18 struct udevice *cdev; 19 u32 length; /* Data total length */ 20 #endif 21 } sha256_context; 22 23 void sha256_starts(sha256_context * ctx); 24 void sha256_update(sha256_context *ctx, const uint8_t *input, uint32_t length); 25 void sha256_finish(sha256_context * ctx, uint8_t digest[SHA256_SUM_LEN]); 26 27 void sha256_csum_wd(const unsigned char *input, unsigned int ilen, 28 unsigned char *output, unsigned int chunk_sz); 29 void sha256_csum(const unsigned char *input, unsigned int ilen, 30 unsigned char *output); 31 32 #endif /* _SHA256_H */ 33