xref: /aosp_15_r20/external/erofs-utils/lib/sha256.h (revision 33b1fccf6a0fada2c2875d400ed01119b7676ee5)
1*33b1fccfSAndroid Build Coastguard Worker /* SPDX-License-Identifier: GPL-2.0+ OR Apache-2.0 */
2*33b1fccfSAndroid Build Coastguard Worker #ifndef __EROFS_LIB_SHA256_H
3*33b1fccfSAndroid Build Coastguard Worker #define __EROFS_LIB_SHA256_H
4*33b1fccfSAndroid Build Coastguard Worker 
5*33b1fccfSAndroid Build Coastguard Worker #include "erofs/defs.h"
6*33b1fccfSAndroid Build Coastguard Worker 
7*33b1fccfSAndroid Build Coastguard Worker struct sha256_state {
8*33b1fccfSAndroid Build Coastguard Worker 	u64 length;
9*33b1fccfSAndroid Build Coastguard Worker 	u32 state[8], curlen;
10*33b1fccfSAndroid Build Coastguard Worker 	u8 buf[64];
11*33b1fccfSAndroid Build Coastguard Worker };
12*33b1fccfSAndroid Build Coastguard Worker 
13*33b1fccfSAndroid Build Coastguard Worker void erofs_sha256_init(struct sha256_state *md);
14*33b1fccfSAndroid Build Coastguard Worker int erofs_sha256_process(struct sha256_state *md,
15*33b1fccfSAndroid Build Coastguard Worker 		const unsigned char *in, unsigned long inlen);
16*33b1fccfSAndroid Build Coastguard Worker int erofs_sha256_done(struct sha256_state *md, unsigned char *out);
17*33b1fccfSAndroid Build Coastguard Worker 
18*33b1fccfSAndroid Build Coastguard Worker void erofs_sha256(const unsigned char *in, unsigned long in_size,
19*33b1fccfSAndroid Build Coastguard Worker 		  unsigned char out[32]);
20*33b1fccfSAndroid Build Coastguard Worker 
21*33b1fccfSAndroid Build Coastguard Worker #endif
22