这些国外大佬的代码没有一个能顺利跑下来的,可能随着依赖库的更新,源码也需要随之更改。
第一步 OPPRF-PSI依赖环境需要自行配置
在Ubuntu 20中可以完成,更低的版本我没有尝试
关于这些环境的配置这里就不做赘述了,下面是我在跑OPPRF中遇到的各种坑
第二步 克隆OPPRF-PSI库
https://github.com/encryptogroup/OPPRF-PSI.git --recursive
–recursive 是循环下载extern中的依赖库,克隆完成后一定要检查extern中的库是否完整,比如ABY,进入ABY文件夹检查ABY所依赖的extern中的库是不是也下载完毕。因为网络问题,可能下载会出现失败,哪个库失败重新下载哪个库就行。
第三步 开始配置OPPRF-PSI
- 进入OPPRF-PSI
cd OPPRF-PSI
- 创建build文件夹并进入
mkdir build && cd build
- 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进行自己安装配置。 - 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就可以了
可以还会有其他小伙伴遇到各种报错,咱们评论区探讨