开发者
资源
文档评分
获取效率
正确性
完整性
易理解
在线提单
论坛求助

release

释放DataGuard配置信息。

int release ( 
    DG_Cfg *config
)

参数

表1 参数说明

参数名

描述

取值范围

输入/输出

config

初始化配置信息

输入为初始化成功的配置信息

输入

返回值

成功:返回0。

依赖

#include "data_guard_config.h" :该接口声明所在的头文件。

示例

使用调用DG_InitConfigOpts成功后的opts来调用release接口。

#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"
// 假设nodeId已在config中初始化完成。 
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(teeCfg)!-%d\n", rv);
    return rv;
}
rv = opts->setIntValue(teeCfg, DG_CON_MPC_TEE_INT_NODEID, nodeId);
if (rv != 0) {
    printf(" opts-> setIntValue(teeCfg)!-%d\n", rv);
    return rv;
}
rv = opts->setIntValue(teeCfg, DG_CON_MPC_TEE_INT_FXP_BITS, 2);
if (rv != 0) {
    printf(" opts-> setIntValue(teeCfg)!-%d\n", rv);
    return rv;
}
rv = opts->setIntValue(teeCfg, DG_CON_MPC_TEE_INT_THREAD_COUNT, 16);
if (rv != 0) {
    printf(" opts-> setIntValue(teeCfg)!-%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(teeCfg)!-%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(teeCfg)!-%d\n", rv);
    return rv;
}
//  业务全部结束后释放。
DG_ReleaseConfigOpts(&opts);

运行结果:rv均为0。