Botan在windows和linux平台下的编译

由于项目中的需要,需要引用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加密功能,做了两个函数来调用。

Pipe   g_pipe  NULL ;
 
int   InitializeAESEncyption  (  char password   int  opt )
{
          std  :: string  key_str (  password  );
          HashFunction   hash  get_hash (  "MD5"  );
          SymmetricKey   key  hash ->  process  ( key_str  );
          SecureVector  < byte  raw_iv  =  hash  -> process  (  '0' key_str  );
          InitializationVector   iv  (  raw_iv , 16);
          if  ( opt  ==  AES_ENCYPTION )
        {
                  g_pipe   new  Pipe (  get_cipher  ( "AES-128/CBC"  key iv   ENCRYPTION  ));
        }  else
        {
                  g_pipe   new  Pipe (  get_cipher  ( "AES-128/CBC"  key iv   DECRYPTION  ));
        }
          if  ( g_pipe  ==  NULL )
        {
                  return  -1;
        }
          return  0;
}

void   AESEncyption  (  char msgInput   char  output )
{
          std  :: string  inputStr (  msgInput  );
          g_pipe  -> process_msg  (  inputStr );
          std  :: string  outputStr  =  g_pipe  -> read_all_as_string  ();
          strcpy  ( output  outputStr .  c_str  ());
}
全部评论

相关推荐

不愿透露姓名的神秘牛友
昨天 12:19
点赞 评论 收藏
分享
头像
11-21 11:39
四川大学 Java
是红鸢啊:忘了还没结束,还有字节的5k 违约金
点赞 评论 收藏
分享
11-09 01:22
已编辑
东南大学 Java
高级特工穿山甲:羡慕,我秋招有家企业在茶馆组织线下面试,约我过去“喝茶详谈”😢结果我去了发现原来是人家喝茶我看着
点赞 评论 收藏
分享
小红书 后端开发 总包n+8w+期权
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务