算法描述符
算法描述符区域,用于描述当前任务的算法信息和参数。
以下以算法描述符的大小固定为 36 个字节为例。不同算法需要的输入参数各有不同,对于任务描述符中定义的算法描述符位域,具体的算法描述符根据需要给出具体定义。
| 算法标记值 | 描述 | 
|---|---|
| 0x00 | AES-ECB | 
| 0x01 | AES-CBC | 
| 0x02 | AES-CTR | 
| 0x03 | - | 
| 0x04 | - | 
| 0x10 | DES-ECB | 
| 0x11 | DES-CBC | 
| 0x20 | TDES-ECB | 
| 0x21 | TDES-CBC | 
| 0x40 | SHA-1 | 
| 0x41 | SHA-224 | 
| 0x42 | SHA-256 | 
| 0x43 | SHA-384 | 
| 0x44 | SHA-512 | 
| 0x45 | MD5 | 
| 0x46 | HMAC-SHA-1 | 
| 0x47 | HMAC-SHA-256 | 
| 0x50 | TRNG | 
AES-ECB 描述符
| 字段 | 位域 | 描述 | 
|---|---|---|
| Algorithm config | 31:24 | - | 
| 23:20 | Key size,密钥大小 
 | |
| 19:16 | 密钥源的选择 
 | |
| 15:9 | - | |
| 8 | Direction,运算方向 
 | |
| 7:0 | Algorithm tag: AES-ECB 具体参考 算法标记值列表。 | |
| Key address | 31:0 | 密钥地址 仅当密钥源类型为 RAM 时配置。 地址应是 RAM 或 Secure SRAM 的地址 | 
| Reserved | 28 Bytes | - | 
AES-CBC 描述符
| 字段 | 位域 | 描述 | 
|---|---|---|
| Algorithm config | 31:24 | - | 
| 23:20 | Key size,密钥大小 
 | |
| 19:16 | 密钥源的选择 
 | |
| 15:9 | - | |
| 8 | Direction,运算方向 
 | |
| 7:0 | Algorithm tag: AES-CBC 具体参考 算法标记值列表。 | |
| Key address | 31:0 | 密钥地址 仅当密钥源类型为 RAM 时配置。 地址应是 RAM 或 Secure SRAM 的地址 | 
| IV address | 31:0 | 初始化向量地址 地址应是 RAM 的地址。 地址应 8 字节对齐。 | 
| Reserved | 24 Bytes | - | 
AES-CTR 描述符
| 字段 | 位域 | 描述 | 
|---|---|---|
| Algorithm config | 31:24 | - | 
| 23:20 | Key size,密钥大小 
 | |
| 19:16 | 密钥源的选择 
 | |
| 15:9 | - | |
| 8 | Direction,运算方向 
 | |
| 7:0 | Algorithm tag: AES-CTR 具体参考 算法标记值列表。 | |
| Key address | 31:0 | 密钥地址 仅当密钥源类型为 RAM 时配置。 地址应是 RAM 或 Secure SRAM 的地址 | 
| Counter input | 31:0 | 初始化计数值地址 地址应是 RAM 的地址。 地址应 8 字节对齐。 | 
| Counter output | 31:0 | 计数值输出地址 地址应是 RAM 的地址。 地址应 8 字节对齐。 输出下一个数据块的计数值。 | 
| Reserved | 20 Bytes | - | 
DES-ECB 描述符
| 字段 | 位域 | 描述 | 
|---|---|---|
| Algorithm config | 31:24 | - | 
| 23:20 | Key size,密钥大小 
 | |
| 19:16 | 密钥源的选择 
 | |
| 15:9 | - | |
| 8 | Direction,运算方向 
 | |
| 7:0 | Algorithm tag: DES-ECB 具体参考 算法标记值列表。 | |
| Key address | 31:0 | 密钥地址 仅当密钥源类型为 RAM 时配置。 地址应是 RAM 或 Secure SRAM 的地址 | 
| Reserved | 28 Bytes | - | 
DES-CBC 描述符
| 字段 | 位域 | 描述 | 
|---|---|---|
| Algorithm config | 31:24 | - | 
| 23:20 | Key size,密钥大小 
 | |
| 19:16 | 密钥源的选择 
 | |
| 15:9 | - | |
| 8 | Direction,运算方向 
 | |
| 7:0 | Algorithm tag: DES-CBC 具体参考 算法标记值列表。 | |
| Key address | 31:0 | 密钥地址 仅当密钥源类型为 RAM 时配置。 地址应是 RAM 或 Secure SRAM 的地址 | 
| IV address | 31:0 | 初始化向量地址 地址应是 RAM 的地址。 地址应 8 字节对齐。 | 
| Reserved | 24 Bytes | - | 
TDES-ECB 描述符
| 字段 | 位域 | 描述 | 
|---|---|---|
| Algorithm config | 31:24 | - | 
| 23:20 | Key size,密钥大小 
 | |
| 19:16 | 密钥源的选择 
 | |
| 15:9 | - | |
| 8 | Direction,运算方向 
 | |
| 7:0 | Algorithm tag: TDES-ECB 具体参考 算法标记值列表。 | |
| Key address | 31:0 | 密钥地址 仅当密钥源类型为 RAM 时配置。 地址应是 RAM 或 Secure SRAM 的地址 | 
| Reserved | 28 Bytes | - | 
TDES-CBC 描述符
| 字段 | 位域 | 描述 | 
|---|---|---|
| Algorithm config | 31:24 | - | 
| 23:20 | Key size,密钥大小 
 | |
| 19:16 | 密钥源的选择 
 | |
| 15:9 | - | |
| 8 | Direction,运算方向 
 | |
| 7:0 | Algorithm tag: TDES-CBC 具体参考 算法标记值列表。 | |
| Key address | 31:0 | 密钥地址 仅当密钥源类型为 RAM 时配置。 地址应是 RAM 或 Secure SRAM 的地址 | 
| IV address | 31:0 | 初始化向量地址 地址应是 RAM 的地址。 地址应 8 字节对齐。 | 
| Reserved | 24 Bytes | - | 
Message Digest 描述符
| 字段 | 位域 | 描述 | 
|---|---|---|
| Algorithm config | 31:12 | - | 
| 11 | Input IV Flag,初始化向量标记 
 | |
| 10:8 | - | |
| 7:0 | Algorithm tag 具体参考 算法标记值列表。 | |
| Key address | 31:0 | 密钥地址 仅当密钥源类型为 RAM 时配置。 地址应是 RAM 或 Secure SRAM 的地址 仅 HMAC 算法需要配置,为任意长度数据。 | 
| IV address | 31:0 | 初始化向量地址 (Input IV Flag 为 1 时) 地址应是 RAM 的地址。 地址应 8 字节对齐。 初始化向量的长度,应参考对应算法的规定。 | 
| Reserved | 24 Bytes | - | 
TRNG 描述符
| 字段 | 位域 | 描述 | 
|---|---|---|
| Algorithm config | 31:8 | - | 
| 7:0 | Algorithm tag: TRNG 具体参考 算法标记值列表。 | |
| Reserved | 32 Bytes | - | 
