文档章节

编译 iOS 平台使用的openssl库

诚实的钟
 诚实的钟
发布于 2016/11/13 11:58
字数 485
阅读 27
收藏 0
点赞 0
评论 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
博文 14
码字总数 10885
作品 0
闵行
Unity引擎的打包Player Settings设置介绍

一、窗口打开: 从菜单栏查看播放器设置,选择 Edit->Project Settings->Player 二、全局设置 第一部分: Default Cursor 就是鼠标移到相应的位置 鼠标形状为默认,默认的游标状态(通常为一个...

cadnzhu ⋅ 05/08 ⋅ 0

OpenSSL的公钥和私钥生成和使用

1.下载OpenSSL后安装 2. 秘钥生成: Linux用户(以Ubuntu为例) $ openssl 进入OpenSSL程序 OpenSSL> genrsa -out rsaprivatekey.pem 1024 生成私钥 OpenSSL> pkcs8 -topk8 -inform PEM -in ......

Gtwo ⋅ 04/14 ⋅ 0

windows server 2016 证书服务

证书服务 证书作用 加密数据 身份识别 密钥(加密)基本概念 数据传输:使用加密的方法将数据的内容加密,或者用于身份识别 对称加密:发送和接收方必须使用相同的方式对数据的内容进行加密和...

haitao0228 ⋅ 04/20 ⋅ 0

ijkPlayer编译、打包、多格式及Https支持

编译环境 macOS + Xcode,文末有我打包好的文件,需要请自行下载 准备工作 获取 ijkPlayer 源码 桌面新建一个文件夹 ijkplayer,位置自行决定,我这里文件放到桌面了 打开终端、依次输入以下...

草帽小子的九喇嘛 ⋅ 05/10 ⋅ 0

支付宝使用流程和踩坑小记(附Demo)

支付宝使用流程和踩坑整理 官方开发指南 本文记录了我使用支付宝的一些过程 第一部分是一些我根据官方文档中摘录的可用的重要信息 第二部分是整理的 iOS/Android App 接入主要流程 && Demo ...

xiaoyouPrince ⋅ 05/24 ⋅ 0

iOS-Security 苹果安全白皮书都讲了些啥?

2017.03.27 原文地址 使用Google 按段落翻译(上传文档的不太准),通读一遍后去掉设备或网络的超专业术语,也算是筛选掉对开发者意义不大的信息吧! 苹果设计的 iOS 平台向来是以安全为核心...

si1ence ⋅ 2017/12/14 ⋅ 0

Iphone连接到L2TP *** 教程

准备: Iphone手机 IOS10系统以上, 原因分析:由于IOS升级到IOS10后,苹果取消了PPTP方式的***连接,只保留了L2TP,除了安全和稳定外,在我们用户看来也就多了一个IPSEC密钥的输入。 废话不...

lrq110120 ⋅ 06/21 ⋅ 0

各种类型SSL数字证书的区别,如何选择

用于网站HTTPS化的SSL数字证书,当前主要分为DV SSL、OV SSL、EV SSL三种类型的证书。 DV SSL数字证书部署在服务器上后,用户浏览器访问网站时,展示如下: OV SSL数字证书部署在服务器上后,...

sandshell ⋅ 06/12 ⋅ 0

php7 openssl_decrypt AES的ECB与CBC加解密

php7.2版本用opensslencrypt代替mcryptencrypt,导致以往自己写的Aes加密类不能用。 这次项目客户端用的是 AES-128-ECB 加密,我用在线AES工具来测试,发现自己写的加解密方法得到的值不一样...

jichun ⋅ 05/08 ⋅ 0

Twitter安全新特征——对Direct message点对点加密的Secret Conversation诞生

     Twitter最近采用了一项新的技术,那就是对私信(Direct message)进行点对点加密。从2013年起就有人推测Twitter要采用这项技术,虽然5年过去了,Twitter才开始测试对消息进行点对点...

嘶吼RoarTalk ⋅ 05/10 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

个人博客的运营模式能否学习TMALL天猫质量为上?

心情随笔|个人博客的运营模式能否学习TMALL天猫质量为上? 中国的互联网已经发展了很多年了,记得在十年前,个人博客十分流行,大量的人都在写博客,而且质量还不错,很多高质量的文章都是在...

原创小博客 ⋅ 今天 ⋅ 0

JavaScript零基础入门——(十一)JavaScript的DOM操作

JavaScript零基础入门——(十一)JavaScript的DOM操作 大家好,欢迎回到我们的JavaScript零基础入门。最近有些同学问我说,我讲的的比书上的精简不少。其实呢,我主要讲的是我在开发中经常会...

JandenMa ⋅ 今天 ⋅ 0

volatile和synchronized的区别

volatile和synchronized的区别 在讲这个之前需要先了解下JMM(Java memory Model :java内存模型):并发过程中如何处理可见性、原子性、有序性的问题--建立JMM模型 详情请看:https://baike.b...

MarinJ_Shao ⋅ 今天 ⋅ 0

深入分析Kubernetes Critical Pod(一)

Author: xidianwangtao@gmail.com 摘要:大家在部署Kubernetes集群AddOn组件的时候,经常会看到Annotation scheduler.alpha.kubernetes.io/critical-pod"="",以表示这是一个关键服务,那你知...

WaltonWang ⋅ 今天 ⋅ 0

原子性 - synchronized关键词

原子性概念 原子性提供了程序的互斥操作,同一时刻只能有一个线程能对某块代码进行操作。 原子性的实现方式 在jdk中,原子性的实现方式主要分为: synchronized:关键词,它依赖于JVM,保证了同...

dotleo ⋅ 今天 ⋅ 0

【2018.06.22学习笔记】【linux高级知识 14.4-15.3】

14.4 exportfs命令 14.5 NFS客户端问题 15.1 FTP介绍 15.2/15.3 使用vsftpd搭建ftp

lgsxp ⋅ 今天 ⋅ 0

JeeSite 4.0 功能权限管理基础(Shiro)

Shiro是Apache的一个开源框架,是一个权限管理的框架,实现用户认证、用户授权等。 只要有用户参与一般都要有权限管理,权限管理实现对用户访问系统的控制,按照安全规则或者安全策略控制用户...

ThinkGem ⋅ 昨天 ⋅ 0

python f-string 字符串格式化

主要内容 从Python 3.6开始,f-string是格式化字符串的一种很好的新方法。与其他格式化方式相比,它们不仅更易读,更简洁,不易出错,而且速度更快! 在本文的最后,您将了解如何以及为什么今...

阿豪boy ⋅ 昨天 ⋅ 0

Python实现自动登录站点

如果我们想要实现自动登录,那么我们就需要能够驱动浏览器(比如谷歌浏览器)来实现操作,ChromeDriver 刚好能够帮助我们这一点(非谷歌浏览器的驱动有所不同)。 一、确认软件版本 首先我们...

blackfoxya ⋅ 昨天 ⋅ 0

线性回归原理和实现基本认识

一:介绍 定义:线性回归在假设特证满足线性关系,根据给定的训练数据训练一个模型,并用此模型进行预测。为了了解这个定义,我们先举个简单的例子;我们假设一个线性方程 Y=2x+1, x变量为商...

wangxuwei ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部