---
title: revealShare
description: "用于还原最终的计算结果。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengcctrustzone/tee/kcal/kunpeng_kcal_16_0024.html
sourcePath: /source/zh/kunpengcctrustzone/tee/kcal/kunpeng_kcal_16_0024.html
indexId: 39bd55d405fc8042d298786bbf722057911fc544fc6467ce78974195f8aa272964
---
# 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 | 数据data的类型为DG\_MpcDataUnion联合体 |
| size | int | 数据量 |
| dataType | DG\_MpcDataType | 数据类型枚举有： MPC\_INT（密态比较） MPC\_DOUBLE（密态加法、密态减法、密态最大值、密态最小值、密态乘法、密态除法、密态求均值、密态求和、密态排序） MPC\_STRING（密态求交、密态求并、密态检索） |


**表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。
- 依赖的头文件为"data_guard_mpc.h"。


#### 示例

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


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

计算结果：res结果为0。
