release
释放DataGuard配置信息。
int release (
DG_Cfg *config
)
参数
参数名 |
描述 |
取值范围 |
输入/输出 |
|---|---|---|---|
config |
初始化配置信息 |
输入的为初始化成功的配置信息 |
输入 |
返回值
成功:返回0。
依赖
#include "data_guard_config.h" :该接口声明所在的头文件。
示例
#include "data_guard_config.h" #include "data_guard_mpc.h" // 此opts为DG_InitConfigOpts的结果,teeCfg为init成功的结果 int res = opts->release(&teeCfg);
运行结果:res为0
设置KCAL的配置信息的整体示例为:
#include "data_guard_config.h"
#include "data_guard_mpc.h"
DG_ConfigOpts *opts = NULL;
int rv = DG_InitConfigOpts(DG_BusinessType::MPC, &opts);
if (rv != 0) {
printf("DG_InitConfigOpts error!code:%d\n", rv);
return rv;
}
void *teeCfg = NULL;
rv = opts->init(&teeCfg);
if (rv != 0) {
printf(" opts->init(dgCfg)!-%d\n", rv);
return rv;
}
rv = opts->setIntValue(teeCfg, DG_CON_MPC_TEE_INT_NODEID, nodeId);
if (rv != 0) {
printf(" opts-> setIntValue(dgCfg)!-%d\n", rv);
return rv;
}
rv = opts->setIntValue(teeCfg, DG_CON_MPC_TEE_INT_FXP_BITS, 2);
if (rv != 0) {
printf(" opts-> setIntValue(dgCfg)!-%d\n", rv);
return rv;
}
rv = opts->setIntValue(teeCfg, DG_CON_MPC_TEE_INT_THREAD_COUNT, 16);
if (rv != 0) {
printf(" opts-> setIntValue(dgCfg)!-%d\n", rv);
return rv;
}
//国密标志:0-非国密;1-国密
rv = opts->setIntValue(teeCfg, DG_CON_MPC_TEE_INT_IS_SM_ALGORITHM, 1);
if (rv != 0) {
printf(" opts-> setIntValue(dgCfg)!-%d\n", rv);
return rv;
}
// SendData和RecvData为产品实现
TEE_NET_RES teeNet = {SendData, RecvData};
DG_Void netFunc;
netFunc.data = &teeNet;
netFunc.size = sizeof(TEE_NET_RES);
rv = opts->setVoidValue(teeCfg, DG_CON_MPC_TEE_VOID_NET_API, &netFunc);
if (rv != 0) {
printf(" opts-> setVoidValue(dgCfg)!-%d\n", rv);
return rv;
}
// 业务全部结束后释放
DG_ReleaseConfigOpts(&opts);
运行结果:rv中都为0
调用DG_InitConfigOpts成功后的opts来调用release接口。
父主题: DataGuard操作集设置类接口