TC38xHsmHostDemo v1.1.0
This is a demo project for TC38x HSM Host Library.
载入中...
搜索中...
未找到
HSM 调度管理模块

结构体

struct  HsmCmd_SecureBootInfoType
 安全启动信息结构体 更多...
struct  HsmCmd_Interface
 HSM命令接口结构体 更多...
struct  AES_GCM_Typedef
 AES-GCM 上下文结构体 更多...
struct  HsmCmd_Local
 HSM命令本地数据结构体 更多...
struct  HsmCmd_Descriptor
 HSM命令描述符结构体 更多...

宏定义

#define HSMCMD_REQUEST_NOT_HANDLED   0
 通用错误码
#define HSMCMD_REQUEST_SYNC_FORMAT_ERROR   3
 同步请求格式错误

类型定义

typedef void(* HsmCmd_Callback) (HsmCmd_Interface *itf)
 HSM命令回调函数指针类型

枚举

enum  HsmCmd_CryCmdEnum {
  HSM_COMMAND_AES128_ECB = 0u , HSM_COMMAND_AES128_CBC = 1u , HSM_COMMAND_RSA2048 = 2u , HSM_COMMAND_CRYPT_AES_ECB_KEYID = 3u ,
  HSM_COMMAND_CRYPT_AES_CBC_KEYID = 4u , HSM_COMMAND_CRYPT_RSA_KEYID = 5u , HSM_COMMAND_CRYPT_AES_CTR = 6u , HSM_COMMAND_CRYPT_AES_OFB = 7u ,
  HSM_COMMAND_CRYPT_AES_CFB = 8u , HSM_COMMAND_CRYPT_AES_XTS = 9u , HSM_COMMAND_CRYPT_AES_GCM = 10u
}
 HSM 加密命令枚举 更多...
enum  HsmCmd_CryptmEnum { HSM_COMMAND_CRYPT_AES_ECB = 0u , HSM_COMMAND_CRYPT_AES_CBC = 1u , HSM_COMMAND_CRYPT_RSA = 2u }
 HSM 加密算法枚举 更多...
enum  HsmCmd_KeyEnum { HSM_COMMAND_KEY_PLAIN = 0u , HSM_COMMAND_KEY_SLOT = 1u }
 HSM 密钥类型枚举 更多...
enum  HsmCmd_HashEnum {
  HSM_COMMAND_HASH_SHA256 = 0u , HSM_COMMAND_HASH_CMAC = 1u , HSM_COMMAND_HASH_MD5 = 2u , HSM_COMMAND_HASH_SHA1 = 3u ,
  HSM_COMMAND_HASH_NONE = 4u
}
 HSM 哈希算法枚举 更多...
enum  HostCmd_MacEnum { HSM_COMMAND_MAC_CMAC = 1u , HSM_COMMAND_MAC_CMAC_KEYID = 2u }
 主机 MAC 命令枚举 更多...
enum  HsmCmd_SECUREBOOT_CHECK_Enum { HSM_COMMAND_SECUREBOOT_CHECK = 0u , HSM_COMMAND_SECUREBOOT_SAVE = 1 }
 HSM 安全启动检查命令枚举 更多...
enum  HsmCmd_CmdInternalEnum {
  HSMCMD_IDLE = 0x00000000u , HSMCMD_OCCUPIED = 0x00000001u , HSMCMD_SYNC = 0x01010001u , HSMCMD_GET_AB_STATUS = 0x01020001u ,
  HSMCMD_INJECT_KEY_PLAIN = 0x02010001u , HSMCMD_INJECT_KEY_ENCRYPT = 0x02010002u , HSMCMD_DESTRUCT_KEY = 0x02020001u , HSMCMD_CHECK_KEY = 0x02030001u ,
  HSMCMD_ENCRYPT_SLOT = 0x03010001u , HSMCMD_ENCRYPT_SLOT_START = 0x03010002u , HSMCMD_ENCRYPT_SLOT_UPDATE = 0x03010003u , HSMCMD_ENCRYPT_SLOT_FINISH = 0x03010004u ,
  HSMCMD_ENCRYPT_PLAIN = 0x03010005u , HSMCMD_ENCRYPT_PLAIN_START = 0x03010006u , HSMCMD_ENCRYPT_PLAIN_UPDATE = 0x03010007u , HSMCMD_ENCRYPT_PLAIN_FINISH = 0x03010008u ,
  HSMCMD_DECRYPT_SLOT = 0x03020001u , HSMCMD_DECRYPT_SLOT_START = 0x03020002u , HSMCMD_DECRYPT_SLOT_UPDATE = 0x03020003u , HSMCMD_DECRYPT_SLOT_FINISH = 0x03020004u ,
  HSMCMD_DECRYPT_PLAIN = 0x03020005u , HSMCMD_DECRYPT_PLAIN_START = 0x03020006u , HSMCMD_DECRYPT_PLAIN_UPDATE = 0x03020007u , HSMCMD_DECRYPT_PLAIN_FINISH = 0x03020008u ,
  HSMCMD_HASH_CMDALL = 0x04010001u , HSMCMD_HASH_START = 0x04010002u , HSMCMD_HASH_UPDATE = 0x04010003u , HSMCMD_HASH_FINISH = 0x04010004u ,
  HSMCMD_TRNG = 0x05010001u , HSMCMD_CMAC = 0x06010001u , HSMCMD_CMAC_START = 0x06010002u , HSMCMD_CMAC_UPDATE = 0x06010003u ,
  HSMCMD_CMAC_FINISH = 0x06010004u , HSMCMD_CMAC_DONE = 0x06010005u , HSMCMD_OPT_HANDLE = 0x07010001u , HSMCMD_READ_DFLASH_INFO = 0x08010001u ,
  HSMCMD_ERASE_DFLASH_INFO = 0x08010002u , HSMCMD_ECC_ENCRYPT = 0x09010001u , HSMCMD_CERT_VERIFY_SLOT = 0x09020001u , HSMCMD_ECC_DECRYPT = 0x09020002u ,
  HSMCMD_SECURE_BOOT_CHECK = 0x0A010001u , HSMCMD_HMAC_MD5 = 0x0B010001u , HSMCMD_HMAC_SHA1 = 0x0B010002u , HSMCMD_HMAC_SHA256 = 0x0B010003u
}
 HSM 内部命令枚举 更多...

函数

Std_ReturnType HsmCmd_ShakeHand (HsmCmd_Descriptor *desc, HsmCmd_Callback callback)
 主机与HSM进行握手
Std_ReturnType HsmCmd_RequestCmd (HsmCmd_Descriptor *desc, HsmCmd_Callback callback)
 主机向HSM请求命令
void HsmCmd_ReleaseDesc (HsmCmd_Descriptor *desc)
 释放命令描述符

详细描述

作者
liushun
日期
2022-09-12

宏定义说明

◆ HSMCMD_REQUEST_NOT_HANDLED

#define HSMCMD_REQUEST_NOT_HANDLED   0

通用错误码

请求未处理

◆ HSMCMD_REQUEST_SYNC_FORMAT_ERROR

#define HSMCMD_REQUEST_SYNC_FORMAT_ERROR   3

同步请求格式错误

同步请求格式错误

枚举类型说明

◆ HostCmd_MacEnum

主机 MAC 命令枚举

枚举值
HSM_COMMAND_MAC_CMAC 

CMAC

HSM_COMMAND_MAC_CMAC_KEYID 

使用密钥ID的CMAC

◆ HsmCmd_CmdInternalEnum

HSM 内部命令枚举

枚举值
HSMCMD_IDLE 

空闲状态

HSMCMD_OCCUPIED 

占用状态

HSMCMD_SYNC 

同步命令

HSMCMD_GET_AB_STATUS 

获取A/B分区状态

HSMCMD_INJECT_KEY_PLAIN 

注入明文密钥

HSMCMD_INJECT_KEY_ENCRYPT 

注入加密密钥

HSMCMD_DESTRUCT_KEY 

销毁密钥

HSMCMD_CHECK_KEY 

检查密钥

HSMCMD_ENCRYPT_SLOT 

使用密钥槽加密

HSMCMD_ENCRYPT_SLOT_START 

使用密钥槽加密 - 开始

HSMCMD_ENCRYPT_SLOT_UPDATE 

使用密钥槽加密 - 更新

HSMCMD_ENCRYPT_SLOT_FINISH 

使用密钥槽加密 - 结束

HSMCMD_ENCRYPT_PLAIN 

使用明文密钥加密

HSMCMD_ENCRYPT_PLAIN_START 

使用明文密钥加密 - 开始

HSMCMD_ENCRYPT_PLAIN_UPDATE 

使用明文密钥加密 - 更新

HSMCMD_ENCRYPT_PLAIN_FINISH 

使用明文密钥加密 - 结束

HSMCMD_DECRYPT_SLOT 

使用密钥槽解密

HSMCMD_DECRYPT_SLOT_START 

使用密钥槽解密 - 开始

HSMCMD_DECRYPT_SLOT_UPDATE 

使用密钥槽解密 - 更新

HSMCMD_DECRYPT_SLOT_FINISH 

使用密钥槽解密 - 结束

HSMCMD_DECRYPT_PLAIN 

使用明文密钥解密

HSMCMD_DECRYPT_PLAIN_START 

使用明文密钥解密 - 开始

HSMCMD_DECRYPT_PLAIN_UPDATE 

使用明文密钥解密 - 更新

HSMCMD_DECRYPT_PLAIN_FINISH 

使用明文密钥解密 - 结束

HSMCMD_HASH_CMDALL 

哈希 - 单次处理

HSMCMD_HASH_START 

哈希 - 开始

HSMCMD_HASH_UPDATE 

哈希 - 更新

HSMCMD_HASH_FINISH 

哈希 - 结束

HSMCMD_TRNG 

真随机数生成

HSMCMD_CMAC 

CMAC - 单次处理

HSMCMD_CMAC_START 

CMAC - 开始

HSMCMD_CMAC_UPDATE 

CMAC - 更新

HSMCMD_CMAC_FINISH 

CMAC - 结束

HSMCMD_CMAC_DONE 

CMAC - 完成

HSMCMD_OPT_HANDLE 

优化处理

HSMCMD_READ_DFLASH_INFO 

读取DFlash信息

HSMCMD_ERASE_DFLASH_INFO 

擦除DFlash信息

HSMCMD_ECC_ENCRYPT 

ECC 加密/签名

HSMCMD_CERT_VERIFY_SLOT 

使用密钥槽验证证书

HSMCMD_ECC_DECRYPT 

ECC 解密/验证

HSMCMD_SECURE_BOOT_CHECK 

安全启动检查

HSMCMD_HMAC_MD5 

HMAC-MD5

HSMCMD_HMAC_SHA1 

HMAC-SHA1

HSMCMD_HMAC_SHA256 

HMAC-SHA256

◆ HsmCmd_CryCmdEnum

HSM 加密命令枚举

枚举值
HSM_COMMAND_AES128_ECB 

AES-128 ECB模式

HSM_COMMAND_AES128_CBC 

AES-128 CBC模式

HSM_COMMAND_RSA2048 

RSA 2048

HSM_COMMAND_CRYPT_AES_ECB_KEYID 

使用密钥ID的AES ECB加密

HSM_COMMAND_CRYPT_AES_CBC_KEYID 

使用密钥ID的AES CBC加密

HSM_COMMAND_CRYPT_RSA_KEYID 

使用密钥ID的RSA加密

HSM_COMMAND_CRYPT_AES_CTR 

AES CTR模式

HSM_COMMAND_CRYPT_AES_OFB 

AES OFB模式

HSM_COMMAND_CRYPT_AES_CFB 

AES CFB模式

HSM_COMMAND_CRYPT_AES_XTS 

AES XTS模式

HSM_COMMAND_CRYPT_AES_GCM 

AES GCM模式

◆ HsmCmd_CryptmEnum

HSM 加密算法枚举

枚举值
HSM_COMMAND_CRYPT_AES_ECB 

AES ECB加密

HSM_COMMAND_CRYPT_AES_CBC 

AES CBC加密

HSM_COMMAND_CRYPT_RSA 

RSA加密

◆ HsmCmd_HashEnum

HSM 哈希算法枚举

枚举值
HSM_COMMAND_HASH_SHA256 

SHA-256

HSM_COMMAND_HASH_CMAC 

CMAC

HSM_COMMAND_HASH_MD5 

MD5

HSM_COMMAND_HASH_SHA1 

SHA-1

HSM_COMMAND_HASH_NONE 

无哈希

◆ HsmCmd_KeyEnum

HSM 密钥类型枚举

枚举值
HSM_COMMAND_KEY_PLAIN 

明文密钥

HSM_COMMAND_KEY_SLOT 

密钥槽中的密钥

◆ HsmCmd_SECUREBOOT_CHECK_Enum

HSM 安全启动检查命令枚举

枚举值
HSM_COMMAND_SECUREBOOT_CHECK 

安全启动检查

HSM_COMMAND_SECUREBOOT_SAVE 

安全启动保存

函数说明

◆ HsmCmd_ReleaseDesc()

void HsmCmd_ReleaseDesc ( HsmCmd_Descriptor * desc)

释放命令描述符

参数
[in,out]desc指向要释放的描述符的指针
返回
void

◆ HsmCmd_RequestCmd()

Std_ReturnType HsmCmd_RequestCmd ( HsmCmd_Descriptor * desc,
HsmCmd_Callback callback )

主机向HSM请求命令

参数
[in,out]desc指向描述符的指针
[in]callback指向回调函数的指针
返回
Std_ReturnType E_OK 表示成功, E_NOT_OK 表示失败

◆ HsmCmd_ShakeHand()

Std_ReturnType HsmCmd_ShakeHand ( HsmCmd_Descriptor * desc,
HsmCmd_Callback callback )

主机与HSM进行握手

参数
[in,out]desc指向描述符的指针
[in]callback指向回调函数的指针
返回
Std_ReturnType E_OK 表示成功, E_NOT_OK 表示失败