首页 > cryptology > OpenSSL简介使用

OpenSSL简介使用

  OpenSSL为网络通信提供安全及数据完整性的一种安全协议,囊括了主要的密码算法、常用的密钥和证书封装管理功能以及SSL协议,并提供了丰富的应用程序供测试或其它目的使用。

1、OpenSSL总体结构

* OpenSSL真正的精华所在是那些目录,也就是源程序了。并非所有这些子目录都是很重要的,如:
o MacOS、ms、os2以及VMS这几个目录,包含了在不同的平台编译时候的环境变量配置文件,在安装编译完成之后,这几个目录就没有作用了。
o Bugs、certs、perl、shlib、times、tools以及utils目录都是一些辅助的目录,里面包含的文件对于使用OpenSSL进行工作并没有很多的帮助,所以可以不作深究。
+ 这些目录中的文件在编译的时候起的作用可能是不可或缺的。

2、OpenSSL部分目录的功能说明

存放了OpenSSL自身功能测试程序的源码文件

Test 存放了使用OpenSSL的库时需要的头文件。

Include 存放了一些基于OpenSSL的应用程序例子,这些例子一般都很简单,演示怎么使用OpenSSL其中的一个功能。

Demos 存放了OpenSSL中所有的使用说明文档,包含三个部分:应用程序说明文档、加密算法库API说明文档以及SSL协议API说明文档。

Doc 存放OpenSSL中所有应用程序源码文件,如CA、X509等应用程序的源文件就存放在这里。也是研究OpenSSL的API很好的例子

pps 存放OpenSSL中SSL协议各个版本和TLS 1.0协议源码文件,包含了OpenSSL协议库的所有内容。

SSL 存放OpenSSL所有加密算法源码文件和相关标注如X.509源码文件,是OpenSSL中最重要的目录,包含了OpenSSL密码算法库的所有内容。

Crypto 目录名

功能描述

* 若在Windows平台下将OpenSSL编译成功后,会增加三个新的目录:inc32、out32dll、tmp32dll。
o Inc32目录根Include目录相似,存放的是Windows平台下使用OpenSSL进行编程需要包含的头文件。
o Out32dll则存放了OpenSSL编译成功后的可执行应用程序、链接库LIB文件和动态DLL文件。
o Tmp32dll则是在编译过程中存放OBJ等临时文件的目录

3、OpenSSL算法目录 Crypto

* OpenSSL的密码算法库包含了OpenSSL中所有密码算法、密钥管理和证书管理相关标准的实现,在Windows下编程后的库文件名为libeay32.lib,在Linux下编译后生产的库文件名为libcrypto.a。Crypto目录下包含了众多的子目录,这些目录大多数以相关的算法或标准名称的简写命名
o 对OpenSSL提供的密码算法大概总结一下:
+ 对称加密算法8种,其中7种是分组加密算法,仅有的一种流加密算法是RC4。这7种分组加密算法分别是AES、DES、Blowfish、CAST、IDEA、RC2、RC5,都支持电子密码本模式(ECB)、加密分组链接模式(CBC)、加密反馈模式(CFB)和输出反馈模式(OFB)四种常用的分组密码加密模式。其中,AES使用的加密反馈模式(CFB)和输出反馈模式(OFB)分组长度是128位,其它算法使用的则是64位。事实上,DES算法里面不仅仅是常用的DES算法,还支持三个密钥和两个密钥3DES算法。
+ 非对称加密算法4种,包括DH算法、RSA算法、DSA算法和椭圆曲线算法(EC)。DH算法一般用户密钥交换。RSA算法既可以用于密钥交换,也可以用于数字签名,当然,如果你能够忍受其缓慢的速度,那么也可以用于数据加密。DSA算法则一般只用于数字签名。
+ 信息摘要算法5种,分别是MD2、MD5、MDC2、SHA(SHA1)和RIPEMD。

4、OpenSSL文档目录Doc

* 由于非商业软件开发的共同缺点,OpenSSL提供的文档并不全面,甚至可以说是非常有限,而且不能及时跟着版本更新。但是对于初学者来说,这些文档能解决不少问题 。
* OpenSSL的文档使用Perl文档格式保存,为.pod文件 。
o 使用Perl工具pod2text或者pod2html命令将文档转换成txt文本格式或者html格式以方便阅读。
* OpenSSL的文档主要分为三部分:
o 应用程序说明文档、密码算法库API文档以及SSL

评论 ( 0 )
  1. 还没有评论
评论已关闭.
Trackbacks & Pingbacks ( 0 )
  1. 还没有 trackbacks
  2. Trackbacks 已关闭