aboutsummaryrefslogtreecommitdiff
path: root/lib/sec_library/include/sha.h
diff options
context:
space:
mode:
authorthead_admin <occ_thead@service.alibaba.com>2023-01-04 13:12:02 +0800
committerthead_admin <occ_thead@service.alibaba.com>2023-01-04 13:12:02 +0800
commit02deb8b059118cd2b0fb3c8bbb6d73fd1f87115a (patch)
tree0392294a5f997b777b05c8373dd2fe062a751296 /lib/sec_library/include/sha.h
parent0c8e009c3a52c6a29b00cf70d368d5c082639197 (diff)
Linux_SDK_V1.0.3Linux_SDK_V1.0.3
Diffstat (limited to 'lib/sec_library/include/sha.h')
-rw-r--r--lib/sec_library/include/sha.h25
1 files changed, 19 insertions, 6 deletions
diff --git a/lib/sec_library/include/sha.h b/lib/sec_library/include/sha.h
index 75472f12..c5216a40 100644
--- a/lib/sec_library/include/sha.h
+++ b/lib/sec_library/include/sha.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2017-2021 Alibaba Group Holding Limited
+ * Copyright (C) 2017-2020 Alibaba Group Holding Limited
*/
/******************************************************************************
@@ -13,22 +13,31 @@
#ifndef _DRV_SHA_H_
#define _DRV_SHA_H_
-#include <drv/common.h>
-#include <drv/dma.h>
+#include "common.h"
#ifdef __cplusplus
extern "C" {
#endif
+#define HASH_DATAIN_BLOCK_SIZE 64
+
+#define SHA1_DIGEST_OUT_SIZE 20
+#define SHA224_DIGEST_OUT_SIZE 28
+#define SHA256_DIGEST_OUT_SIZE 32
+#define SHA384_DIGEST_OUT_SIZE 48
+#define SHA512_DIGEST_OUT_SIZE 64
+#define MD5_DIGEST_OUT_SIZE 16
+
/****** SHA mode ******/
typedef enum {
- SHA_MODE_1 = 1U, ///< SHA_1 mode
+ SHA_MODE_SHA1 = 1U, ///< SHA_1 mode
SHA_MODE_256, ///< SHA_256 mode
SHA_MODE_224, ///< SHA_224 mode
SHA_MODE_512, ///< SHA_512 mode
SHA_MODE_384, ///< SHA_384 mode
SHA_MODE_512_256, ///< SHA_512_256 mode
- SHA_MODE_512_224 ///< SHA_512_224 mode
+ SHA_MODE_512_224, ///< SHA_512_224 mode
+ SHA_MODE_MD5 ///< MD5 mode
} csi_sha_mode_t;
/****** SHA State ******/
@@ -42,11 +51,16 @@ typedef struct {
uint32_t total[2]; ///< Number of bytes processed
uint32_t state[16]; ///< Intermediate digest state
uint8_t buffer[128]; ///< Data block being processed
+ uint8_t result[64]; ///< Data block has processed
+ uint32_t process_len;
+ uint32_t digest_len;
} csi_sha_context_t;
/****** SHA Event ******/
typedef enum {
SHA_EVENT_COMPLETE = 0U, ///< Calculate completed
+ SHA_EVENT_UPDATE,
+ SHA_EVENT_START,
SHA_EVENT_ERROR ///< Calculate error
} csi_sha_event_t;
@@ -56,7 +70,6 @@ struct csi_sha {
csi_dev_t dev; ///< SHA hw-device info
void (*callback)(csi_sha_t *sha, csi_sha_event_t event, void *arg); ///< SHA event callback for user
void *arg; ///< SHA custom designed param passed to evt_cb
- csi_dma_ch_t *dma_in; ///< SHA in dma handle param
csi_sha_state_t state; ///< SHA state
void *priv;
};