1*4882a593Smuzhiyun /* 2*4882a593Smuzhiyun * Copyright 2014 Freescale Semiconductor, Inc. 3*4882a593Smuzhiyun * 4*4882a593Smuzhiyun * SPDX-License-Identifier: GPL-2.0+ 5*4882a593Smuzhiyun * 6*4882a593Smuzhiyun */ 7*4882a593Smuzhiyun 8*4882a593Smuzhiyun #ifndef _SHA_H 9*4882a593Smuzhiyun #define _SHA_H 10*4882a593Smuzhiyun 11*4882a593Smuzhiyun #include <fsl_sec.h> 12*4882a593Smuzhiyun #include <hash.h> 13*4882a593Smuzhiyun #include "jr.h" 14*4882a593Smuzhiyun 15*4882a593Smuzhiyun /* We support at most 32 Scatter/Gather Entries.*/ 16*4882a593Smuzhiyun #define MAX_SG_32 32 17*4882a593Smuzhiyun 18*4882a593Smuzhiyun /* 19*4882a593Smuzhiyun * Hash context contains the following fields 20*4882a593Smuzhiyun * @sha_desc: Sha Descriptor 21*4882a593Smuzhiyun * @sg_num: number of entries in sg table 22*4882a593Smuzhiyun * @len: total length of buffer 23*4882a593Smuzhiyun * @sg_tbl: sg entry table 24*4882a593Smuzhiyun * @hash: index to the hash calculated 25*4882a593Smuzhiyun */ 26*4882a593Smuzhiyun struct sha_ctx { 27*4882a593Smuzhiyun uint32_t sha_desc[64]; 28*4882a593Smuzhiyun uint32_t sg_num; 29*4882a593Smuzhiyun uint32_t len; 30*4882a593Smuzhiyun struct sg_entry sg_tbl[MAX_SG_32]; 31*4882a593Smuzhiyun u8 hash[HASH_MAX_DIGEST_SIZE]; 32*4882a593Smuzhiyun }; 33*4882a593Smuzhiyun 34*4882a593Smuzhiyun #endif 35