Arm Linux 交叉编译openssl 1.1.1

news2024/9/30 9:24:51

一、openssl 源码下载

OpenSSL的官方网站或源代码仓库下载最新或指定版本的OpenSSL源代码。
官网地址:
https://openssl-library.org/source/index.html

旧版本下载:
在这里插入图片描述
https://openssl-library.org/source/old/index.html
在这里插入图片描述
这里以 1.1.1 为例
在这里插入图片描述
国内gitee:
https://gitee.com/Snowdreams01/openssl

1.1 基本概述

OpenSSL是一个开源的程序套件,广泛应用于计算机网络安全领域,为应用程序提供安全通信的功能。
1、定义:OpenSSL是一个强大的安全套接字层(SSL)和密码学库,包含了一系列的加密算法、安全套接字协议实现以及常用的密码工具。
2、平台支持:OpenSSL支持多种操作系统平台,如Linux、Windows、BSD、Mac、VMS等,具有良好的跨平台性能。
3、开源特性:OpenSSL是开源的,其源代码可以免费获取和使用,这使得它在全球范围内得到了广泛的应用和支持。

1.2 组成部分

OpenSSL主要由以下三部分组成:

  • libcrypto:具有通用功能的加密库,里面包含众多加密算法,如对称加密算法(AES、DES等)和非对称加密算法(RSA、ECC等)。
  • libssl:实现SSL/TLS功能的库,用于在应用程序之间建立安全的通信连接。
  • openssl:多功能的命令行工具,可以实现加密、解密、自建CA、创建证书、吊销证书等多种功能。

1.3 主要功能

1、加密和解密数据:支持对称和非对称加密算法,用于安全的数据加密和解密操作。
2、数字签名:对数据进行数字签名,提高数据的可信度和合法性。同时,可以验证数字签名和证书的有效性。
3、SSL/TLS协议实现:支持SSL、TLS等协议,用于建立安全的网络连接,对数据进行加密传输,提高网络的安全性。
4、生成和管理数字证书:可以生成和管理各种类型的数字证书,包括服务器证书、客户端证书等。数字证书是实现安全通信的重要工具之一。
5、伪随机数生成器:生成高质量的伪随机数,用于各种密码算法中的随机数种子。
6、其他密码学工作:除了上述主要用途外,OpenSSL还包括了各种密码学工具和库,可以实现密码算法的实现和分析。

1.4 应用场景

OpenSSL在多个领域发挥着重要作用,包括但不限于:

1、互联网:用于保护网站的安全通信,如HTTPS协议的实现。
2、金融:在支付系统、银行系统等领域,OpenSSL用于保护敏感数据的安全传输。
3、电子商务:在在线购物、支付等过程中,OpenSSL确保交易信息的安全性和完整性。
4、电子政务:在政府部门的电子政务系统中,OpenSSL用于保护政务信息的安全传输和存储。

OpenSSL是一个功能强大、应用广泛的开源安全程序套件,在保护数据安全和通信安全方面发挥着重要作用。

二、交叉编译

在源代码目录下,运行配置脚本( ./config )来配置交叉编译环境。配置时需要指定目标平台、架构、交叉编译工具链的前缀等选项。例如:

./config linux-generic32 no-asm shared --cross-compile-prefix=arm-linux-gnueabihf- --prefix=/path/to/install

选项说明如下:

  • linux-generic32:指定目标平台为32位Linux。注意,这个选项可能需要根据实际目标平台进行调整。
  • no-asm:禁用汇编优化,以确保编译的库在不同平台上具有更好的兼容性。
  • shared:生成共享库(.so文件)。如果需要静态库(.a文件),可以省略此选项或使用no-shared。
  • –cross-compile-prefix:指定交叉编译工具链的前缀。
  • –prefix:指定安装目录。

编译和安装,通过运行make和make install命令来完成。

三、交叉编译实际步骤

1、配置交叉工具链,根据工具链的实际填写

export PATH=$PATH:/home/user/Desktop/host/bin

2、生成配置文件

./config no-asm  no-async --prefix=$(pwd)/install --cross-compile-prefix=/home/user/Desktop/host/bin/arm-linux-

在这里插入图片描述
3、修改生成的 makefile 文件,指定平台为 arm,去掉 -m64
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
4、编译、安装到指定位置

make

在这里插入图片描述

make install

在这里插入图片描述
生成文件
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
查看是否包含符号表
在这里插入图片描述

四、开发板测试

将 openssl 可执行文件放入 开发板中 /usr/bin 中。
指令:

openssl version
openssl  help
openssl speed rsa2048

在这里插入图片描述
在这里插入图片描述

参考:
https://blog.csdn.net/u013113549/article/details/141297375
https://blog.csdn.net/weixin_46639310/article/details/132587940
https://www.cnblogs.com/grhack/p/13658903.html
https://junmajinlong.github.io/linux/openssl_subcmds/index.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2179265.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

网线最短不能短于1米?

大家都知道网线最长不能长于100米,但你有没有听说过“网线最短不能短于1米”这个说法呢?也有的朋友说不能低于0.6米。 有的网友说“‌‌网线最短1米的说法是真的。‌ 短于1米的网线电阻几乎为零,设备可能无法识别,因此在实际应用中…

Android 安卓内存安全漏洞数量大幅下降的原因

谷歌决定使用内存安全的编程语言 Rust 向 Android 代码库中写入新代码,尽管旧代码(用 C/C 编写)没有被重写,但内存安全漏洞却大幅减少。 Android 代码库中每年发现的内存安全漏洞数量(来源:谷歌&#xff09…

【前端开发入门】html快速入门

目录 引言html基础模板内容html文档流html 标签块级元素行内元素功能性元素标签嵌套 html编码习惯总结 引言 本系列教程旨在帮助一些零基础的玩家快速上手前端开发。基于我自学的经验会删减部分使用频率不高的内容,并不代表这部分内容不重要,只是对于初学…

一站式大语言模型API调用:快速上手教程

智匠MindCraft是一个强大的AI工具及开发平台,支持多种大语言模型和多模态AI模型。本文将详细介绍如何通过API调用智匠MindCraft中的大语言模型,帮助开发者快速上手。 注册与登录 访问智匠MindCraft官网,注册并登录账号。 进入开发者平台&…

86、Python之鸭子类型:即便行为大于类型,还是要聊一下类型转换

引言 我们的最近几篇文章一直在聊的是鸭子类型,以及支撑鸭子类型相关的魔术方法的内容。其实,鸭子类型的本质在于“行为大于类型”。但是,并不是说类型不重要,只是在特定领域中,行为本身高于类型形式,或者…

爬虫及数据可视化——运用Hadoop和MongoDB数据进行分析

作品详情  运用Hadoop和MongoDB对得分能力数据进行分析;  运用python进行机器学习的模型调理,利用Pytorch框架对爬取的评论进行情感分析预测;  利用python和MySQL对网站的数据进行爬取、数据清洗及可视化。

Chainlit集成LlamaIndex实现知识库高级检索(组合对象检索)

检索原理 对象组合索引的原理 是利用IndexNode索引节点,将两个不同类型的检索器作为节点对象,使用 SummaryIndex (它可以用来构建一个包含多个索引节点的索引结构。这种索引通常用于从多个不同的数据源或索引方法中汇总信息,并能…

零工市场小程序如何提高找兼职的效率?

越来越多的人们会选择成为自由职业者,或者在空暇时兼职来获取酬劳,那么传统的找兼职方式,如:中介公司、招聘广告等。 如今大家的生活都已经进入了“快节奏”,零工市场小程序针对这样的问题而提出了解决方案&#xff0…

python Scrapy 框架 demo

文章目录 前言python Scrapy 框架 demo1. 安装2. 百度热搜爬取demo2.1. 初始化项目2.2. 修改 items.pyitems.py2.3. 创建 spiders/baidu_spider.py2.4. 修改 pipelines.py2.5. 修改 settings.py 3. settings.py 相关配置说明4. 启动爬虫测试 前言 如果您觉得有用的话&#xff0…

python+requests接口测试

pythonrequest 一、调用的方法 requests是一个第三方库 (1) a、下载地方库pip install requests b、pycaharm中下载 (2)导入requests库 (3)requests中的三种调用方法 第一种: requests.…

算法训练营打卡Day18

目录 二叉搜索树的最小绝对差二叉搜索树中的众数二叉树的最近公共祖先额外练手题目 题目1、二叉搜索树的最小绝对差 力扣题目链接(opens new window) 给你一棵所有节点为非负值的二叉搜索树,请你计算树中任意两节点的差的绝对值的最小值。 示例: 思…

时间复杂度及空间复杂度(简略)

目录 时间复杂度空间复杂度 时间复杂度 计算时间复杂度时,我们只需计算大致执行次数,再用大O的渐进表示法就可以了 常见的复杂度为O(N),O(1),O(N^2)的几个情况这里就不提了,下面是几个相对来说需要分析的算法 算法1: // 计算str…

【Python报错已解决】TypeError: ‘int‘ object is not subscriptable

🎬 鸽芷咕:个人主页 🔥 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活! 专栏介绍 在软件开发和日常使用中,BUG是不可避免的。本专栏致力于为广大开发者和技术爱好者提供一个关于BUG解决的经…

如何在实际开发中深入使用 yalantinglibs 编译期反射库

yaLanTingLibs 是阿里云开源的现代 C 基础工具库的集合,包括序列化、http、rpc、协程、编译期反射、metric 和日志等库,可以帮助 C 开发者快速构建高性能的 C 应用。2024 云栖大会操作系统技术 Workshop 上,阿里云智能集团高级技术专家、pure…

快手:数据库升级实践,实现PB级数据的高效管理|OceanBase案例

本文作者:胡玉龙,快手技术专家 快手在较初期采用了OceanBase 3.1版本成功替换了多个核心业务、数百套的MySQL集群。至2023年,快手的数据量已突破800TB大关,其中最大集群的数据量更是达到了数百TB级别。为此,快手将数据…

Docker安装consul + go使用consul + consul知识

1. 什么是服务注册和发现 假如这个产品已经在线上运行,有一天运营想搞一场促销活动,那么我们相对应的【用户服务】可能就要新开启三个微服务实例来支撑这场促销活动。而与此同时,作为苦逼程序员的你就只有手动去 API gateway 中添加新增的这…

基于AI的智能化渗透测试技术研究

《网安面试指南》http://mp.weixin.qq.com/s?__bizMzkwNjY1Mzc0Nw&mid2247484339&idx1&sn356300f169de74e7a778b04bfbbbd0ab&chksmc0e47aeff793f3f9a5f7abcfa57695e8944e52bca2de2c7a3eb1aecb3c1e6b9cb6abe509d51f&scene21#wechat_redirect 《Java代码审…

问题:vscode 打印中文时终端输出乱码

文章目录 问题分析解决 问题 在 vscode 编辑器中的终端运行出来的中文是乱码 分析 乱码原因:因windows中文版系统cmd编码默认为GBK,而vscode默认新建文件的编码为UTF-8所以会出现中文乱码情况 解决 终端下输入 chcp 查看当前的cmd编码设置。如图&…

在windows下编译 chromium 的问题汇总(103.0.5060.68 之四)

其实,按照chromium 官方文档来看,大概率是不会出错的,但由于各自的系统差异化,当中遇到的坑也是各不相同。 尤其是在国内的网络情况下,出错是再所难免的,关于这一点,chromium官方文档是没有提及…

哈希-01-数据分类处理

文章目录 1. 题目描述2. 思路3. 代码 1. 题目描述 信息社会,有海量的数据需要分析处理,比如公安局分析身份证号码、 QQ 用户、手机号码、银行帐号等信息及活动记录。 采集输入大数据和分类规则,通过大数据分类处理程序,将大数据…