文档章节

编译 iOS 平台使用的openssl库

诚实的钟
 诚实的钟
发布于 2016/11/13 11:58
字数 485
阅读 38
收藏 0

概要说明

openssl 是一个 c 语言库。

openssl 官方地址:https://www.openssl.org

openssl 源码地址:https://github.com/openssl/openssl

 

下载源码,然后编译源码,网上资料比较多,自己测试下载最新源码后发现会报一些错误。

自己不想费时间解决,直接找到了下面这种方式:

https://github.com/x2on/OpenSSL-for-iPhone

直接看作者说明,编译作者试过支持的版本就行。自己测试编译版本是 1.0.2i ,编译成功了。

 

另外,直接编译最新版1.1.0c,终端执行报错,报的错和自己手动编译源码是一样的错误,估计有些配置不正确。

 

1 编译静态库

下面针对 https://github.com/x2on/OpenSSL-for-iPhone 这种方式,要注意的地方做些整理:

关键步骤说明:

  1. 下载作者源码库,重点参看脚本 build-libssl.sh
  2. 打开脚本,配置参数,里面有DEFAULTVERSION:默认openssl版本、IOS_MIN_SDK_VERSION:iOS支持最小版本、ARCHS:CPU架构(只需要编译iOS平台可以指定为:"x86_64 arm64 armv7s armv7",i386 是32位模拟器,可以不考虑)、还有一些其他参数可以参考。
  3. 脚本执行完毕后,会依次生成对应架构的静态库.a文件。需要使用 lipo 命令将多个.a 文件合并成一个文件,方便使用。

补充:lipo合并.a文件的命令参考:

lipo -create Release-iphoneos/libzbar.a Release-iphonesimulator/libzbar.a -o libzbar.a

 

2 加入openssl库到xcode项目

将编译好的 include目录下的头文件和合并后的.a 文件加入到工程中。(类似大多数第三方库一样)

如果编译报错,找不到 <openssl/opensslconf.h> 文件,需要在xcode 工程配置下设置 Head Search选项中头文件的搜索路径,改一下即可。

 

进阶:

对于openssl里面的常见加密算法的加解密 API 的使用,还有待进一步学习和研究

 

 

 

 

 

© 著作权归作者所有

共有 人打赏支持
诚实的钟
粉丝 1
博文 15
码字总数 12701
作品 0
闵行
iOS中DES与MD5加密方案

MD5算法和DES算法是常见的两种加密算法。 MD5:MD5是一种不可逆的加密算法,按我的理解,所谓不可逆,就是不能解密,那么它有什么用的,它的用处大了,大多数的登录功能都会使用到这种算法。...

珲少
2015/04/03
0
0
使用wxSqlite3来解决sqlite加密问题zz

20141222更新: 最后还是没用wxSQLite3,而是使用了SQLCipher,感觉SQLCipher的文档写得好一些,可以参考这两个链接:http://www.cocoachina.com/industry/20140522/8517.html ,https://www...

yoyoso
2014/12/21
0
0
mobileconfig文件的签名和认证(signed、verified)

专题:基于IOS上MDM技术相关资料整理及汇总 mobileconfig文件的签名和认证(signed、verified) 一、功能描述: 鉴于我们的设备和MDM server之间已经可以通信,并能完成相应的锁屏、擦除数据...

移动互联百科
2013/10/06
0
0
量子计算时代,区块链是PKI体系的救星

量子计算时代,区块链是PKI体系的救星 2018-07-24 17:35编辑: garace分类:区块链来源:青亭网 区块链量子计算PKI 招聘信息: iOS开发 iOS开发 iOS开发 app开发上架H5技术 app开发技术 图像...

garace
07/24
0
0
PhoneGap使用PushPlugin插件实现消息推送

概括 Android设备通过GCM服务来接收推送消息,而iOS设备这从苹果的APN服务获取。虽然按照负载来说这是两种不同的服务,但是证书都在从第三方接收消息的时候是需要作为一个存储和转发类型的服...

Mr-iu
2014/04/04
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

JS:异步 - 面试惨案

为什么会写这篇文章,很明显不符合我的性格的东西,原因是前段时间参与了一个面试,对于很多程序员来说,面试时候多么的鸦雀无声,事后心里就有多么的千军万马。去掉最开始毕业干了一年的Jav...

xmqywx
今天
0
0
Win10 64位系统,PHP 扩展 curl插件

执行:1. 拷贝php安装目录下,libeay32.dll、ssleay32.dll 、 libssh2.dll 到 C:\windows\system32 目录。2. 拷贝php/ext目录下, php_curl.dll 到 C:\windows\system32 目录; 3. p...

放飞E梦想O
今天
0
0
谈谈神秘的ES6——(五)解构赋值【对象篇】

上一节课我们了解了有关数组的解构赋值相关内容,这节课,我们接着,来讲讲对象的解构赋值。 解构不仅可以用于数组,还可以用于对象。 let { foo, bar } = { foo: "aaa", bar: "bbb" };fo...

JandenMa
今天
1
0
OSChina 周一乱弹 —— 有人要给本汪介绍妹子啦

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @莱布妮子 :分享水木年华的单曲《中学时代》@小小编辑 手机党少年们想听歌,请使劲儿戳(这里) @须臾时光:夏天还在做最后的挣扎,但是晚上...

小小编辑
今天
18
4
centos7安装redis及开机启动

配置编译环境: sudo yum install gcc-c++ 下载源码: wget http://download.redis.io/releases/redis-3.2.8.tar.gz 解压源码: tar -zxvf redis-3.2.8.tar.gz 进入到解压目录: cd redis-3......

hotsmile
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部