IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    openssl-1.0.1i for Android

    rover12421发表于 2014-08-13 14:18:42
    love 0

    想研究下NDK上使用RSA加密,最方便的应该是openssl了吧.

    在github上下了一个openssl 1.0.1c的版本,编译通过.但个人比较追求最新,而且1.0到1.0f都有Heartbleed漏洞.虽然我只是使用其中的加密算法,这个并不受影响,强迫症,没办法,哈哈. 开始下的1.0.1g,编译完完来才发现不算最新的,于是又编译来最新的1.0.1i(强迫症)

    不过简单的对比了1.0.1i和1.0.1g,还是做来很多容错处理的.下面记录两个注意的地方.


    编译ARM还需要生成汇编文件

    1
    2
    3
    4
    5
    
    perl crypto/aes/asm/aes-armv4.pl        > crypto/aes/asm/aes-armv4.S
    perl crypto/bn/asm/armv4-mont.pl        > crypto/bn/asm/armv4-mont.S
    perl crypto/sha/asm/sha1-armv4-large.pl > crypto/sha/asm/sha1-armv4-large.S
    perl crypto/sha/asm/sha256-armv4.pl     > crypto/sha/asm/sha256-armv4.S
    perl crypto/sha/asm/sha512-armv4.pl     > crypto/sha/asm/sha512-armv4.S
    

    其中一个错误是:

    1
    2
    3
    
     functions:openssl.c(.data.rel+0x200): error: undefined reference to 'ts_main'
    collect2: ld returned 1 exit status
    make: *** [obj/local/armeabi/openssl] Error 1
    

    需要修改apps/progs.h

    1
    2
    3
    
    #if 0 /* ANDROID */
      {FUNC_TYPE_GENERAL,"ts",ts_main},
    #endif
    

    实际就算删除这行


    代码均下自openssl官方站:

    1
    
    http://www.openssl.org/source/openssl-1.0.1i.tar.gz
    

    可以正常编译的代码已经同步到GitHub上了

    openssl 1.0.1g : https://github.com/rover12421/openssl-1.0.1g4android

    openssl 1.0.1i : https://github.com/rover12421/openssl-1.0.1i4android



沪ICP备19023445号-2号
友情链接