openssl库简介和编译安装

一、简介

OpenSSL ,即open secure sockets layer,是一个开源的安全套接字层的密码库。包括常用的密码加解密算法、常用的密钥算法、证书管理和SSL协议。

1、库的主要内容

OpenSSL 库主要包含三大部分:

openssl: 多用途的命令行工具,可以执行交互或批量命令。

libcrypto: 加解密算法库。

libssl:加密模块应用库,实现了ssl及tls。

2、库的功能

OpenSSL 库主要实现对称加密与非对称加密、密钥证书管理的功能。

①、加密

a、对称加密算法

OpenSSL 提供了8种对称加密算法,分别是AES、DES、Blowfish、CAST、IDEA、RC2、RC5、RC4。

b、非对称加密算法

OpenSSL提供了4种非对称加密算法,包括DH算法、RSA算法、DSA算法和椭圆曲线算法(EC)。DH一般用于密钥交换。RSA算法既可以用于密钥交换,也可以用于数字签名,但用于数据加密,RSA算法的速度比较慢。DSA算法则一般只用于数字签名。

②、摘要

OpenSSL实现了5种信息摘要算法,分别是MD2、MD5、MDC2、SHA(SHA1)和RIPEMD。

③、生成密码

④、生成随机数

⑤、生成密钥对

⑥、证书管理

生成证书,颁发证书,吊销证书

 

二、编译安装

OpenSSL库的下载,可以从GitHub上下载:https://github.com/openssl/openssl

OpenSSL库是用C语言实现的,可将其编译为库文件后再对其进行调用,可编译为静态库和动态库,编译安装的方法可以参考源码根目录的INSTALL文件和各个平台的NOTES文件。以下我们将简单介绍其在pc linux和嵌入式平台的快速编译安装方法。

1、x86 UNIX运行平台

例如在Ubuntu平台运行OpenSSL库。

①、解压源码,进入源码目录

②、配置

使用命令:

./config --prefix=绝对路径安装目录

由于默认的安装路径是/usr/local,属于系统目录,安装在此目录下,该Linux环境都能使用OpensSSL的命令工具,但有时我们只是为了将OpenSSL编译为库文件,将其集成到我们的代码工程调用,而不像让当前的Linux安装OpenSSL命令,这时我们要先通过“--prefix”选项指定安装目录,方便我们将OpenSSL作为库使用。“--prefix”选项后带的是绝对路径。

eg:

./config --prefix=/home/hbguo/prj/openssl/release_x86_64_linux

③、编译

命令:

make

④、安装

命令:

make install

安装成功后,可以在“--prefix”指定的目录中看到bin目录、lib目录、include目录等。

 

2、交叉编译,在嵌入式平台运行

①、解压源码,进入源码目录

②、配置

使用命令:

./config no-asm --prefix=绝对路径安装目录 --cross-compile-prefix=交叉编译器的前缀

说明:

不同交叉编译器配置的./config选项可能不同,有些选项特定交叉编译器是不支持的,而默认就是开启的,需要把这些选项关闭才能编译通过,具体可以参考源码根目录的“INSTALL”文档关于config选项的说明,根据自己实际项目是否会使用这些功能来确定是否可以关闭。

eg:

a、使用arm-xilinx-gcc交叉编译器进行编译,如下配置可以编译通过,同时生成静态库和动态库。

./config no-asm --prefix=home/hbguo/prj/openssl/release_cross --cross-compile-prefix=arm-xilinx-linux-gnueabi-

 

(no-asm,指定不使用汇编代码)

b、使用arm-linux-gcc的交叉编译器,需要关闭更多选择才能编译通过,同时生成静态库和动态库。

./config no-asm no-tests no-fips no-capieng --prefix=/home/hbguo/prj/openssl/release_cross --cross-compile-prefix=arm-none-linux-gnueabi-

③、编译

在编译之前,先确认要运行的嵌入式平台系统是多少位的,./config 生成的Makefile中,默认是支持64位的系统,如果是要在32位的系统上运行OpenSSL那么需要将Makefile文件中所有的将-m64选项全部删除掉。比如我是要在32位的mips架构嵌入式硬件上运行,需要删除Makefile文件中所有的将-m64选项。然后进行编译。

(另外,如果是使用arm-linux-gcc的交叉编译器,那么还要删除Makefile中的“defs”编译选项,不然编译报错,arm-linux-gcc编译器不支持该选项。)

最后进行编译,命令:

make

④、安装

命令:

make install

 

 

  • 5
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值