配置OPPRF-PSI密码学协议

288 阅读1分钟

这些国外大佬的代码没有一个能顺利跑下来的,可能随着依赖库的更新,源码也需要随之更改。

第一步 OPPRF-PSI依赖环境需要自行配置

在ubuntu18 和Ubuntu 20中都可以完成,更低的版本我没有尝试

在这里插入图片描述 关于这些环境的配置这里就不做赘述了,下面是我在跑OPPRF中遇到的各种坑

第二步 克隆OPPRF-PSI库

https://github.com/encryptogroup/OPPRF-PSI.git --recursive

--recursive 是循环下载extern中的依赖库,克隆完成后一定要检查extern中的库是否完整,比如ABY,进入ABY文件夹检查ABY所依赖的extern中的库是不是也下载完毕。因为网络问题,可能下载会出现失败,哪个库失败重新下载哪个库就行。

第三步 开始配置OPPRF-PSI

  1. 进入OPPRF-PSI cd OPPRF-PSI
  2. 创建build文件夹并进入 mkdir build && cd build
  3. cmake编译 cmake [OPTIONS] -DCMAKE_BUILD_TYPE=[Release|Debug] .. 文档中[OPTIONS]给了两种执行策略 -DPSI_ANALYTICS_BUILD_TESTS=ON to compile tests -DPSI_ANALYTICS_BUILD_EXAMPLE=ON to compile an example with circuit-based threshold checking. 这里我使用了第一种策略,并使用-DCMAKE_BUILD_TYPE=Debug测试 cmake -DPSI_ANALYTICS_BUILD_TESTS=ON -DCMAKE_BUILD_TYPE=Debug .. 报错: 在这里插入图片描述 这里是因为openssl和libssl-dev的错误,可以去网上搜索解决,我的建议是卸载自带openssl从官网下载openssl进行自己安装配置。
  4. make 进行编译
make

报错: 在这里插入图片描述 这是源码中的一个问题,ABY编译时将cmake_constants.h文件放到了OPPRF-PSI/build/extern/ABY/extern/ENCRYPTO_utils/include这个文件夹下,我们将cmake_constants.h文件复制到constants.h同级目录下 在这里插入图片描述 将这里改成

#include "cmake_constants.h"

然后重新make就可以了

可以还会有其他小伙伴遇到各种报错,咱们评论区探讨