Skip to content

微软的全同态加密算法的源码编译流程 By backtrack

小傅哥 edited this page Apr 21, 2020 · 3 revisions

MS SEAL - MACOX 10.15.4 编译

GitHub 地址

https://github.com/microsoft/SEAL

编译流程

  1. 下载源码

    1.	git clone https://github.com/microsoft/SEAL
    2.	git checkout 3.4.5
  2. Mac 编译准备

    1. 	安装 Xcode 最新版
    2. 	安装 cmake  -> brew install cmake
    3. 	验证 cmake(>=3.12) 和 g++(>=6.0) 或者 clang++(>=5/0) 版本,Mac Xcode toolchain(>=9.3)
    	-	cmake -version 		=> 	cmake version 3.17.0
    	-	clang++ --version  	=>	Apple clang version 11.0.3 (clang-1103.0.32.29)
  3. 编译主程序

    cd native/src
    mkdir build
    cd build
    cmake ..
    make
    cd ../../..

    编译完成

    [ 97%] Building CXX object CMakeFiles/seal.dir/seal/util/ztools.cpp.o
    [100%] Linking CXX static library /Users/Tao/tao/getui/lab/SEAL/native/lib/libseal-3.4.a
    [100%] Built target seal
  4. 编译测试用例

    cd native/examples
    mkdir build
    cd build
    cmake ..
    make
    cd ../../..
  5. 编译单元测试

    git submodule update --init
    cd native/tests
    mkdir build
    cd build
    cmake ..
    make
    cd ../../..
  6. 运行单元测试

    native/bin/sealtest

    测试结果

    [----------] Global test environment tear-down
    [==========] 239 tests from 39 test suites ran. (2248 ms total)
    [  PASSED  ] 239 tests.
  7. 运行测试代码

    native/bin/sealexamples

    运行结果

    Microsoft SEAL version: 3.4.5
    +---------------------------------------------------------+
    | The following examples should be executed while reading |
    | comments in associated files in native/examples/.       |
    +---------------------------------------------------------+
    | Examples                   | Source Files               |
    +----------------------------+----------------------------+
    | 1. BFV Basics              | 1_bfv_basics.cpp           |
    | 2. Encoders                | 2_encoders.cpp             |
    | 3. Levels                  | 3_levels.cpp               |
    | 4. CKKS Basics             | 4_ckks_basics.cpp          |
    | 5. Rotation                | 5_rotation.cpp             |
    | 6. Performance Test        | 6_performance.cpp          |
    +----------------------------+----------------------------+
    [      0 MB] Total allocation from the memory pool
    
    > Run example (1 ~ 6) or exit (0): 1

问题处理

  1. error: unknown type name 'uint8_t'

    ref => https://stackoverflow.com/questions/46872922/broken-c-std-libraries-on-macos-high-sierra-10-13

    resolved =>

    • environment

       # C++
       export CPLUS_INCLUDE_PATH="/usr/local/include:${CPLUS_INCLUDE_PATH}"
       export CPLUS_INCLUDE_PATH="${HOME}/workplace/third-party/utfcpp/source:${CPLUS_INCLUDE_PATH}"
       export CPLUS_INCLUDE_PATH="${HOME}/workplace/third-party/GSL/include:${CPLUS_INCLUDE_PATH}"
       export CPLUS_INCLUDE_PATH="${HOME}/workplace/third-party/variant/include:${CPLUS_INCLUDE_PATH}"
       # library directory
       export LD_LIBRARY_PATH="/usr/local/lib:${LD_LIBRARY_PATH}"
    • remove old c/c++ header

       sudo mv  /usr/local/include /usr/local/include_old

📝 首页

🌏 知识星球码农会锁

实战项目:「DDD+RPC分布式抽奖系统」、专属小册、问题解答、简历指导、架构图稿、视频课程

🐲 头条

⛳ 目录

  1. 源码 - :octocat: 公众号:bugstack虫洞栈 文章所涉及到的全部开源代码
  2. Java
  3. Spring
  4. 面向对象
  5. 中间件
  6. Netty 4.x
  7. 字节码编程
  8. 💯实战项目
  9. 部署 Dev-Ops
  10. 📚PDF 下载
  11. 关于

💋 精选

🐾 友链

建立本开源项目的初衷是基于个人学习与工作中对 Java 相关技术栈的总结记录,在这里也希望能帮助一些在学习 Java 过程中遇到问题的小伙伴,如果您需要转载本仓库的一些文章到自己的博客,请按照以下格式注明出处,谢谢合作。

作者:小傅哥
链接:https://bugstack.cn
来源:bugstack虫洞栈

2021年10月24日,小傅哥 的文章全部开源到代码库 CodeGuide 中,与同好同行,一起进步,共同维护。

这里我提供 3 种方式:

  1. 提出 Issue :在 Issue 中指出你觉得需要改进/完善的地方(能够独立解决的话,可以在提出 Issue 后再提交 PR )。
  2. 处理 Issue : 帮忙处理一些待处理的 Issue
  3. 提交 PR: 对于错别字/笔误这类问题可以直接提交PR,无需提交Issue 确认。

详细参考:CodeGuide 贡献指南 - 非常感谢你的支持,这里会留下你的足迹

  • 加群交流 本群的宗旨是给大家提供一个良好的技术学习交流平台,所以杜绝一切广告!由于微信群人满 100 之后无法加入,请扫描下方二维码先添加作者 “小傅哥” 微信(fustack),备注:加群。
微信:fustack

  • 公众号(bugstack虫洞栈) - 沉淀、分享、成长,专注于原创专题案例,以最易学习编程的方式分享知识,让自己和他人都能有所收获。
公众号:bugstack虫洞栈

感谢以下人员对本仓库做出的贡献或者对小傅哥的赞赏,当然不仅仅只有这些贡献者,这里就不一一列举了。如果你希望被添加到这个名单中,并且提交过 Issue 或者 PR,请与我联系。

Clone this wiki locally