macOS 下 Charm-Crypto 的安装
更新于:2022-11-10 标签:macOSCharm-Crypto密码学
密码学方向硕士,做实验需要用Charm
来实现一些密码学算法。Charm
是基于Python
的密码学开发框架,用于快速原型设计先进的密码系统。常用的基础密码库基本都有支持,包括对称加密、消息摘要、数字签名等。
由于我的 PD 虚拟机在新系统下各种崩溃,在Ubuntu
下操作太费劲了,故尝试在macOS 13
系统下进行了安装,踩了一些坑后最终安装成功。
准备
- Python 3.7
- gmp-6.2.1
- pbc-0.5.14
- Charm 0.50
说明
Python
经过测试,Python
一定要选用 3.7 或以下版本。否则安装后有无法引用 modules 的问题,也通过过不了make test
验证。 如果正在使用 3.8 或以上版本,可以通过以下命令更改默认python3
版本。
$ rm /usr/local/bin/python3
$ sudo rm -rf /usr/local/Cellar/python@3.9/3.9.15
$ brew install python@3.7
$ ln -s /usr/local/Cellar/python@3.7/3.7.15/bin/python3.7 /usr/local/bin/python3
GMP
Charm
官网要求使用GMP 5.X
版本作为依赖,但是在尝试安装5.1.3
版本时,make
阶段出现了 error: could not find a working compiler 报错,尝试重新安装 gcc 和 g++ 都没能解决。所以我尝试了使用最新版本的,安装顺利。目前的业务流程也没有受到影响。
PBC
PBC
下载最新版即可
Charm
Charm
最新的版本是 0.50,直接把仓库下载下来使用。不要下载 Release 下的 0.43,否则在编译阶段会报错。
编译安装
GMP
$ tar -xf gmp-6.2.1.tar.xz && cd gmp-6.2.1
$ ./configure --enable-cxx
$ make
$ sudo make install
PBC
$ cd pbc-0.5.14
$ ./configure
$ make
$ sudo make install
Charm
在编译Charm
之前,一定要先指定 CFLAGS 编译参数,否则会出现找不到头文件等问题。运行 configure.sh 之前要加 --enable-darwin 参数。
$ cd pbc-0.5.14
$ export "CFLAGS=-I/usr/local/include -I/usr/local/opt/openssl/include -L/usr/local/lib -L/usr/local/opt/openssl/lib"
$ ./configure.sh --enable-darwin
$ make
$ sudo make install
$ sudo make test # 测试,如果顺利通过,则可以愉快使用了