TC38xHsmHostDemo v1.1.0
This is a demo project for TC38x HSM Host Library.
载入中...
搜索中...
未找到
HsmCmd.h
浏览该文件的文档.
1
9
10#ifndef __HSMCMD_H__
11#define __HSMCMD_H__
12/*******************************************************************************
13** Includes **
14*******************************************************************************/
15#include "Std_Types.h"
16
21#define HSMCMD_REQUEST_NOT_HANDLED 0
22#define HSMCMD_REQUEST_INPROGRESS 1
23#define HSMCMD_REQUEST_HANDLED 2
24#define HSMCMD_REQUEST_TIMEOUT 0xFFFFFFFF
25
30#define HSMCMD_REQUEST_SYNC_FORMAT_ERROR 3
31#define HSMCMD_INVALID_KEY_LENGTH_ERROR 4
32
51
62
72
85
95
105
110typedef enum
111{
112 HSMCMD_IDLE = 0x00000000u,
113 HSMCMD_OCCUPIED = 0x00000001u,
114
115 HSMCMD_SYNC = 0x01010001u,
116#if DEBUG_LOG == 1
117 HOSTCMD_LOG_EXCHANGE = 0x01010002u,
118#endif
119 HSMCMD_GET_AB_STATUS = 0x01020001u,
120
123 HSMCMD_DESTRUCT_KEY = 0x02020001u,
124 HSMCMD_CHECK_KEY = 0x02030001u,
125
126 HSMCMD_ENCRYPT_SLOT = 0x03010001u,
130 HSMCMD_ENCRYPT_PLAIN = 0x03010005u,
134
135 HSMCMD_DECRYPT_SLOT = 0x03020001u,
139 HSMCMD_DECRYPT_PLAIN = 0x03020005u,
143
144 HSMCMD_HASH_CMDALL = 0x04010001u,
145 HSMCMD_HASH_START = 0x04010002u,
146 HSMCMD_HASH_UPDATE = 0x04010003u,
147 HSMCMD_HASH_FINISH = 0x04010004u,
148
149 HSMCMD_TRNG = 0x05010001u,
150
151 HSMCMD_CMAC = 0x06010001u,
152 HSMCMD_CMAC_START = 0x06010002u,
153 HSMCMD_CMAC_UPDATE = 0x06010003u,
154 HSMCMD_CMAC_FINISH = 0x06010004u,
155 HSMCMD_CMAC_DONE = 0x06010005u,
156
157 HSMCMD_OPT_HANDLE = 0x07010001u,
158
161
162 HSMCMD_ECC_ENCRYPT = 0x09010001u,
164 HSMCMD_ECC_DECRYPT = 0x09020002u,
165
167
168 HSMCMD_HMAC_MD5 = 0x0B010001u,
169 HSMCMD_HMAC_SHA1 = 0x0B010002u,
170 HSMCMD_HMAC_SHA256 = 0x0B010003u,
172
184
189typedef struct
190{
191 uint32 cmdTyp;
193 uint32 hostDataLen;
194 uint32 hsmDataAddr;
195 uint32 hsmDataLen;
196 uint32 para1;
197 uint32 para2;
198 uint32 para3;
199 uint32 para4;
200 uint32 result;
201 uint32 id;
203
208typedef struct
209{
210 uint32 keyPtr;
211 uint32 keySize;
212 uint32 IVPtr;
213 uint32 IVSize;
214 uint32 aadPtr;
215 uint32 aadSize;
216 uint32 tagPtr;
217 uint32 tagSize;
219
224typedef void (*HsmCmd_Callback)(HsmCmd_Interface *itf);
225
230typedef struct
231{
233 uint32 timer;
235
245
254 HsmCmd_Callback callback);
255
264 HsmCmd_Callback callback);
265
273
274#endif /* __HSMCMD_H__ */
HsmCmd_KeyEnum
HSM 密钥类型枚举
定义 HsmCmd.h:68
void(* HsmCmd_Callback)(HsmCmd_Interface *itf)
HSM命令回调函数指针类型
定义 HsmCmd.h:224
HsmCmd_HashEnum
HSM 哈希算法枚举
定义 HsmCmd.h:78
Std_ReturnType HsmCmd_RequestCmd(HsmCmd_Descriptor *desc, HsmCmd_Callback callback)
主机向HSM请求命令
HsmCmd_CmdInternalEnum
HSM 内部命令枚举
定义 HsmCmd.h:111
Std_ReturnType HsmCmd_ShakeHand(HsmCmd_Descriptor *desc, HsmCmd_Callback callback)
主机与HSM进行握手
HsmCmd_SECUREBOOT_CHECK_Enum
HSM 安全启动检查命令枚举
定义 HsmCmd.h:101
HsmCmd_CryCmdEnum
HSM 加密命令枚举
定义 HsmCmd.h:38
HsmCmd_CryptmEnum
HSM 加密算法枚举
定义 HsmCmd.h:57
HostCmd_MacEnum
主机 MAC 命令枚举
定义 HsmCmd.h:91
void HsmCmd_ReleaseDesc(HsmCmd_Descriptor *desc)
释放命令描述符
@ HSM_COMMAND_KEY_SLOT
定义 HsmCmd.h:70
@ HSM_COMMAND_KEY_PLAIN
定义 HsmCmd.h:69
@ HSM_COMMAND_HASH_MD5
定义 HsmCmd.h:81
@ HSM_COMMAND_HASH_SHA1
定义 HsmCmd.h:82
@ HSM_COMMAND_HASH_CMAC
定义 HsmCmd.h:80
@ HSM_COMMAND_HASH_SHA256
定义 HsmCmd.h:79
@ HSM_COMMAND_HASH_NONE
定义 HsmCmd.h:83
@ HSMCMD_OPT_HANDLE
定义 HsmCmd.h:157
@ HSMCMD_DECRYPT_PLAIN
定义 HsmCmd.h:139
@ HSMCMD_HMAC_MD5
定义 HsmCmd.h:168
@ HSMCMD_DECRYPT_SLOT_UPDATE
定义 HsmCmd.h:137
@ HSMCMD_ENCRYPT_SLOT_UPDATE
定义 HsmCmd.h:128
@ HSMCMD_ENCRYPT_PLAIN_FINISH
定义 HsmCmd.h:133
@ HSMCMD_OCCUPIED
定义 HsmCmd.h:113
@ HSMCMD_GET_AB_STATUS
定义 HsmCmd.h:119
@ HSMCMD_CMAC_FINISH
定义 HsmCmd.h:154
@ HSMCMD_INJECT_KEY_ENCRYPT
定义 HsmCmd.h:122
@ HSMCMD_ECC_DECRYPT
定义 HsmCmd.h:164
@ HSMCMD_TRNG
定义 HsmCmd.h:149
@ HSMCMD_DECRYPT_SLOT
定义 HsmCmd.h:135
@ HSMCMD_ENCRYPT_PLAIN
定义 HsmCmd.h:130
@ HSMCMD_ENCRYPT_PLAIN_START
定义 HsmCmd.h:131
@ HSMCMD_DESTRUCT_KEY
定义 HsmCmd.h:123
@ HSMCMD_DECRYPT_PLAIN_FINISH
定义 HsmCmd.h:142
@ HSMCMD_ECC_ENCRYPT
定义 HsmCmd.h:162
@ HSMCMD_DECRYPT_PLAIN_START
定义 HsmCmd.h:140
@ HSMCMD_HASH_START
定义 HsmCmd.h:145
@ HSMCMD_ENCRYPT_SLOT
定义 HsmCmd.h:126
@ HSMCMD_CMAC_UPDATE
定义 HsmCmd.h:153
@ HSMCMD_DECRYPT_SLOT_FINISH
定义 HsmCmd.h:138
@ HSMCMD_ENCRYPT_PLAIN_UPDATE
定义 HsmCmd.h:132
@ HSMCMD_HASH_UPDATE
定义 HsmCmd.h:146
@ HSMCMD_IDLE
定义 HsmCmd.h:112
@ HSMCMD_DECRYPT_PLAIN_UPDATE
定义 HsmCmd.h:141
@ HSMCMD_HASH_FINISH
定义 HsmCmd.h:147
@ HSMCMD_DECRYPT_SLOT_START
定义 HsmCmd.h:136
@ HSMCMD_ERASE_DFLASH_INFO
定义 HsmCmd.h:160
@ HSMCMD_CMAC_DONE
定义 HsmCmd.h:155
@ HSMCMD_SECURE_BOOT_CHECK
定义 HsmCmd.h:166
@ HSMCMD_HMAC_SHA1
定义 HsmCmd.h:169
@ HSMCMD_CMAC_START
定义 HsmCmd.h:152
@ HSMCMD_CERT_VERIFY_SLOT
定义 HsmCmd.h:163
@ HSMCMD_SYNC
定义 HsmCmd.h:115
@ HSMCMD_CMAC
定义 HsmCmd.h:151
@ HSMCMD_INJECT_KEY_PLAIN
定义 HsmCmd.h:121
@ HSMCMD_CHECK_KEY
定义 HsmCmd.h:124
@ HSMCMD_HASH_CMDALL
定义 HsmCmd.h:144
@ HSMCMD_READ_DFLASH_INFO
定义 HsmCmd.h:159
@ HSMCMD_HMAC_SHA256
定义 HsmCmd.h:170
@ HSMCMD_ENCRYPT_SLOT_FINISH
定义 HsmCmd.h:129
@ HSMCMD_ENCRYPT_SLOT_START
定义 HsmCmd.h:127
@ HSM_COMMAND_SECUREBOOT_CHECK
定义 HsmCmd.h:102
@ HSM_COMMAND_SECUREBOOT_SAVE
定义 HsmCmd.h:103
@ HSM_COMMAND_CRYPT_AES_ECB_KEYID
定义 HsmCmd.h:42
@ HSM_COMMAND_CRYPT_RSA_KEYID
定义 HsmCmd.h:44
@ HSM_COMMAND_CRYPT_AES_OFB
定义 HsmCmd.h:46
@ HSM_COMMAND_RSA2048
定义 HsmCmd.h:41
@ HSM_COMMAND_CRYPT_AES_CFB
定义 HsmCmd.h:47
@ HSM_COMMAND_CRYPT_AES_GCM
定义 HsmCmd.h:49
@ HSM_COMMAND_CRYPT_AES_CTR
定义 HsmCmd.h:45
@ HSM_COMMAND_CRYPT_AES_XTS
定义 HsmCmd.h:48
@ HSM_COMMAND_CRYPT_AES_CBC_KEYID
定义 HsmCmd.h:43
@ HSM_COMMAND_AES128_CBC
定义 HsmCmd.h:40
@ HSM_COMMAND_AES128_ECB
定义 HsmCmd.h:39
@ HSM_COMMAND_CRYPT_RSA
定义 HsmCmd.h:60
@ HSM_COMMAND_CRYPT_AES_CBC
定义 HsmCmd.h:59
@ HSM_COMMAND_CRYPT_AES_ECB
定义 HsmCmd.h:58
@ HSM_COMMAND_MAC_CMAC
定义 HsmCmd.h:92
@ HSM_COMMAND_MAC_CMAC_KEYID
定义 HsmCmd.h:93
AES-GCM 上下文结构体
定义 HsmCmd.h:209
uint32 tagPtr
定义 HsmCmd.h:216
uint32 IVSize
定义 HsmCmd.h:213
uint32 aadSize
定义 HsmCmd.h:215
uint32 tagSize
定义 HsmCmd.h:217
uint32 aadPtr
定义 HsmCmd.h:214
uint32 keyPtr
定义 HsmCmd.h:210
uint32 IVPtr
定义 HsmCmd.h:212
uint32 keySize
定义 HsmCmd.h:211
HSM命令描述符结构体
定义 HsmCmd.h:241
HsmCmd_Interface itf
定义 HsmCmd.h:242
HsmCmd_Local loc
定义 HsmCmd.h:243
HSM命令接口结构体
定义 HsmCmd.h:190
uint32 hsmDataAddr
定义 HsmCmd.h:194
uint32 para1
定义 HsmCmd.h:196
uint32 para4
定义 HsmCmd.h:199
uint32 para3
定义 HsmCmd.h:198
uint32 hostDataLen
定义 HsmCmd.h:193
uint32 hsmDataLen
定义 HsmCmd.h:195
uint32 cmdTyp
定义 HsmCmd.h:191
uint32 result
定义 HsmCmd.h:200
uint32 id
定义 HsmCmd.h:201
uint32 para2
定义 HsmCmd.h:197
uint32 hostDataAddr
定义 HsmCmd.h:192
HSM命令本地数据结构体
定义 HsmCmd.h:231
uint32 timer
定义 HsmCmd.h:233
HsmCmd_Callback callback
定义 HsmCmd.h:232
安全启动信息结构体
定义 HsmCmd.h:178
uint32 publicKeyErrorCnt
定义 HsmCmd.h:179
uint32 publicKeyStatus
定义 HsmCmd.h:181
uint32 userBootloaderStatus
定义 HsmCmd.h:182
uint32 userBootloaderErrorCnt
定义 HsmCmd.h:180