ARM平台移植 openssl-1.1.0

系统环境:Ubuntu 14.04.3 LTS
源码:openssl-1.1.0-pre1.tar.gz
交叉编译环境:arm-none-linux-gnueabi-

[zhaojq@virtual-machine]# tar -xzvf  openssl-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实例
#include <stdio.h>
#include <openssl/sha.h>

int main ()
{
  SHA_CTX s;
  int i, size;
  char c[512];
  unsigned char 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
移植成功。

  • 6
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
安卓openssl-1.1.0o静态库是一种用于安卓操作系统的开源加密库。它提供了一系列的加密算法和安全协议,用于保护数据的安全传输和存储。 首先,静态库是在编译时被链接到可执行文件中的库,与动态库相对。安卓openssl-1.1.0o静态库可以在构建安卓应用程序时被链接进来,以提供各种加密和安全功能。 该静态库支持各种功能,包括对数据进行加密、解密、签名、验证、安全连接以及生成和管理密钥等。它使用了一系列的加密算法,如AES、DES、RSA等,保证了数据的机密性和完整性。此外,它也支持安全协议,如SSL/TLS,用于在网络传输中保护数据的安全。 安卓openssl-1.1.0o静态库具有良好的可移植性和跨平台性,能够在不同的安卓设备上运行。它提供了简单易用的API接口,开发人员可以直接调用这些接口来实现各种加密和安全功能。 使用这个静态库,开发人员可以在安卓应用程序中集成强大的加密和安全功能,保护用户的隐私和敏感数据。这可以用于各种领域,如银行和金融、电子商务、社交媒体、在线支付等。同时,它也为应用程序提供了更高的安全性和信任度,使得用户可以放心使用这些应用程序。 总而言之,安卓openssl-1.1.0o静态库是一种强大的开源加密库,为安卓应用程序提供了丰富的加密和安全功能,有助于保护用户的数据和隐私。它是安卓开发人员们实现安全应用的重要工具。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值