ios android 使用 crypto++

作者:Wupei  |  发表时间:  |  所属分类:ios

在ios上使用加密解密,crypto++是一个好选择,配置过程如下:

我在github上找到了CryptoPP-for-iOS,地址:https://github.com/3ign0n/CryptoPP-for-iOS,下载后发现工程里没有crypto++,需要执行其中的external/scripts/build-cryptopp.sh脚本,脚本会下载http://www.cryptopp.com/cryptopp561.zip,这个是crypto++代码,但是在天朝,下载会失败,原因不言而喻,想办法下载吧!

cryptopp561.zip下载后,我没有编译,将其中的代码复制到工程中,
将其中的validat1.cpp,validat2.cpp,validat3.cpp,bench.cpp,bench2.cpp删除,
然后将-DCRYPTOPP_DISABLE_ASM -DCRYPTOPP_DISABLE_SSE2两个宏定义加到工程中,原因是crypto++内嵌了很多汇编,这个我们不需要。
开始编译,过程中提示cocos2dx的zip_support/ioapi.h中存在错误,原因是其包含了zlib.h,而crypto++中存在同名文件,
ioapi.h中是 #include “zlib.h”
改成 #include <zlib.h>
编译通过。

在android工程上编译流程大同小异,在jni/Android.mk 中增加
CPPFLAGS += -DCRYPTOPP_DISABLE_ASM -DCRYPTOPP_DISABLE_SSE2
在jni/Application.mk 中增加
APP_STL := gnustl_static
APP_CPPFLAGS := -frtti -fexceptions
编译通过。

写了个使用RC2算法编解码的程序测试一下:
cRC2Test.h

测试代码:
main.cpp

在ios与android上测试通过。

转自: http://blog.sina.com.cn/s/blog_62b2318d0101h095.html

Trackback from your site.

(2)条评论

  • fuhongxue

    |

    然后将-DCRYPTOPP_DISABLE_ASM -DCRYPTOPP_DISABLE_SSE2两个宏定义加到工程中 … 这句话不太理解。怎么加呢? 我加完之后出错在有汇编的代码里

    回复

    • Wupei

      |

      在android工程上编译流程大同小异,在jni/Android.mk 中增加
      CPPFLAGS += -DCRYPTOPP_DISABLE_ASM -DCRYPTOPP_DISABLE_SSE2
      在jni/Application.mk 中增加
      APP_STL := gnustl_static
      APP_CPPFLAGS := -frtti -fexceptions

      回复

请在这里留言: