linux编译charm库


linux编译charm库

在 Windows 的 Linux 子系统 (WSL) 中使用 Ubuntu 编译安装 Charm 库的步骤如下:


基于 WSL 的 Charm 库安装教程

1. 更新系统并安装依赖

应用商店下载linux后执行wsl --update

在 WSL Ubuntu 中,运行以下命令安装必要的编译工具和库:

sudo apt update
sudo apt upgrade -y
sudo apt install -y build-essential python3 python3-dev python3-pip python3-setuptools \
                     libgmp-dev libssl-dev swig libpbc-dev git wget gcc make m4 flex bison

这里的库可以一个一个单独安装,没有就去找源码安装,下面报安装错也能再安装,这里ubuntu版本最好不要太高,openssl我的是3.0.2没问题,gmp最高,openssl,python一般会自带,python我的是python3.10


2. 安装 PBC 库

PBC 是 Charm 的核心依赖之一,需要手动编译安装。

  1. 下载源码:

    PBC Library - Pairing-Based Cryptography - Downloads下载第一个

    wget https://crypto.stanford.edu/pbc/files/pbc-0.5.14.tar.gz
    tar -zxvf pbc-0.5.14.tar.gz
  2. 编译和安装:

    进入解压的目录

    ./configure
    make
    sudo make install
    echo "/usr/local/lib" | sudo tee -a /etc/ld.so.conf.d/libpbc.conf
    sudo ldconfig

3. 下载并安装 Charm 库

  1. 下载源码:

    git clone https://github.com/JHUISI/charm.git
    cd charm
  2. 配置安装路径:

    执行 configure.sh 脚本,指定 GMP 和 PBC 的安装路径:

    ./configure.sh
    
    #执行成功
    Install prefix    /usr/local
    data directory    /usr/local/share/charm
    binary directory  /usr/local/bin
    library directory /usr/local/lib
    config directory  /usr/local/etc
    Source path       /home/hero/charm
    CFLAGS            -O2 -g
    CHARM_CFLAGS       -m64 -Wall -Wundef -Wwrite-strings -Wmissing-prototypes  -fstack-protector-all -Wendif-labels -Wmissing-include-dirs -Wempty-body -Wnested-externs -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -Wold-style-declaration -Wold-style-definition -Wtype-limits
    LDFLAGS           -m64
    make              make
    python            /usr/bin/python3
    python-config     /usr/bin/python3-config
    build_ext options build_ext
    install           install
    host CPU          x86_64
    wget              /usr/bin/wget
    gprof enabled     no
    profiler          no
    static build      no
    -Werror enabled   no
    integer module    yes
    ecc module        yes
    pairing module    yes
    disable benchmark no
    libm found        yes
    libgmp found      yes
    libpbc found      yes
    libcrypto found   yes
    Documentation     no
  3. 编译和安装:

    make
    
    #执行成功
    copying build/lib.linux-x86_64-3.8/charm/core/math/pairing.cpython-38-x86_64-linux-gnu.so -> charm/core/math
    copying build/lib.linux-x86_64-3.8/charm/core/math/integer.cpython-38-x86_64-linux-gnu.so -> charm/core/math
    copying build/lib.linux-x86_64-3.8/charm/core/math/elliptic_curve.cpython-38-x86_64-linux-gnu.so -> charm/core/math
    copying build/lib.linux-x86_64-3.8/charm/core/benchmark.cpython-38-x86_64-linux-gnu.so -> charm/core
    copying build/lib.linux-x86_64-3.8/charm/core/crypto/cryptobase.cpython-38-x86_64-linux-gnu.so -> charm/core/crypto
    copying build/lib.linux-x86_64-3.8/charm/core/crypto/AES.cpython-38-x86_64-linux-gnu.so -> charm/core/crypto
    copying build/lib.linux-x86_64-3.8/charm/core/crypto/DES.cpython-38-x86_64-linux-gnu.so -> charm/core/crypto
    copying build/lib.linux-x86_64-3.8/charm/core/crypto/DES3.cpython-38-x86_64-linux-gnu.so -> charm/core/crypto
    Complete
    
    
    sudo make install
    #执行成功
    Installed /usr/local/lib/python3.8/dist-packages/attrs-25.3.0-py3.8.egg
    Searching for setuptools==45.2.0
    Best match: setuptools 45.2.0
    Adding setuptools 45.2.0 to easy-install.pth file
    Installing easy_install script to /usr/local/bin
    
    Using /usr/lib/python3/dist-packages
    Finished processing dependencies for Charm-Crypto==0.50

    import charm判断安装是否成功


PS:conda环境下会使用conda自带的环境,可能会编译出错,需要禁用,执行命令

mv /root/miniconda3/compiler_compat /root/miniconda3/compiler_compat.bak

后面直接改回就行了

报错就看报错信息,可以参考官方Platform Install Manual — Charm-Crypto 0.50 documentation


文章作者: 0xdadream
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 0xdadream !
评论
  目录