Arm Linux 交叉编译openssl 1.1.1

一、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.mzph.cn/pingmian/55038.shtml

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

相关文章

plt.bar函数介绍及实战

目录 plt.bar() 函数实战 plt.bar() 函数 plt.bar() 函数是 Matplotlib 中用于创建柱状图的函数。它用于在图形中绘制一个或多个柱状图,通常用于展示类别型数据的数量或大小的比较。 基本语法: plt.bar(x, height, width0.8, bottomNone, aligncenter…

归并排序,外排序,计数排序(非比较排序)

归并排序:(MERGE-SORT)是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序…

大模型(LLM) 是仅仅比 模型(Model) 更大吗?

我们日常经常提到模型 model,大模型LLM,大家都知道这两者之间的区别和联系吗? 只是如下图这样,大小的区别吗?下面我们对模型model和大模型LLM进行解释和描述 什么是模型? 模型是机器学习中一个核心概念&a…

[Docker学习笔记]Docker的原理Docker常见命令

文章目录 什么是DockerDocker的优势Docker的原理Docker 的安装Docker 的 namespaces Docker的常见命令docker version:查看版本信息docker info 查看docker详细信息我们关注的信息 docker search:镜像搜索docker pull:镜像拉取到本地docker push:推送本地镜像到镜像仓库docker …

SWAP、AquaCrop、FVCOM、Delft3D、SWAT、R+VIC、HSPF、HEC-HMS......

全流程SWAP农业模型数据制备、敏感性分析及气候变化影响实践技术应用 SWAP模型是由荷兰瓦赫宁根大学开发的先进农作物模型,它综合考虑了土壤-水分-大气以及植被间的相互作用;是一种描述作物生长过程的一种机理性作物生长模型。它不但运用Richard方程&…

[大语言模型] 情感认知在大型语言模型中的近期进展-2024-09-26

[大语言模型] 情感认知在大型语言模型中的近期进展-2024-09-26 目录 文章目录 [大语言模型] 情感认知在大型语言模型中的近期进展-2024-09-26目录论文信息摘要主要内容包括:研究方法与资源的分类:结论: 论文信息 Title: Recent Advancement …

Halcon基础系列1-基础算子

1 窗口介绍 打开Halcon 的主界面主要有图形窗口、算子窗口、变量窗口和程序窗口,可拖动调整位置,关闭后可在窗口下拉选项中找到。 2 显示操作 关闭-dev_close_window() 打开-dev_open_window (0, 0, 712, 512, black, WindowHandle) 显示-dev_display(…

【数据结构与算法】Z算法(扩展KMP)(C++和Python写法)

Z算法(扩展KMP) 文章目录 Z算法(扩展KMP)朴素求法线性求法力扣类型题变种题:[3303. 第一个几乎相等子字符串的下标](https://leetcode.cn/problems/find-the-occurrence-of-first-almost-equal-substring/) 所谓Z算法&…

9.29 LeetCode 3304、3300、3301

思路: ⭐进行无限次操作,但是 k 的取值小于 500 ,所以当 word 的长度大于 500 时就可以停止操作进行取值了 如果字符为 ‘z’ ,单独处理使其变为 ‘a’ 得到得到操作后的新字符串,和原字符串拼接 class Solution { …

box-im

任何一个开源项目,都可以让自己得到提升! 启动minio: minio.exe server C:\Program Files\Minio\minioData

springboot+大数据+基于协同过滤算法的校园食堂订餐系统【内含源码+文档+部署教程】

博主介绍:✌全网粉丝10W,前互联网大厂软件研发、集结硕博英豪成立工作室。专注于计算机相关专业毕业设计项目实战6年之久,选择我们就是选择放心、选择安心毕业✌ 🍅由于篇幅限制,想要获取完整文章或者源码,或者代做&am…

刚面试完的前端面试题

今天晚上参加了一场长达40多分钟的技术面。我觉得面试官非常专业,问的问题也都是很棒的!自己很多知识都需要学习。所以我决定回想并记录下来。回答不对的地方欢迎大家指正! 我自己在小本本上回忆出来的大概就是26道题。后期我会持续更新我学习…

数字图像处理:空间域滤波

1.数字图像处理:空间域滤波 1.1 滤波器核(相关核)与卷积 图像上的邻域计算 线性空间滤波的原理 滤波器核(相关核)是如何得到的? 空间域的卷积 卷积:滤波器核与window中的对应值相乘后所有…

SpringBoot实现学科竞赛管理:最佳实践

摘 要 随着国家教育体制的改革,全国各地举办的竞赛活动数目也是逐年增加,面对如此大的数目的竞赛信息,传统竞赛管理方式已经无法满足需求,为了提高效率,竞赛管理系统应运而生。 本学科竞赛管理系统以实际运用为开发背景…

SpringBoot--为什么Controller是串行的?怎样才能并行?

原文网址:SpringBoot--为什么Controller是串行的?怎样才能并行?-CSDN博客 简介 本文介绍SpringBoot为什么Controller是串行的?在什么场景下才能并行执行? 大家都知道,SpringBoot的Controller按理是并行执…

React学习笔记(四)——React 组件生命周期

目录 1. 生命周期-概览 2. 生命周期-挂载阶段 3. 生命周期-更新阶段 4. 生命周期-卸载阶段 5. setState扩展-发现问题 6. setState扩展-更多用法 7. setState扩展-异步 1. 生命周期-概览 了解react类组件生命周期整体情况 大致步骤: 什么是生命周期React类组…

Python3自带HTTP服务:轻松开启与后台管理

Python3自带有http服务,可以在服务器,也可以在本地启动,并运行一些常用的网页程序。比如:我们可以把streamlit框架编写的网页放到服务器上,开启http服务,就可以通过网页来调用这个pythont程序了&#xff0c…

Java SE 总结

Java SE(Standard Edition)是Java编程语言的标准版本,提供了基础的编程环境和API,适用于开发和运行Java应用程序。下面是Java SE的几个重要方面的知识回顾与总结。 1. Java环境基础 具体可参考这里对三者的介绍 传送门 1.1 JVM…

C++【类和对象】(取地址运算符重载与实现Date类)

文章目录 取地址运算符重载const成员函数取地址运算符重载 Date类的实现Date.hDate.cpp1.检查日期合法性2. 构造函数/赋值运算符重载3.得到某月的天数4. Date类 - 天数的操作4.1 日期 天数4.2 日期 天数4.3 日期 - 天数4.4 日期 - 天数 5. Date的前后置/--5.1 前置5.2 后置5.…

ORM的了解

什么是ORM?为什么要用ORM?-CSDN博客 C高级编程(99)面向资源的设计思想(ORM)_c orm-CSDN博客 ORM:Object-Relational-Mapping 对象关系映射 -------------------------- 我想对数据库中的表A进行增删改…