---
title: initTeeCtx
description: "将配置好的dgCfg中的通信回调和节点信息注册到KCAL中，初始化KCAL上下文信息。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengcctrustzone/tee/kcal/kunpeng_kcal_16_0036.html
sourcePath: /source/zh/kunpengcctrustzone/tee/kcal/kunpeng_kcal_16_0036.html
indexId: dd9bed2dd2a8a72da7006018d31710af34b14e1c356cc397a03599c1dfe0cc5064
---
# initTeeCtx

将配置好的dgCfg中的通信回调和节点信息注册到KCAL中，初始化KCAL上下文信息。

```
int initTeeCtx(
DG_Cfg dgCfg,
DG_TeeCtx **dgTeeCtx
)
```

#### 参数

| 参数名 | 描述 | 取值范围 | 输入/输出 |
| --- | --- | --- | --- |
| dgCfg | KCAL的配置信息 | 依赖DataGuard操作集设置类接口设置好的dgCfg | 输入 |
| dgTeeCtx | KCAL的上下文信息 | 一级指针为空，二级指针不为空 | 输出 |


#### 返回值

- 成功：返回0。
- 失败：返回错误码。


#### 错误码

| 错误码 | 错误码值 | 描述 | 特殊说明 |
| --- | --- | --- | --- |
| DG\_SUCCESS | 0 | 成功 | \- |
| DG\_ERR\_MPC\_TEE\_INVALID\_PARAM | 4501 | 参数校验失败 | dgCfg为NULL或dgTeeCtx二级指针为空 |
| DG\_ERR\_MPC\_TEE\_NODEID\_NOT\_SET | 4506 | nodeId未设置 | 需要各个节点设置自己的节点信息 |
| DG\_ERR\_MPC\_TEE\_NET\_API\_CALLBACK\_NOT\_SET | 4507 | 网络发送或接收函数未注册 | 通信提供回调由产品注册 |
| DG\_ERR\_MPC\_TEE\_FXP\_BITS\_NOT\_SET | 4509 | 小数精度位数未设置 | \- |
| DG\_ERR\_MPC\_TEE\_INVALID\_ENVIRONMENT | 4511 | 无效的CPUID或CVM环境 | 只能在CPUID为920和920新型号的鲲鹏服务器上运行密态计算功能 |


#### 依赖

- dgCfg依赖  DataGuard操作集设置类接口
设置KCAL配置信息成功，用设定好的dgCfg作为此接口的入参。
- pirOpts依赖  DG_InitPirOpts
的成功初始化PIR类算子函数组。
- 依赖的头文件为"data_guard_mpc.h"。


#### 示例

```
#include  "data_guard_mpc.h"
struct DG_TeeCtx *dgTee = NULL;
// 其中pirOpts为调用DG_InitPirOpts成功后的结果，teeCfg为DataGuard操作集设置类接口设置KCAL配置信息后的结果。
int rv = pirOpts.initTeeCtx(teeCfg, &dgTee);
if (rv != 0) {
return rv;
}
```

运行结果：rv为0。

使用调用DG_InitPirOpts成功后的pirOpts来调用initTeeCtx接口。
