下载
中文
注册

dcmi_set_device_sec_revocation接口原型

函数原型

int dcmi_set_device_sec_revocation(int card_id, int device_id, enum dcmi_revo_type input_type, const unsigned char *file_data, unsigned int file_size)

功能说明

实现密钥吊销功能。

参数说明

参数名称

输入/输出

类型

描述

card_id

输入

int

指定NPU管理单元的ID,当前实际支持的ID通过dcmi_get_card_list接口获取。

device_id

输入

int

指定设备编号,通过dcmi_get_device_id_in_card接口获取。取值范围如下:

NPU芯片:[0, device_id_max-1]。

input_type

输入

enum dcmi_revo_type

吊销类型。

enum dcmi_revo_type {

DCMI_REVOCATION_TYPE_SOC = 0, //用于吊销SOC密钥

DCMI_REVOCATION_TYPE_CMS_CRL = 1, //用于MDC CMS CRL文件升级

DCMI_REVOCATION_TYPE_CMS_CRL_EXT = 2, //用于扩展CRL文件升级

DCMI_REVOCATION_TYPE_MAX

};

file_data

输入

const unsigned char *

吊销文件的数据地址。

file_size

输入

unsigned int

吊销文件的数据长度。

返回值

类型

描述

int

处理结果:

  • 成功:返回0。
  • 失败:返回码请参见返回码

异常处理

无。

约束说明

  • 密钥吊销操作是不可逆的过程,吊销操作执行成功后,无法再进行恢复,需要谨慎使用。
  • 该接口在确定需要进行对应的吊销操作时才可以调用,并且需要正确的吊销文件才可以吊销成功,否则,调用该接口返回失败。
  • 执行吊销操作成功后,设备不可用。
    表1 部署场景

    Linux物理机

    Linux物理机容器

    root用户

    运行用户组(非root用户)

    root用户

    N

    N

    N

调用示例

...
#define REVOCATION_FILE_LEN  544
int card_id = 0;
int dev_id = 0;
int ret = 0;
int dev_count = 0;
unsigned char revocation_file_buf[REVOCATION_FILE_LEN] = {0};
unsigned int buf_size = REVOCATION_FILE_LEN;
ret = dcmi_set_device_sec_revocation(card_id, dev_id, DCMI_REVOCATION_TYPE_SOC, (const unsigned char *)revocation_file_buf, buf_size);
if (ret != 0){
    // todo:记录日志
    return ret;
}
...