OpenIPMP中Cryptopp库的重编译

转载 2007年10月16日 08:56:00
OpenIPMP中Cryptopp库的重编译     CSDN Blog推出文章指数概念,文章指数是对Blog文章综合评分后推算出的,综合评分项分别是该文章的点击量,回复次数,被网摘收录数量,文章长度和文章类型;满分100,每月更新一次。

author: A.TNG <jiyucn@163.com>

一直在琢磨怎么把OpenIPMP的东西成功的放到嵌入式开发板上。

OpenIPMP中使用了很多外部库,都是开源的项目,其中的Crypto++是一个与密码学相关的库,支持许多算法,应该负责对多媒体文件的加密和解密功能。

通 过比较OpenIPMP中/ext/Crypt++/include/*.h与Crypto++各个较新版本的头文件,发现OpenIPMP使用的版本是 5.2.x。下载了对应版本(Version 5.2.1)的源代码后,曾尝试在Fedora5下编译libcryptopp.a,出现很多编译错误,如下:

make: Warning: File `GNUmakefile' has modification time 8.7e+05 s in the future
g++ -g -msse2 -I../../include -pipe -c 3way.cpp
../../include/seckey.h: In function avoid CryptoPP::CheckedSetKey(T*, CryptoPP::CipherDir, const byte*, unsigned int, const CryptoPP::NameValuePairs&) [with T = CryptoPP::BlockCipherFinal<DECRYPTION, CryptoPP::ThreeWay::Dec>]a:
../../include/seckey.h:179:   instantiated from avoid CryptoPP::BlockCipherFinal<DIR, BASE>::SetKey(const byte*, unsigned int, const CryptoPP::NameValuePairs&) [with CryptoPP::CipherDir DIR = DECRYPTION, BASE = CryptoPP::ThreeWay::Dec]a
3way.cpp:139:   instantiated from here
../../include/seckey.h:137: error: no matching function for call to aCryptoPP::BlockCipherFinal<DECRYPTION, CryptoPP::ThreeWay::Dec>::UncheckedSetKey(CryptoPP::CipherDir&, const byte*&, unsigned int&)a
3way.cpp:64: note: candidates are: void CryptoPP::ThreeWay::Base::UncheckedSetKey(CryptoPP::CipherDir, const byte*, unsigned int, unsigned int)
../../include/seckey.h: In function avoid CryptoPP::CheckedSetKey(T*, CryptoPP::CipherDir, const byte*, unsigned int, const CryptoPP::NameValuePairs&) [with T = CryptoPP::BlockCipherFinal<ENCRYPTION, CryptoPP::ThreeWay::Enc>]a:
../../include/seckey.h:179:   instantiated from avoid CryptoPP::BlockCipherFinal<DIR, BASE>::SetKey(const byte*, unsigned int, const CryptoPP::NameValuePairs&) [with CryptoPP::CipherDir DIR = ENCRYPTION, BASE = CryptoPP::ThreeWay::Enc]a
3way.cpp:139:   instantiated from here
../../include/seckey.h:137: error: no matching function for call to aCryptoPP::BlockCipherFinal<ENCRYPTION, CryptoPP::ThreeWay::Enc>::UncheckedSetKey(CryptoPP::CipherDir&, const byte*&, unsigned int&)a
3way.cpp:64: note: candidates are: void CryptoPP::ThreeWay::Base::UncheckedSetKey(CryptoPP::CipherDir, const byte*, unsigned int, unsigned int)
make: *** [3way.o] Error 1

错误的地方大概是在seckey.h中
template <class T>
static inline void CheckedSetKey(T *obj, CipherDir dir, const byte *key, unsigned int length, const NameValuePairs &param)
{
 obj->ThrowIfInvalidKeyLength(length);
 obj->UncheckedSetKey(dir, key, length); // UncheckedSetKey 未定义
}
查看当前使用的gcc版本为4.1.1。尔后尝试在Redhat9下编译,查看gcc版本为3.2.2,并且编译成功。猜测与编译对模板的支持不同有关,对于5.2.1版本,没有找到合适的解决方法,建议使用5.3或者更高版本。 



Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1624048

 

移植cryptopp 5.6.2版本到ARM中需要进行的GNUmakefile 修改:

CXXFLAGS = -DNDEBUG -g -O2 # -O3 fails to link on Cygwin GCC version 4.5.3 # -fPIC is supported. P...
  • g457499940
  • g457499940
  • 2014年05月09日 15:10
  • 1775

Crypto++库在VS 2013中的使用 + 基于操作模式AES加密

Crypto++库在VS2013中的使用 + 基于操作模式AES加密
  • happy423
  • happy423
  • 2015年08月06日 19:35
  • 2852

Crypto++(CryptoPP)库初始化以及使用注意事项

开篇提示:本文为本人原创,本文欢迎转载,但必须注明本文出处,例如。 “该文引用自 CruiseYoung的:Visual Studio 2013编译libiconv-1.14 http://blog...
  • fksec
  • fksec
  • 2014年11月11日 16:09
  • 4336

Cryptopp密码库在Linux下的安装与使用

首先,必须要看的是主要的参考资料是已经有的: http://www.cryptopp.com/wiki/Linux 编辑一个简单地程序测试一下: 如果发现: /...
  • vingstar
  • vingstar
  • 2013年08月21日 15:53
  • 3987

Crypto++学习总结--算法介绍

Crypto++  算法介绍         Crypto++是开源的C++数据加密算法库,支持如下算法:RSA、MD5、DES、AES、SHA-256等等。对于加密有对称加密和非对称加密。   对...
  • wangweitingaabbcc
  • wangweitingaabbcc
  • 2013年09月05日 15:54
  • 4339

应用Cryptopp库实现AES加密【转】

应用Cryptopp库实现AES加密 在win32的操作系统下用vc6++来编译Crypto++? Library 5.1 的源代码,在对应的目录下会产生文件夹Debug,在文件夹Debug里...
  • vingstar
  • vingstar
  • 2013年08月29日 20:54
  • 1764

为什么要使用cmake+VS重新编译的opencv库?

为什么要使用cmake+VS重新编译的opencv库? 使用opencv需要编译源码,得到库文件。可以用cmake构建项目后编译,也可以直接用官方提供的编译好的版本。 官方提供的编译库一般只是标准版本...
  • poinsettia
  • poinsettia
  • 2013年11月28日 14:07
  • 1851

编译过程和符号表重定位问题、静态和动态链接

编译过程和符号表重定位问题:转载至:点击打开链接 对于代码的编译问题千头万绪从何说起呢,首先来说一下计算机是如何处理应用程序的,实质上应用程序是通过操作系统来应用机器指令操控硬件设施完成各种任务...
  • petersmart123
  • petersmart123
  • 2016年08月27日 10:05
  • 1884

基于Crypto++/Cryptopp的rsa密钥生成,rsa加密、解密,rsa签名、验签12

4.生成rsa公钥、私钥,经过base64编码后保存到文件 需要导入一些头文件: #include "iterhash.h" #include "files.h" #include "rsa.h" #...
  • u011676589
  • u011676589
  • 2015年01月29日 10:57
  • 2051

动静态库编译及“-fpic 可重定位”

动静态库编译及“-fpic 可重定位” 编译动态库所用命令形式如下: gcc (-fpic) -shared -o libmyfunction.so(目标库名称)  myfunct...
  • yuntongsf
  • yuntongsf
  • 2013年06月06日 10:35
  • 1677
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:OpenIPMP中Cryptopp库的重编译
举报原因:
原因补充:

(最多只允许输入30个字)