Charm-crypto库安装记录
Charm-crypto简介
Charm-crypto 是一个框架,用于快速原型设计先进的密码系统。基于Python语言,它是从头设计的,减少开发时间和代码的复杂性,同时促进组件的重用。它支持基础密码库,包括对称加密方案,散列函数,PRNGs、数字签名、加密等。
安装过程
- 打开charm库的网址,https://pypi.org/project/charm-crypto/0.43/,按照上面指示输入命令:
pip install charm-crypto==0.43
然而不出所料,安装出错,显示如下:
安装charm报错
可以看到其中有一句:fatal error:gmp.h:No such file or directory。分析应该是缺少了某个库。继续阅读charm库的网址,发现需要依赖GMP库和PBC库。
- 安装GMP库:打开GMP库网址https://gmplib.org/#DOWNLOAD,选择GMP压缩文件下载,这里我选择了gmp-6.1.2.tar.bz2文件下载,下载完成后,解压,输入命令:
tar -jxvf gmp-6.1.2.tar.bz2
解压得到gmp文件夹,之后进入文件夹,首先需要检查编译环境,输入命令:
./configure
configure中,发现报错提示:
...
checking whether sscanf needs writable input... no
checking for struct pst_processor.psp_iticksperclktick... no
checking for suitable m4... configure: error: No usable m4 in $PATH or /usr/5bin (see config.log for reasons).
提示缺少m4库,继续安装m4库:
sudo apt-get install m4
继续configure,没有报错,接着输入命令make和make install即可成功安装GMP库,接着进入/usr/local/lib查看是否安装成功,结果在/usr/local/lib下:
libgmp.a libgmp.la libgmp.so libgmp.so.10 libgmp.so.10.3.2
显示有gmp的共享库,可以认为GMP库安装成功。
- 安装PBC库:打开PBC库的网址,https://crypto.stanford.edu/pbc/download.html,下载文件pbc-0.5.14.tar.gz,之后解压,解压命令:
tar -zxvf pbc-0.5.14.tar.gz
进入解压后的文件夹,与GMP一样,首先检查编译环境,输入命令./configure,结果报错:
...
checking how to run the C preprocessor... gcc -E
checking whether ln -s works... yes
checking whether make sets $(MAKE)... (cached) yes
checking for flex... no
checking for lex... no
************************
flex not found
************************
提示缺少flex库,继续安装flex库:
sudo apt-get install flex
安装成功后,继续configure,结果报错:
checking whether yytext is a pointer... yes
checking for bison... no
checking for byacc... no
************************
bison not found
提示缺少bison库,继续安装bison库:
sudo apt-get install bison
安装成功后,继续configure,接着输入make,make install即可安装,接着进入/usr/local/lib查看安装情况:
libgmp.a libgmp.la libgmp.so libgmp.so.10 libgmp.so.10.3.2 libpbc.a libpbc.la libpbc.so libpbc.so.1 libpbc.so.1.0.0
文件夹存在pbc的共享库,可以认为pbc正确安装。
- 在安装好GMP和PBC库的情况下,再安装charm,依然报错:
In file included from charm/core/math/pairing/pairingmodule.c:30:0:
charm/core/math/pairing/pairingmodule.h:44:29: fatal error: openssl/objects.h: No such file or directory
compilation terminated.
error: command 'gcc' failed with exit status 1
显示缺少openssl/objects.h文件。在网上查找原因,https://blog.csdn.net/shakeme/article/details/80911441,按照网页说明输入命令:
sudo apt-get install libssl-dev
再次安装输入pip install charm-crypto==0.43没有报错即可。若还报错,输入:
sudo apt-get install libssl1.0-dev
验证安装成功与否
打开python,输入:
import charm
没有报错即可。