开发者
资源

dcmi_get_attest_cert接口原型

函数原型

int dcmi_get_attest_cert(int card_id, int device_id, unsigned char *ak_cert, unsigned int *ak_cert_len)

功能说明

获取设备的IAK(Initial Attestation Key)证书以及证书长度。

参数说明

参数名称

输入/输出

类型

描述

card_id

输入

int

设备ID,当前实际支持的ID通过dcmi_get_card_num_list接口获取。

device_id

输入

int

芯片ID,通过dcmi_get_device_id_in_card接口获取。取值范围如下:

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

ak_cert

输出

unsigned char *

返回IAK证书,证书长度最大为2KB。

ak_cert_len

输入/输出

unsigned int *

输入用户分配的空间大小,返回真实数据的长度。

返回值说明

类型

描述

int

处理结果:

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

异常处理

无。

约束说明

表1 不同部署场景下的支持情况

物理机场景(裸机)

物理机+普通容器场景

root用户

运行用户组(非root用户)

root用户

N

N

N

注:Y表示支持;N表示不支持;NA表示不涉及,当前未规划此场景。

调用示例

…   
int ret;
int card_id = 0;
int device_id = 0;
unsigned char ak_cert[65536] = {0};
unsigned int ak_cert_len = sizeof(ak_cert);
ret = dcmi_init();
if (ret != 0) {
    printf("dcmi_init failed, ret = %d\n", ret);
    return ret;
}
ret = dcmi_get_attest_cert(card_id, device_id, ak_cert, &ak_cert_len);
if (ret != 0) {
    printf("dcmi_get_attest_cert failed, ret = %d\n", ret);
    return ret;
}
…