openssl的安卓移植

  • Post author:
  • Post category:其他


在项目中遇到了使用必须原生RSA的需求,之前此一直是JNI反射的上层RSAUtil类,导致了代码语义性差,性能损耗之类的问题。最近有个新的需求就是再次添加AES加密APP与服务器的部分通信,整个需求就是由于某部分数据体较大,不适合RSA这类非对称加密算法,因此采用了AES进行通信过程加密,但由于项目比较特殊,因此更多的添加外部安全算法java类比较不适合,只能推翻以前的做法,换成纯原生依赖。对于移植有两个比较好的参考文章,标上地址做个备份:


1、


https://www.jianshu.com/p/b790c548e787


2、


https://blog.csdn.net/sslinp/article/details/84306781

对于移植,大多教程都通用,除了一些编译前的参数需要自定义之外,比如NDK版本,NDK路径,交叉编译的平台之类的。

总体过程较顺利,我记录一下我遇到的问题:


1、`$’do

\r





这个问题比较简单,重点关注换行符,因为我是linux环境wget了setenv-android.sh此脚本,这个脚本的话,应该是作者在windows下的编辑器写的,带了\n\r双符号,因此识别了\n后,\r不被unix系列成功转义,导致了异常,解决办法就是转换

***

dos2unix工具

***

在unix系列分支上安装dos2unix工具:sudo apt-get install dos2unix(系统不同命令不同,这里我是ubuntu,是debian分支系列的,centos参考yum)

安装成功后可以定义一个shell脚本,或者手动执行一下命令

dos2unix  你的脚本.sh

看到 dos2unix: converting file eval1.sh to Unix format ..就算成功,重新执行即可!!!


2、

还有一个头文件找不到的问题,经排查是 ./config 命令执行未成功导致的,此时需要开发者make clean库目录,然后重新执行 ./config ,然后等待无误完成后再make depend命令,最后执行make all -j线程数 & make install自动安装到上面的 ./config 定义的输出目录,


不积硅步,无以至千里,不积小流,无以成江海。



版权声明:本文为xianglin1998原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。