当前位置:   article > 正文

openssl交叉编译-移植ARM_openssl交叉编译arm

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 

交叉编译环境 

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

  1. [root@localroot ~]# cat /etc/redhat-release
  2. CentOS Linux release 7.9.2009 (Core)
  3. [root@localroot ~]# uname -a
  4. 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
  5. [root@localroot ~]# lscpu | grep Architecture
  6. Architecture: x86_64

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

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

交叉编译步骤

  1. # 步骤1
  2. ./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-
  3. # no-asm: 是在交叉编译过程中不使用汇编代码代码加速编译过程,原因是它的汇编代码是对arm格式不支持的。
  4. # shared :生成动态连接库。
  5. # no-async:没有提供GNU C的ucontext库。
  6. # --prefix:安装目录
  7. # CROSS_COMPILE:交叉编译工具链前缀
  1. # 步骤2
  2. make

错误1:

  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.
  2. BEGIN failed--compilation aborted at /home/libopenssl/openssl-3.0.14/util/perl/OpenSSL/config.pm line 19.
  3. Compilation failed in require at ./Configure line 23.
  4. BEGIN failed--compilation aborted at ./Configure line 23.

解决方法:

yum -y install perl-IPC-Cmd

错误2:

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

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

  1. # 步骤4
  2. 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算法啦。 

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号