#ifndef _SHA256_H
#define _SHA256_H

#define SHA256_SUM_LEN	32

/* Reset watchdog each time we process this many bytes */
#define CHUNKSZ_SHA256	(64 * 1024)


#define SHA224_DIGEST_SIZE	28

#define SHA256_DIGEST_SIZE	32
#define SHA256_BLOCK_SIZE	64

#define SHA256_SUM_LEN	32
#define SHA256_DER_LEN	19

/* SHA2 context */
typedef struct {
	/* hardware SHA compile */
	uint32_t h[8];
	uint32_t tot_len;
	uint32_t len;
	uint32_t digest_len;
	uint8_t block[2 * SHA256_BLOCK_SIZE];
	uint8_t buf[SHA256_DIGEST_SIZE];  /* Used to store the final digest. */
	uint8_t tmp[12]; // temp sha bits counter saved here by hw.

	/* software SHA compile */
	uint32_t total[2];
	uint32_t state[8];
	uint8_t buffer[64];
}sha2_ctx,sha256_context;

void sha256_starts(sha256_context * ctx);
void sha256_update(sha256_context *ctx, const uint8_t *input, uint32_t length);
void sha256_finish(sha256_context * ctx, uint8_t digest[SHA256_SUM_LEN]);

void sha256_csum_wd(const unsigned char *input, unsigned int ilen,
		unsigned char *output, unsigned int chunk_sz);

#endif /* _SHA256_H */
