CP-ABE ToolKit 安装笔记(转载)
博主论文狗,好久没有来贴博客,最近做实验需要用到属性加密,了解了下CP-ABE,前来记录一下:
网上相关的博文较多,博主看了大部分的,认为下面这两个看完了基本就可以成功安装。
可参见博文:
http://blog.csdn.net/hlsdbd1990/article/details/48291359
http://blog.csdn.net/huifeideyema/article/details/51695231
(一)相关概念
cp-abe需要用到许多算法库,像M4、bison、flex、gmp、pbc,且cpabe依赖pbc,pbc依赖gmp,gmp依赖M4、bison、flex
M4 :是一个宏处理器.将输入拷贝到输出,同时将宏展开. 宏可以是内嵌的也可以是用户定义的. 除了可以展开宏,m4还有一些内建的函数,用来引用文件,执行Unix命令,整数运算,文本操作,循环等. m4既可以作为编译器的前端也可以单独作为一个宏处理器.M4 依赖于: Bash, Binutils, Coreutils, Diffutils, GCC, Gettext, Glibc, Grep, Make, Perl, Sed等;
bison: Bison实际上是使用最广泛的Yacc-like分析器生成器,使用它可以生成解释器,编译器,协议实现等多种程序.
flex:是一个产生扫描器的工具;能识别文本模式的词句的程序.flex读入给定的文件,或没有文件名给定时的标准输入,即要产生的扫描器的说明.说明按照正规表达式和C代码的格式,叫做规则.flex产生定义了例程'yylex()'的'lex.yy.c'C源码文件,该文件被编译和用'-lfl'标志链接库以产生可执行文件,当可执行文件被运行后,它分析以正规表达式出现的输入.无论何时它找到匹配,都将执行相应的C代码.(bison flex实际上就是用于实现属性加密中访问控制策略)
gmp:GMP是一个任意精度的开源算术库,可用于符号整数,有理数,浮点数计算。
pbc:基于对数运算的算法库
(二)安装
1、安装m4
sudo apt-get install m4
2、安装gmp
http://gmplib.org/ 下载gmplib
./configure
make
make check
sudo make install
3、安装pbc
http://crypto.stanford.edu/pbc/download.html 下载pbc
解压,安装
./configure
出现
flex not found
执行
sudo apt-get install flex
安装成功后继续执行
./configure
出现
bison not found
运行
sudo apt-get install bison
成功后执行
./configure
make
sudo make install
4、安装cpabe toolkit
http://hms.isi.jhu.edu/acsc/cpabe/ 或者 http://acsc.cs.utexas.edu/cpabe/ 下载cpabe-0.11和libbswabe-0.9
安装openSSL
sudo apt-get install libssl-dev
进入libbswabe-0.9解压目录
/configure
报错
checking for GLIB - version >= 2.0.0... no
*** Could not run GLIB test program, checking why...
*** The test program failed to compile or link. See the file config.log for the
*** exact error that occured. This usually means GLIB is incorrectly installed.
执行
sudo apt-get install libglib2.0-dev
安装成功后,执行
./configure
make
sudo make install
进入cpabe-0.11解压目录
./configure
出错
/usr/bin/ld: note: '__gmpz_init' is defined in DSO /usr/local/lib/libgmp.so so try adding it to the linker command line
/usr/local/lib/libgmp.so: could not read symbols: 无效的操作
改为另一种方式编译:
sudo apt-get install checkinstall
修改Makefile,LDFLAGS后加入-lgmp
sudo checkinstall
编译成功~
(三)报错
除了上述报错外,执行checkinstall以后也有可能出现这种错误
gcc -o cpabe-setup setup.o common.o -O3 -Wall -lglib-2.0 -Wl,-rpath /usr/local/lib -lgmp -Wl,-rpath /usr/local/lib -lpbc -lbswabe -lcrypto -lcrypto
/usr/bin/ld: /usr/local/lib/libpbc.so: undefined reference to symbol '__gmpz_init'
/usr/local/lib/libgmp.so: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
Makefile:34: recipe for target 'cpabe-setup' failed
make: *** [cpabe-setup] Error 1</pre></code
或者出现这种错误
policy_lang.y: In function ‘yyparse’:
policy_lang.y:67:38: error: expected ‘;’ before ‘}’ token
result: policy { final_policy = $1 }
***解决方法***
https://ubuntuforums.org/showthread.php?t=2254939
或者http://stackoverflow.com/questions/17373306/error-in-linking-gmp-while-compiling-cpabe-package-from-its-source-code
安装成功以后出现如下界面

图片摘自http://blog.csdn.net/guomutian911/article/details/42558155
CP-ABE ToolKit 安装笔记(转载)的更多相关文章
- CP-ABE ToolKit 安装笔记
博主论文狗,好久没有来贴博客,最近做实验需要用到属性加密,了解了下CP-ABE,前来记录一下: 网上相关的博文较多,博主看了大部分的,认为下面这两个看完了基本就可以成功安装. 可参见博文: http: ...
- [转载]centos 7(1611)安装笔记
centos 7(1611)安装笔记 麻烦 前天我把双系统笔记本里的 deepin 的磁盘分区直接从 Windows 7 磁盘管理里格式化了,结果悲催了,开不了机了,显示: 我以为是 Window ...
- MonoDevelop 4.2.2/Mono 3.4.0 in CentOS 6.5 安装笔记
MonoDevelop 4.2.2/Mono 3.4.0 in CentOS 6.5 安装笔记 说明 以root账户登录Linux操作系统,注意:本文中的所有命令行前面的 #> 表示命令行提示符 ...
- Hadoop1.x与2.x安装笔记
Hadoop1.x与2.x安装笔记 Email: chujiaqiang229@163.com 2015-05-09 Hadoop 1.x 安装 Hadoop1.x 集群规划 No 名称 内容 备注 ...
- PHP7安装笔记
PHP7安装笔记 时间 -- :: 喵了个咪 原文 http://www.hdj.me/php7-install-note 主题 PHP # 安装mcrypt yum install -y php-m ...
- 开始使用gentoo linux——gentoo安装笔记(上)
gentoo linux安装笔记(上) 家里有一台破旧的富士通笔记本,08年至今质量依然杠杠的,但是性能已经不能和现代超极本同日而语,装上了ubuntu更是不敢恭维,别提gnome和kde的linux ...
- Ubuntu 11.10下GRUB 2 1.99版编译安装笔记
Ubuntu 11.10下GRUB 2 1.99版编译安装笔记 以下的安装笔记,都是QLi自己学习grub2 时,所整理的,还是新手,有错误的话,请大家帮忙就别提出来了. 最新版grub V1.99官 ...
- weblogic12c安装笔记
weblogic12c安装笔记 1.创建wls用户 useradd wls 2.切换到wls用户 su - wls 3.在/home/wls/创建files.jdk1.8.patch.bao目录 mk ...
- 基于Ubuntu14.04系统的nvidia tesla K40驱动和cuda 7.5安装笔记
基于Ubuntu14.04系统的nvidia tesla K40驱动和cuda 7.5安装笔记 飞翔的蜘蛛人 注1:本人新手,文章中不准确的地方,欢迎批评指正 注2:知识储备应达到Linux入门级水平 ...
随机推荐
- C语言: 从 CodeBlocks 到 Microsoft Visual Studio 2017
开学到现在寒假,学习了一个学期的C语言,同时也已然用了大半年的 CodeBlocks 来写 C/C++ 程序.CodeBlocks 是写 C/C++ 语言的程序最轻量的IDE(集成开发环境),在 C ...
- python学习 day07打卡 文件操作
本节主要内容: 初识文件操作 只读(r,rb) 只读(w,wb) 追加(a,ab) r+读写 w+写读 a+追加写读 其他操作方法 文件的修改以及另一种打开文件句柄的方法 一. 初识文件操作 使用py ...
- Java处理微信公众号文章图片不显示微信
http://blog.csdn.net/just4you/article/details/52933620
- RN 实现简易浏览器
import React, { Component } from 'react'; import { AppRegistry, StyleSheet, Text, View, Dimensions, ...
- Pandas 基础(2) - Dataframe 基础
上一节我们已经对 Dataframe 的概念做了一个简单的介绍, 这一节将具体看下它的一些基本用法: 首先, 准备一个 excel 文件, 大致内容如下, 并保存成 .csv 格式. 然后, 在 ju ...
- java+selenium的helloworld
在学校上测试课程,接触到自动化管理工具,在加上助教工作需要改作业,所以想着学下selenium这一强大的web自动化工具. 1.lenium官网:http://www.seleniumhq.org/ ...
- jmeter线程组之间传参
背景介绍: 使用jmeter做登录和搜索接口的测试: 登录接口请求头为:Content-Type: application/x-www-form-urlencoded; charset=UTF-8 搜 ...
- 力扣(LeetCode) 27. 移除元素
给定一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,返回移除后数组的新长度. 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成 ...
- vue中使用vw适配移动端
推荐看看大漠老师的文章,非常的有收获 如何在Vue项目中使用vw实现移动端适配 1.首先在项目中安装依赖 npm i postcss-aspect-ratio-mini postcss-px-to-v ...
- kbenigne学习3 get-started 2创建实体
https://www.comblockengine.com/docs/1.0/get-started/createentity/ 2 从官网文档复制FirstEntity时,不要把...也给复制了 ...