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