pure sdk for main

This commit is contained in:
divadiow
2025-08-27 09:51:58 +01:00
parent f0d033f1c9
commit 0571416e7c
3283 changed files with 1577720 additions and 1 deletions
+67
View File
@@ -0,0 +1,67 @@
#ifndef _HAL_SHA_H_
#define _HAL_SHA_H_
struct sha_dev
{
struct dev_obj dev;
};
enum SHA_CALC_FLAGS{
SHA_CALC_LAST_DATA = 0x01,
SHA_CALC_SHA256 = 0x02,
SHA_CALC_SHA384 = 0x04,
SHA_CALC_SHA512 = 0x08,
};
enum SHA_TYPE {
SHA_SHA256 = 0x01,
SHA_SHA384 = 0x02,
SHA_SHA512 = 0x04,
};
struct sha_desc{
void *state;
uint32 type;
};
struct sha256_state {
uint8 buf[64];
uint32 cnt;
uint8 output[32];
};
enum sha_ioctl_cmd {
SHA_IOCTL_CMD_START,
SHA_IOCTL_CMD_END,
SHA_IOCTL_CMD_RESET,
};
struct sha_hal_ops
{
struct devobj_ops ops;
int32 (*calc)(struct sha_dev *dev, uint8 input[], uint32 len, enum SHA_CALC_FLAGS flags);
int32 (*read)(struct sha_dev *dev, uint8 output[], uint32 timeout);
int32 (*ioctl)(struct sha_dev *dev, uint32 cmd, uint32 para);
int32 (*requset_irq)(struct sha_dev *dev, void *irq_handle, void *args);
int32 (*release_irq)(struct sha_dev *dev);
};
/*
使用cache_clean去确保input对应的数据总是最新的
sha_calc和sha_read已经淘汰了,请使用init->update*n->final
*/
int32 sha_calc(struct sha_dev *dev, uint8 input[], uint32 len, enum SHA_CALC_FLAGS flags);
int32 sha_read(struct sha_dev *dev, uint8 output[], uint32 timeout);
int32 sha_ioctl(struct sha_dev *dev, uint32 cmd, uint32 para);
int32 sha_init(struct sha_dev *dev, enum SHA_CALC_FLAGS flags);
int32 sha_update(struct sha_dev *dev, uint8 *input, uint32 len);
int32 sha_final(struct sha_dev *dev, uint8 *output);
int32 sha_requset_irq(struct sha_dev *dev, void *irq_handle, void *args);
int32 sha_release_irq(struct sha_dev *dev);
#endif