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

revealShare

用于还原最终的计算结果。

int revealShare ( 
	DG_TeeCtx *dgTeeCtx,
        DG_MpcShare *share,
        DG_TeeMpcOutput **output
)

参数

表1 参数说明

参数名

描述

取值范围

输入/输出

dgTeeCtx

KCAL上下文信息

initTeeCtx成功初始化的结果

输入

share

调用makeShare后的结果,类型为DG_MpcShare请参见makeShare

不能为NULL

输入

output

最终的计算结果

类型为DG_TeeOutput

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

输出

DG_TeeOutput与DG_TeeInput类型一致。

表2 DG_TeeOutput参数说明

名称

类型

说明

data

DG_MpcDataUnion

输入数据strings的类型为DG_MpcDataUnion联合体

size

int

数据量

dataType

DG_MpcDataType

数据类型枚举有:

MPC_INT(密态比较)

MPC_DOUBLE(密态加法、密态减法、密态最大值、密态最小值、密态乘法、密态除法、密态求均值、密态求和、密态排序)

表3 DG_MpcDataUnion联合体

名称

类型

说明

strings

DG_String

字符串数组类型

u64Numbers

u64

u64数组

doubleNumbers

double

double数组

返回值

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

错误码

表4 错误码

错误码

错误码值

描述

特殊说明

DG_ERR_MPC_TEE_INVALID_PARAM

4501

参数校验失败

dgTeeCtx为null

share为null

share的size为0

output二级指针为null

DG_ERR_MPC_NET_SEND_FAIL

4012

通信发送失败

-

DG_ERR_MPC_RECV_DATA_FAIL

4015

接收序列化数据失败

-

依赖

  • 依赖initTeeCtx成功初始化的dgTeeCtx。
  • 依赖的头文件为 #include "data_guard_mpc.h"。

示例

#include  "data_guard_mpc.h" 
// output不为null
DG_MpcShare *share_out = nullptr;
res = aritOpts.revealShare(dgTee, share_out, &output);

计算结果:res结果为0

output中结果时需要根据DG_MpcDataType中的对应的类型取data中对应的数据。类型为MPC_INT时数据取output中data的u64Numbers;类型为MPC_DOUBLE时取output中data的doubleNumbers;类型为MPC_STRING时取output中data的strings。