revealShare
用于还原最终的计算结果。
int revealShare(
DG_TeeCtx *dgTeeCtx,
DG_MpcMatShare *share,
DG_TeeMatOutput **output
)
参数
参数名 |
描述 |
取值范围 |
输入/输出 |
|---|---|---|---|
dgTeeCtx |
KCAL上下文信息 |
为initTeeCtx成功初始化的结果 |
输入 |
share |
调用calculate后的结果 类型为DG_MpcMatShare可参见negotiateSeeds |
不能为NULL |
输入 |
output |
最终的计算结果 类型为DG_TeeMatOutput |
一级指针为NULL,二级指针不为NULL |
输出 |
名称 |
类型 |
说明 |
|---|---|---|
data |
DG_MpcDataUnion |
输入数据strings的类型为DG_String *,doubleNumbers为double *, u64Numbers类型为u64 * |
row |
uint32_t |
矩阵行数 |
col |
uint32_t |
矩阵列数 |
dataType |
DG_MpcDataType |
数据类型枚举有: 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 |
接收序列化数据失败 |
- |
依赖
- dgTeeCtx依赖initTeeCtx的成功初始化。
- 依赖的头文件为 #include "data_guard_mpc.h"。
示例
#include "data_guard_mpc.h" // output不为null DG_MpcMatShare *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。
- 依赖的头文件为 #include "data_guard_mpc.h"。
父主题: 矩阵算术类算子调用