ITPub博客

首页 > 应用开发 > > ARM平台移植 openssl-1.1.0

ARM平台移植 openssl-1.1.0

作者:Boriszhang 时间:2019-09-06 14:27:38 0 删除 编辑

系统环境:Ubuntu 14.04.3 LTS

源码:openssl-1.1.0-pre1.tar.gz

交叉编译环境:arm-none-linux-gnueabi-

[zhaojq@virtual-machine]# tar -xzvfopenssl-1.1.0-pre1.tar.gz

[zhaojq@virtual-machine]# cd openssl-1.1.0-pre1

[zhaojq@virtual-machine]# sudo -i

切换到root状态下

不然在config时会出现unable to create Makefile.new:权限不够

[root@virtual-machine]# ./config no-asm shared

no-asm 是在交叉编译过程中不使用汇编代码代码加速编译过程.原因是它的汇编代码是对arm格式不支持的

shared 生成动态连接库

--prefix 指定make install后生成目录的路径,不修改此项则默认为OPENSSLDIR目录(/usr/local/ssl)

配置完成后修改Makefile文件,CC=和--host=无效

#CC= gcc

CC= arm-none-linux-gnueabi-gcc

删除 CFLAG= 中的-march=i486

必须删除掉,默认的是x486体系,即使设置了交叉编译环境,还是会默认这个体系

EX_LIBS=-ldl

#AR= ar $(ARFLAGS) r

AR= arm-none-linux-gnueabi-ar $(ARFLAGS) r

#RANLIB= /usr/bin/ranlib

RANLIB= arm-none-linux-gnueabi-ranlib

#NM= nm

NM= arm-none-linux-gnueabi-nm

[root@virtual-machine]# make

[root@virtual-machine]# make install

安装成功

交叉编译后的动态库文件在/usr/local/ssl目录

[zhaojq@virtual-machine /usr/local/ssl]# ls

bin  certs  include  lib  man  misc  openssl.cnf  private

查看库文件格式

[zhaojq@virtual-machine /usr/local/ssl/lib]#readelf -h libssl.so

ELF 头:

Machine:

ARM

编译test实例

[cpp]view plaincopy

#include  

#include  

  

int main ()  

{  

  SHA_CTX s;  

int i, size;  

char c[512];  

unsignedchar hash[20];  

// 初始化 SHA Contex, 成功返回1,失败返回0  

  SHA1_Init(&s);  

  

// 循环调用此函数,可以将不同的数据加在一起计算SHA1,成功返回1,失败返回0  

while ((size=read (0, c, 512)) > 0)  

    SHA1_Update(&s, c, size);  

  

// 输出SHA1结果数据,成功返回1,失败返回0  

  SHA1_Final(hash, &s);  

  

for (i=0; i < 20; i++)  

printf ("%.2x", (int)hash[i]);  

printf ("\n");  

}  

[zhaojq@virtual-machine]# arm-none-linux-gnueabi-gcc sha1_test.c -I/usr/local/ssl/include/ -L/usr/local/ssl/lib -lssl -lcrypto -ldl -o sha1_test.out

编译通过,在当前目录生成sha1_test.out可执行文件

将/usr/local/ssl/lib目录下的所有文件和pkgconfig,engines目录都拷贝到ARM设备上文件系统的/lib目录,

将sha1_test.out拷贝到ARM设备上

执行./sha1_test.out < sha1_test.out

输出:78b32a7882a5ffea5d48b2f2b6bea633fa78e0e1

移植成功。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/2435/viewspace-3130445/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2019-08-16

  • 博文量
    110
  • 访问量
    1068