calculateByFile
调用隐私求交非平衡PSI类算子,实现两方隐私非平衡求交功能,目前支持双方输入字符串类型的数据集,返回结果为双方的字符串数据交集或交集的下标。
int calculateByFile (
DG_TeeCtx *dgTeeCtx,
DG_AlgorithmsType type,
DG_MpcFileInput *input,
DG_MpcFileOutput *output
)
参数
参数名 |
描述 |
取值范围 |
输入/输出 |
|---|---|---|---|
dgTeeCtx |
KCAL上下文信息 |
为initTeeCtx成功初始化的结果 |
输入 |
type |
算子枚举 DG_AlgorithmsType |
目前仅支持PSI_UB |
输入 |
input |
DG_MpcFileInput |
不能输入为NULL |
输入 |
output |
计算结果 类型为:DG_MpcFileOutput |
不能输入为NULL |
输出 |
名称 |
类型 |
说明 |
|---|---|---|
filePath |
char* |
文件路径 |
pathLen |
uint32_t |
路径长度 |
dataSize |
uint64_t |
数据大小 |
名称 |
类型 |
说明 |
|---|---|---|
filePath |
char* |
文件路径 |
pathLen |
uint32_t |
路径长度 |
dataSize |
uint64_t |
数据大小 |
返回值
- 成功:返回0。
- 失败:返回错误码。
错误码
错误码 |
错误码值 |
描述 |
特殊说明 |
|---|---|---|---|
DG_ERR_MPC_TEE_INVALID_PARAM |
4501 |
无效参数 |
- |
DG_ERR_MPC_TEE_INVALID_ALGORITHM_TYPE |
4502 |
无效算法类型 |
- |
DG_ERR_MALLOC_FAIL |
51 |
内存分配失败 |
- |
DG_ERR_MPC_TEE_DIV_IS_ZERO |
4512 |
除0异常 |
- |
DG_FAILURE |
1 |
算子执行失败 |
参数校验失败 分片失败 接收对方数据失败 |
依赖
- dgTeeCtx依赖initTeeCtx的成功初始化。
- 依赖的头文件为"data_guard_mpc.h"。
示例
使用调用DG_InitPsiOpts成功后的teeOpts来调用calculateByFile接口。
#include "data_guard_mpc.h"
int PsiUb::Run(const std::string &inputFilePath, const std::string &outputFilePath, int &outputCount)
{
DG_MpcFileInput teeFileInput;
teeFileInput.filePath = const_cast<char *>(inputFilePath.c_str());
teeFileInput.pathLen = static_cast<uint32_t>(inputFilePath.length());
DG_MpcFileOutput teeFileOutput;
teeFileOutput.filePath = const_cast<char *>(outputFilePath.c_str());
teeFileOutput.pathLen = static_cast<uint32_t>(outputFilePath.length());
teeFileOutput.dataSize = 0;
int res = opts_->calculateByFile(dgTeeCtx_, PSI_UB, &teeFileInput, &teeFileOutput);
outputCount = static_cast<int>(teeFileOutput.dataSize);
return res;
}
运行结果: res结果为0且output不为null。
父主题: 隐私求交PSI类算子