revealShare
用于还原最终的计算结果。
int revealShare (
DG_TeeCtx *dgTeeCtx,
DG_MpcShare *share,
DG_TeeMpcOutput **output
)
参数
参数名 |
描述 |
取值范围 |
输入/输出 |
|---|---|---|---|
dgTeeCtx |
KCAL上下文信息 |
为initTeeCtx成功初始化的结果 |
输入 |
share |
调用makeShare后的结果,类型为DG_MpcShare请参见makeShare。 |
不能为NULL |
输入 |
output |
最终的计算结果 类型为DG_TeeOutput |
一级指针为NULL,二级指针不为NULL |
输出 |
DG_TeeOutput与DG_TeeInput类型一致。
名称 |
类型 |
说明 |
|---|---|---|
data |
DG_MpcDataUnion |
输入数据strings的类型为DG_MpcDataUnion联合体 |
size |
int |
数据量 |
dataType |
DG_MpcDataType |
数据类型枚举有: MPC_INT(密态比较) MPC_DOUBLE(密态加法、密态减法、密态最大值、密态最小值、密态乘法、密态除法、密态求均值、密态求和、密态排序) |
名称 |
类型 |
说明 |
|---|---|---|
strings |
DG_String |
字符串数组类型 |
u64Numbers |
u64 |
u64数组 |
doubleNumbers |
double |
double数组 |
返回值
- 成功:返回0。
- 失败:返回错误码。
错误码
错误码 |
错误码值 |
描述 |
特殊说明 |
|---|---|---|---|
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。