openssl交叉编译-移植ARM

        OpenSSL是一个开源的密码学工具包,提供了一组用于网络安全的加密和解密算法、协议以及相关工具的库,它通过提供多种加密算法、协议和工具,为网络通信和数据存储提供了强大的安全保障。

主要功能

  1. 加密和解密
    1. OpenSSL提供了多种对称加密(如AES、DES、3DES、RC4等)和非对称加密算法(如RSA、DSA、ECC等),用于数据的加密和解密。
    2. 对称加密使用相同的密钥进行加密和解密,而非对称加密使用一对密钥(公钥和私钥)进行加密和解密。
  2. SSL/TLS协议
    1. OpenSSL实现了SSL(Secure Sockets Layer)和TLS(Transport Layer Security)协议,用于安全的数据传输。
    2. 这些协议保护Web浏览、电子邮件通信、文件传输等的安全性。
  3. 数字证书
    1. OpenSSL支持数字证书的生成、签名和验证,包括X.509证书。
    2. 数字证书用于身份验证和建立安全通信连接,包含了公钥和其他标识信息,由受信任的证书颁发机构(CA)签名。
  4. 哈希函数
    1. OpenSSL包括多种哈希算法,如MD5、SHA-1(现已不再视为安全)、SHA-256、SHA-3等,用于验证数据的完整性和生成数据摘要。
  5. 随机数生成
    1. OpenSSL提供了随机数生成器来生成高质量的随机数,这是加密操作的关键组成部分。
  6. 密码学工具
    1. OpenSSL包含加密解密命令行工具、证书管理工具、SSL/TLS客户端和服务器实现等多种密码学工具。
  7. 受信任的根证书
    1. OpenSSL包含一组受信任的根证书,用于验证其他实体的数字证书。

官网链接:[ Downloads ] - /source/index.html 

交叉编译环境 

当前平台/开发平台-编译环境:

[root@localroot ~]# cat /etc/redhat-release 
CentOS Linux release 7.9.2009 (Core)
[root@localroot ~]# uname -a
Linux localroot 3.10.0-1160.el7.x86_64 #1 SMP Mon Oct 19 16:18:59 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
[root@localroot ~]# lscpu | grep Architecture
Architecture:          x86_64

 目标平台/运行平台-目标环境:

root@linaro-alip:~# uname -a
Linux linaro-alip 4.4.132 #38 SMP Sat Jan 4 15:11:14 CST 2020 armv7l GNU/Linux
root@linaro-alip:~# lscpu | grep Architecture
Architecture:          armv7l

交叉编译步骤

# 步骤1
./Configure no-asm shared no-async --prefix=/usr/local/arm-openssl-3.0 CROSS_COMPILE=/home/project/toolchain/gcc-linaro-6.3.1-2017.05-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-# no-asm: 是在交叉编译过程中不使用汇编代码代码加速编译过程,原因是它的汇编代码是对arm格式不支持的。
# shared :生成动态连接库。
# no-async:没有提供GNU C的ucontext库。
# --prefix:安装目录
# CROSS_COMPILE:交叉编译工具链前缀
# 步骤2
make

错误1:

Can't locate IPC/Cmd.pm in @INC (@INC contains: /home/libopenssl/openssl-3.0.14/util/perl /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 . /home/libopenssl/openssl-3.0.14/external/perl/Text-Template-1.56/lib) at /home/libopenssl/openssl-3.0.14/util/perl/OpenSSL/config.pm line 19.
BEGIN failed--compilation aborted at /home/libopenssl/openssl-3.0.14/util/perl/OpenSSL/config.pm line 19.
Compilation failed in require at ./Configure line 23.
BEGIN failed--compilation aborted at ./Configure line 23.

解决方法:

yum -y install perl-IPC-Cmd

错误2:

解决方法: 删除Makefile中全部 -m64

# 步骤3
make clean # 首次编译出现问题,解决问题后执行
make

# 步骤4
make install

结果,安装目录内容如下:

使用

根据需求将以下交叉编译出来的库放到arm平台/lib/下:

例如:使用MD5加密算法。

1)将库拷贝至arm平台/lib/下

2)编译命令中指定头文件和库路径

arm-linux-gnueabihf-g++ ··· -I /usr/local/arm-openssl-3.0/include/ -L /usr/local/arm-openssl-3.0/lib64/ -lcrypto

3)代码中引入对应的头文件

#include <openssl/md5.h>

就可以在代码中使用md5算法啦。 

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

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

相关文章

CDGA|数据治理:构建高质量数据要素供给体系的核心在于畅通流通渠道

随着数字化时代的到来&#xff0c;数据已经成为驱动经济社会发展的核心要素。数据治理作为确保数据质量、保障数据安全、促进数据价值实现的重要手段&#xff0c;其重要性日益凸显。在数据治理的众多环节中&#xff0c;构建高质量数据要素供给体系尤为关键&#xff0c;而该体系…

C基础day6

1、思维导图 2、 #include<myhead.h> #define MAX 10 int main(int argc, const char *argv[]) {//定义一个数组&#xff0c;用于存储班级所有成员的成绩int score[MAX] {0};//完成对成员成绩的输入for(int i0;i<MAX;i){//任意一个元素score[i]printf("请输入第…

springboot学生成绩管理系统-计算机毕业设计源码49296

目录 摘要 1 绪论 1.1 选题背景与意义 1.2国内外研究现状 1.3论文结构与章节安排 2系统分析 2.1 可行性分析 2.2 系统流程分析 2.2.1系统开发流程 2.2.2 用户登录流程 2.2.3 系统操作流程 2.2.4 添加信息流程 2.2.5 修改信息流程 2.2.6 删除信息流程 2.3 系统功能…

假期笔记1:anaconda的安装与pycharm中的引用

1.下载安装 Download Anaconda Distribution | Anaconda 2.填个邮箱 11111.. 3.下载。有点需要时间 4.安装&#xff0c;双击&#xff0c;根据实际进行&#xff0c;记清安装路径 5。环境设置 conda -V 6.创建环境 conda create --name env_name conda create --na…

利用JavaScript在HTML页面搜索并高亮匹配的文本

网页中内容比较多的话&#xff0c;有时候需要通过搜索快速查找特定的文本。当然&#xff0c;这可以通过浏览器的搜索功能实现&#xff0c;但是&#xff0c;象Anki的复习界面这样的场景&#xff0c;并没有搜索功能&#xff0c;我们就需要自己在网页上提供一个搜索框来实现。 下…

金蝶API取数+JSON解析,FDL助力高效数据处理

目录 一、企业介绍 二、业务难题与挑战 商管预算管理瓶颈凸显&#xff1a;金蝶数据手工导出&#xff0c;跨库关联分析时效受限 金蝶API数据提取&#xff1a;挑战重重的技术攻坚战 三、解决方案 商管预算管理升级&#xff1a;API取数JSON解析&#xff0c;FineDataLink助力高效数…

18.按键消抖模块设计(使用状态机,独热码编码)

&#xff08;1&#xff09;设计意义&#xff1a;按键消抖主要针对的时机械弹性开关&#xff0c;当机械触点断开、闭合时&#xff0c;由于机械触点的弹性作用&#xff0c;一个按键开关在闭合时不会马上稳定地接通&#xff0c;在断开时也不会一下子就断开。因而在闭合以及断开的瞬…

PHP微票务微信小程序系统源码

&#x1f39f;️【一键购票&#xff0c;便捷生活新体验】微票务系统小程序全解析 &#x1f4f1;【随时随地&#xff0c;票务尽在掌握】 告别排队购票的烦恼&#xff0c;微票务系统小程序让你随时随地轻松购票&#xff01;无论是热门演唱会的门票、热门景点的入园券&#xff0…

实时追踪与分析用户反馈:淘宝/天猫商品评论API的应用实践

实时追踪与分析用户反馈是电商平台提升用户体验、优化产品策略的重要手段。淘宝/天猫作为国内领先的电商平台&#xff0c;其商品评论API接口为商家提供了强大的数据支持&#xff0c;帮助商家实时追踪用户反馈并进行深入分析。以下是淘宝/天猫商品评论API在实时追踪与分析用户反…

推荐一款Win11主题WPF UI框架

最近在微软商店&#xff0c;官方上架了新款Win11风格的WPF版UI框架【WPF Gallery Preview 1.0.0.0】,这款应用引入了前沿的Fluent Design UI设计&#xff0c;为用户带来全新的视觉体验。 WPF Gallery简介 做为一关注前沿资讯的开发人员&#xff0c;首先关注的是应用WPF Gallery…

HTML(27)——渐变

渐变是多个颜色逐渐变化的效果&#xff0c;一般用于设置盒子模型 线性渐变 属性&#xff1a;background-image : linear-gradient( 渐变方向 颜色1 终点位置, 颜色2 终点位置, ......&#xff09;&#xff1b; 取值: 渐变方向:可选 to 方位名词角度度数 终点位置:可选 百分…

Java语言+后端+前端Vue,ElementUI 数字化产科管理平台 产科电子病历系统源码

Java语言后端前端Vue,ElementUI 数字化产科管理平台 产科电子病历系统源码 Java开发的数字化产科管理系统&#xff0c;已在多家医院实施&#xff0c;支持直接部署。系统涵盖孕产全程&#xff0c;包括门诊、住院、统计和移动服务&#xff0c;整合高危管理、智能提醒、档案追踪等…

idea运行旧的项目如何引入jar包

背景: 有一个旧项目,年份不详, 生产环境运行正常, 生产环境jenkins打包正常;部分jar包为私包,已无法下载 现在要对这个项目进行调试修改 从生产环境下载正常的jar包解压找到lib把lib放到项目目录中 然后选者对应的jdk版本: 一个模块一个模块的 把刚才的库加进去 然后试着启…

Unity海面效果——5、水沫和海平线

Unity引擎制作海面效果 大家好&#xff0c;我是阿赵。 继续做海面效果&#xff0c;上次做完了漫反射颜色和水波动画&#xff0c;还有法线和高光效果。 原则上来说&#xff0c;这个海面已经基本能看了&#xff0c;从性能的考虑&#xff0c;到这里差不多可以停止了。不过有些细节…

文章SameStr(四):图4代码

“Publication Figure 4” 百度云盘链接: https://pan.baidu.com/s/15g7caZp354zIWktpnWzWhQ 提取码: 4sh7 Libraries Standard Import library(tidyverse) library(cowplot) library(scales) library(ggpubr)Special library(caret) library(plotROC) library(tidymodel…

AIGC:为创意产业注入新质生产力

在当今数字化浪潮下&#xff0c;人工智能&#xff08;AI&#xff09;正以惊人的速度重塑着各行各业&#xff0c;特别是在创意产业领域&#xff0c;AI所带来的变革显得尤为深刻且广泛。 我深切感受到AIGC&#xff08;Artificial Intelligence Generated Content&#xff0c;即人…

gen_cross_contour_xld 为每个输入点生成一个十字形状的XLD轮廓。

gen_cross_contour_xld Name 名称 gen_cross_contour_xld — Generate one XLD contour in the shape of a cross for each input point. 为每个输入点生成一个十字形状的XLD轮廓。 Signature 签名 gen_cross_contour_xld( : Cross : Row, Col, Size, Angle : ) Descripti…

uniapp开发android调试工具

程序运行在真机后&#xff0c;点击Hbuilder菜单栏中的视图&#xff0c;点击下方的显示Webview调试控制台 下方就会展示你在手机端操作的界面 点击需要在电脑端调试的界面&#xff0c;界面会在新开的浏览器中展示&#xff0c;这样一些h5浏览器无法点击出来的样式就可以这样调试了…

【Java】搜索引擎设计:信息搜索怎么避免大海捞针?

一、内容分析 我们准备开发一个针对全网内容的搜索引擎&#xff0c;产品名称为“Bingoo”。 Bingoo的主要技术挑战包括&#xff1a; 针对爬虫获取的海量数据&#xff0c;如何高效地进行数据管理&#xff1b;当用户输入搜索词的时候&#xff0c;如何快速查找包含搜索词的网页…

零基础STM32单片机编程入门(十一) OLED显示屏实战含源码视频

文章目录 一.概要二.0.96寸OLED屏介绍1.OLED屏外观图2.OLED屏特点3.OLED屏接口定义4.OLED屏原理图5.OLED屏像素分辨率 三.字库取模软件PCtoLCD2002介绍四.STM32单片机驱动OLED显示实验五.CubeMX工程源代码下载六.讲解视频链接地址七.小结 一.概要 OLED被称为有机激光二极管显示…