pure sdk for main
This commit is contained in:
@@ -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
|
||||
Reference in New Issue
Block a user