2025-10-10 16:07:00 +08:00

82 lines
1.8 KiB
C

#ifndef _BK_SHA_H_
#define _BK_SHA_H_
#if (CONFIG_SOC_BK7251)
#include "security_reg.h"
enum SHA_STEP {
STEP1 = 0,
STEP2 = 1,
};
typedef enum {
SHA1 = 0,
SHA224 = 2,
SHA256 = 3,
SHA512_224 = 4,
SHA512_256 = 5,
SHA384 = 6,
SHA512 = 7
} SHA_MODE;
typedef struct {
UINT32 total[2]; /*!< number of bytes processed */
UINT32 state[8]; /*!< intermediate digest state */
unsigned char buffer[64]; /*!< data block being processed */
int step; /*if is inited*/
SHA_MODE mode;
} hal_sha_context;
#ifndef PUT_UINT32_BE
#define PUT_UINT32_BE(n,b,i) \
{ \
(b)[(i) ] = (unsigned char) ( (n) >> 24 ); \
(b)[(i) + 1] = (unsigned char) ( (n) >> 16 ); \
(b)[(i) + 2] = (unsigned char) ( (n) >> 8 ); \
(b)[(i) + 3] = (unsigned char) ( (n) ); \
}
#endif
#ifndef PUT_UINT32_LE
#define PUT_UINT32_LE(n,b,i) \
{ \
(b)[(i) ] = (unsigned char) ( ( (n) ) & 0xFF ); \
(b)[(i) + 1] = (unsigned char) ( ( (n) >> 8 ) & 0xFF ); \
(b)[(i) + 2] = (unsigned char) ( ( (n) >> 16 ) & 0xFF ); \
(b)[(i) + 3] = (unsigned char) ( ( (n) >> 24 ) & 0xFF ); \
}
#endif
typedef struct {
unsigned long *sha_block;
/* mode: SHA mode
SHA1 = 0,
SHA224 = 2,
SHA256 = 3,
SHA512_224 = 4,
SHA512_256 = 5,
SHA384 = 6,
SHA512 = 7
*/
unsigned char mode;
/* mode: SECURITY SHA step
step1 = 0,
step2 = 1
*/
unsigned char step;
} SECURITY_SHA_DRV_DESC;
#endif
#endif