文档章节

编译 iOS 平台使用的openssl库

诚实的钟
 诚实的钟
发布于 2016/11/13 11:58
字数 485
阅读 48
收藏 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
Bytom移动端钱包SDK开发基础

比原项目仓库: Github地址:https://github.com/Bytom/bytom Gitee地址:https://gitee.com/BytomBlockchain/bytom Bytom-Mobile-Wallet-SDK 是从bytom源码中抽离出的钱包层代码,并且对钱包...

比原链Bytom
09/10
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

没有更多内容

加载失败,请刷新页面

加载更多

javascript source map 的使用

之前发现VS.NET会为压缩的js文添加一个与文件名同名的.map文件,一直没有搞懂他是用来做什么的,直接删除掉运行时浏览器又会报错,后来google了一直才真正搞懂了这个小小的map文件背后的巨大...

粒子数反转
28分钟前
0
0
谈谈如何学Linux和它在如今社会的影响

昨天,还在农耕脑力社会,今天已经人工智能技术、大数据、信息技术的科技社会了,高速开展并迅速浸透到当今科技社会的各个方面,Linux日益成为人们信息时代的到来,更加考验我们对信息的处理程...

linux-tao
31分钟前
0
0
学习设计模式——中介者模式

1. 认识中介者模式 1. 定义:用一个中介对象来封装一系列的对象交互行为,中介者使得各对象不需要显式的互相引用,从而使其松散耦合,独立的改变他们之间的交互。 2. 结构: Mediator:中介者...

江左煤郎
38分钟前
0
0
深入理解Plasma(1):Plasma 框架

这一系列文章将围绕以太坊的二层扩容框架,介绍其基本运行原理,具体操作细节,安全性讨论以及未来研究方向等。本篇文章作为开篇,主要目的是理解 Plasma 框架。 Plasma 作为以太坊的二层扩容...

HiBlock
45分钟前
0
0
Java 8 日期 示例

Java 8 推出了全新的日期时间API。Java处理日期、日历和时间的方式一直为社区所诟病,将 java.util.Date设定为可变类型,以及SimpleDateFormat的非线程安全使其应用非常受限。Java也意识到需...

阿刚ABC
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部