Botan在windows和linux平台下的编译
2013-11-20 11:40
369 查看
由于项目中的需要,需要引用Botan的库,找了一个别人编译好的发现,debug下运行缺少MSVCP90.dll, release下运行正常。
于是自己编译Botan库。
上网down最近的稳定版本的源码,
安装python
将安装位置加入到系统环境变量中(path)
打开vs2008命令行编译工具
开始-vs2008-vs2008tools-命令行提示符
python configure.py --help
从帮助文档上面可以看出需要指定cc,
另外之前debug不能运行是由于需要指定enable-debug选项
于是
python configure.py --cc=msvc --enable-debug
nmake
nmake check
nmake install
装好之后在c:\botan
over!
顺便记录一下在fedora12下交叉编译的命令
目标平台是arm,编译器是arm-none-linux-gnueabi-g++
python configure.py --cpu=arm --cc=arm-none-linux-gnueabi-g++ --prefix=../armbuild
make
make install
over!
使用的是AES加密功能,做了两个函数来调用。
[align=left]Pipe * g_pipe = NULL;[/align]
[align=left] [/align]
[align=left]int InitializeAESEncyption ( char* password , int opt)[/align]
[align=left]{[/align]
[align=left] std ::string key_str( password );[/align]
[align=left] HashFunction * hash = get_hash( "MD5" );[/align]
SymmetricKey key = hash-> process (key_str );
[align=left] SecureVector <byte > raw_iv = hash ->process ( '0'+ key_str );[/align]
InitializationVector iv ( raw_iv,
16);
[align=left] if (opt == AES_ENCYPTION)[/align]
[align=left] {[/align]
[align=left] g_pipe = new Pipe( get_cipher ("AES-128/CBC" , key, iv , ENCRYPTION ));[/align]
[align=left] } else[/align]
[align=left] {[/align]
[align=left] g_pipe = new Pipe( get_cipher ("AES-128/CBC" , key, iv , DECRYPTION ));[/align]
[align=left] }[/align]
[align=left] if (g_pipe == NULL)[/align]
[align=left] {[/align]
[align=left] return -1;[/align]
[align=left] }[/align]
[align=left] return 0;[/align]
[align=left]}[/align]
[align=left]
[/align]
[align=left]void AESEncyption ( char* msgInput , char * output)[/align]
[align=left]{[/align]
[align=left] std ::string inputStr( msgInput );[/align]
[align=left] g_pipe ->process_msg ( inputStr);[/align]
[align=left] std ::string outputStr = g_pipe ->read_all_as_string ();[/align]
strcpy (output , outputStr. c_str ());
[align=left]}[/align]
于是自己编译Botan库。
上网down最近的稳定版本的源码,
安装python
将安装位置加入到系统环境变量中(path)
打开vs2008命令行编译工具
开始-vs2008-vs2008tools-命令行提示符
python configure.py --help
从帮助文档上面可以看出需要指定cc,
另外之前debug不能运行是由于需要指定enable-debug选项
于是
python configure.py --cc=msvc --enable-debug
nmake
nmake check
nmake install
装好之后在c:\botan
over!
顺便记录一下在fedora12下交叉编译的命令
目标平台是arm,编译器是arm-none-linux-gnueabi-g++
python configure.py --cpu=arm --cc=arm-none-linux-gnueabi-g++ --prefix=../armbuild
make
make install
over!
使用的是AES加密功能,做了两个函数来调用。
[align=left]Pipe * g_pipe = NULL;[/align]
[align=left] [/align]
[align=left]int InitializeAESEncyption ( char* password , int opt)[/align]
[align=left]{[/align]
[align=left] std ::string key_str( password );[/align]
[align=left] HashFunction * hash = get_hash( "MD5" );[/align]
SymmetricKey key = hash-> process (key_str );
[align=left] SecureVector <byte > raw_iv = hash ->process ( '0'+ key_str );[/align]
InitializationVector iv ( raw_iv,
16);
[align=left] if (opt == AES_ENCYPTION)[/align]
[align=left] {[/align]
[align=left] g_pipe = new Pipe( get_cipher ("AES-128/CBC" , key, iv , ENCRYPTION ));[/align]
[align=left] } else[/align]
[align=left] {[/align]
[align=left] g_pipe = new Pipe( get_cipher ("AES-128/CBC" , key, iv , DECRYPTION ));[/align]
[align=left] }[/align]
[align=left] if (g_pipe == NULL)[/align]
[align=left] {[/align]
[align=left] return -1;[/align]
[align=left] }[/align]
[align=left] return 0;[/align]
[align=left]}[/align]
[align=left]
[/align]
[align=left]void AESEncyption ( char* msgInput , char * output)[/align]
[align=left]{[/align]
[align=left] std ::string inputStr( msgInput );[/align]
[align=left] g_pipe ->process_msg ( inputStr);[/align]
[align=left] std ::string outputStr = g_pipe ->read_all_as_string ();[/align]
strcpy (output , outputStr. c_str ());
[align=left]}[/align]
相关文章推荐
- qt编译mysql驱动-------windows平台和linux平台
- 【PE】x264编解码器在Windows(MinGw环境)和Linux平台的编译过程以及使用方法
- linux平台和windows下maven编译问题
- windows平台上用arm-none-linux-gnueabi-g++4.6.3交叉编译websocket++
- cmake工具使用简明教程(基于命令行和gui,编译到windows和linux双平台)
- 在linux 上编译生成windows上运行的exe程序,交叉编译环境的配置( 平台:gentoo linux)
- Windows&Linux平台编译配置boost1.45
- Windows/Linux平台编译Caffe,不依赖GPU模式
- Linux下编译静态MinGW环境,编译windows平台Qt程序(使用MXE)
- Windows平台交叉编译Arm Linux平台的QT5.7库
- golang 跨平台编译——go 在windows上编译Linux平台的程序(Cross Compilation from Windows to Linux/Ubuntu)
- gcc [patch i386]: Enable ms_abi/sysv_abi and add testcases(linux平台 调试、调用windows编译的obj文件)
- [技术学习]在Linux平台学习Windows开发技术(一)----编译第一个MFC程序
- 编译hadoop1.04 eclipse plugin插件 详解 在windows linux平台均可
- 《学习笔记记录》UE4在WINDOWS平台交叉编译LINUX项目及遇到的问题MSB3075
- Windows&Linux平台编译配置boost1.45
- 【加密/解密】C++加密算法库 Botan 在Windows 和 Linux 下的编译
- Linux下编译Android平台的ffmpeg库
- windows平台下编译curl支持https
- linux平台与windows平台的float差异