鲲鹏社区首页
中文
注册
开发者
我要评分
获取效率
正确性
完整性
易理解
在线提单
论坛求助

initTeeCtx

初始化dgTeeCtx。

int initTeeCtx ( 
    DG_Cfg dgCfg, 
    DG_TeeCtx **dgTeeCtx
   )

参数

表1 参数说明

参数名

描述

取值范围

输入/输出

dgCfg

KCAL的配置信息类型为void*

不为空,已初始化过

输入

dgTeeCtx

KCAL的上下文信息为DG_TeeCtx**

一级指针为空,二级指针不为空

输出

表2 dgTeeCtx结构体

名称

类型

说明

TeeNodeInfos

结构体指针

TeeNodeInfos*节点信息。

teeNetRes

结构体指针

TEE_NET_RES*传入通信接口。

nodeIndex

Int

节点序号,在TeeNodeInfos中的序号。

seedInfoList

结构体

SeedInfoList协商的种子信息。

threadCount

Int

线程个数。

fxpBits

int

标识小数精度。

serverSeed

Data128

PIR协议中server保存种子。

maxPaddingLen

Unsigned long

PIR协议中Server做最大padding的长度,用来处理NULL情况。

返回值

  • 成功:返回0。
  • 失败:返回错误码。

错误码

表3 错误码

错误码

错误码值

描述

特殊说明

DG_ERR_MPC_TEE_INVALID_CPUID

4511

无效的cpuid

cpuid不为鲲鹏920或鲲鹏920新型号处理器

DG_ERR_MPC_TEE_INVALID_PARAM

4501

无效参数

入参为空,或入参的一级指针为空

DG_ERR_MPC_TEE_NET_API_CALLBACK_NOT_SET

4507

网络发送、接收函数未注册

-

DG_ERR_MPC_TEE_NODEID_NOT_SET

4506

nodeId未设置

-

DG_ERR_MPC_TEE_FXP_BITS_NOT_SET

4509

小数精度位数未设置

-

依赖

依赖的头文件为 #include "data_guard_mpc.h"。

示例

#include  "data_guard_mpc.h" 
// 假设 teeCfg 已初始化好
DG_Arithmetic_Opts aritOpts = DG_InitArithmeticOpts();
struct DG_TeeCtx *dgTee = nullptr;
int rv = aritOpts.initTeeCtx(teeCfg, &dgTee);
if (rv != 0) {
     printf("tee init error.-%d\n", rv);
     return rv;
}

运行结果:rv为0

调用DG_Arithmetic_Opts成功后的aritOpts来调用initTeeCtx接口