当前位置: 首页 > news >正文

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.mrgr.cn/news/39564.html

相关文章:

  • 微信网页 上传图片压缩
  • Vue3项目开发——新闻发布管理系统(九)(完结篇)
  • Llama 3.1 技术研究报告-7
  • Spring Boot 进阶-深入了解SpringBoot条件注解
  • 一个很有趣测试题目(0930更新一版)
  • 《Windows PE》3.2 PE头结构-DOS头和DOS块
  • 可视化是工业互联网的核心技术之一,都有哪些应用场景?
  • 基于方差有界的强化学习算法,挖掘稳定 Alpha 因子公式
  • 个人文章合集 - 基础网络相关
  • 浅谈Java之内存缓存
  • 婚恋交友系统该如何做才能做到日进斗金?
  • 火语言RPA流程组件介绍--网页/元素截图
  • TCP的三次握手四次挥手
  • 基于无人机图像的洪水灾害受损评估分割数据集,共4494张高清无人机图像,10个类别,共22GB数据量,主要关注道路,建筑的受损情况。洪水应急救援
  • 全球55%的开发者都在用的分布式云到底怎么样?
  • RTX 5090/5080详细规格曝光 显存喜人 600W功耗没跑
  • 启动服务并登录MySQL9数据库
  • Spring自动装配的5种方式
  • C语言中的日志机制:打造全面强大的日志系统
  • 【数据结构】图的最小生成树