am3352 安装ssl



系统环境:Ubuntu 14 4.4.0-31-generic
源码:openssl-1.0.2l.tar.gz

交叉编译环境:arm-linux-gnueabihfhf-

 

[femx@virtual-machine]# tar-xzvf openssl-1.0.2l.tar.gz

[femx@virtual-machine]# cd openssl-1.0.2l

 

[root@virtual-machine]# ./configno-asm shared –prefix=/usr/local/ssl-arm

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

shared生成动态连接库

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

 

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

#CC=gcc
CC= arm-linux-gnueabihf-gcc

 

删除 CFLAG= 中的-march=i486

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

 

EX_LIBS=-ldl

 

#AR=ar $(ARFLAGS) r

AR=arm-linux-gnueabihf-ar $(ARFLAGS) r


#RANLIB= /usr/bin/ranlib

RANLIB=arm-linux-gnueabihf-ranlib


#NM= nm

NM=arm-linux-gnueabihf-nm

 

[root@vm14]# make

[root@vm14]# makeinstall

安装成功

 

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

[femx@vm14]: /usr/local/ssl-arm]#ls
bin  certs  include  lib  man  misc  openssl.cnf private

查看库文件格式

[femx@vm14 /usr/local/ssl-arm/lib]# readelf-h libssl.so
ELF
头:
  Machine:  
ARM

 

编译test实例

  1. #include <stdio.h>  
  2. #include <openssl/sha.h>  
  3.   
  4. int main ()  
  5. {  
  6.   SHA_CTX s;  
  7.   int i, size;  
  8.   char c[512];  
  9.   unsigned char hash[20];  
  10.   // 初始化 SHA Contex, 成功返回1,失败返回0  
  11.   SHA1_Init(&s);  
  12.   
  13.   // 循环调用此函数,可以将不同的数据加在一起计算SHA1,成功返回1,失败返回0  
  14.   while ((size=read (0, c, 512)) > 0)  
  15.     SHA1_Update(&s, c, size);  
  16.   
  17.   // 输出SHA1结果数据,成功返回1,失败返回0  
  18.   SHA1_Final(hash, &s);  
  19.   
  20.   for (i=0; i < 20; i++)  
  21.     printf ("%.2x", (int)hash[i]);  
  22.   printf ("\n");  
  23. }  <openssl/sha.h>

 

ntmain (){  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");}[femx@vm14]#arm-linux-gnueabihf-gcc sha1_test.c -I/usr/local/ssl-arm-arm/include/ -L/usr/local/ssl-arm/lib-lssl -lcrypto -ldl -o sha1_test.out

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

 

/usr/local/ssl-arm/lib目录下的所有文件和pkgconfigengines目录都拷贝到ARM设备上文件系统的/lib目录,
sha1_test.out拷贝到ARM设备上

 

执行./sha1_test.out < sha1_test.out

输出:78b32a7882a5ffea5d48b2f2b6bea633fa78e0e1

移植成功。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lindong0217

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值