欢迎来到天天文库
浏览记录
ID:13092761
大小:204.16 KB
页数:8页
时间:2018-07-20
《openssl学习整理201210》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、OPENSSL学习整理1OPENSSL简介openssl是一个功能丰富且自包含的开源安全工具箱。它提供的主要功能有:SSL协议实现(包括SSLv2、SSLv3和TLSv1)、大量软算法(对称/非对称/摘要)、大数运算、非对称算法密钥生成、ASN.1编解码库、证书请求(PKCS10)编解码、数字证书编解码、CRL编解码、OCSP协议、数字证书验证、PKCS7标准实现和PKCS12个人数字证书格式实现等功能。openssl采用C语言作为开发语言,这使得它具有优秀的跨平台性能。openssl支持Linux、UNIX、w
2、indows、Mac等平台。openssl目前最新的版本是0.9.8e。2OPENSSL结构整个软件包可大概分为三个主要功能部分:密码算法库、SSL协议库以及应用程序。OpenSSL的目录结构是围绕这三个功能部分进行规划的。OpenSSL的根目录下的文件包含OpenSSL各个平台下编译安装的说明文档、编译安装的配置文件以及OpenSSL本身版本变化的一些说明文档。诸如INSTALL.*这样名称的文件,都是安装编译说明文件,后缀名是平台的名称。比如INSTALL.w32,就是Windows平台的OpenSSL安装编
3、译说明文件。只有Linux的安装编译说明文件是不带后缀的,就是INSTALL。图2-1列出了系统平台和对应安装文件的关系其它一些文件的作用。图2-1openssl安装说明文件及相应平台2.1非重要目录MacOS、ms、os2以及VMS这几个目录,包含了在不同的平台编译时候的环境变量配置文件,在安装编译完成之后,这几个目录就没有作用了。Bugs、certs、perl、shlib、times、tools以及utils目录都是一些辅助的目录,里面包含的文件对于我们使用OpenSSL进行工作并没有很多的帮助,所以可以不作
4、深究。当然,这些目录中的文件在编译的时候起的作用可能是不可或缺的,但是这并非关注的焦点。2.2重要目录(参考图2-2)Crypto目录是OpenSSL所有密码算法和一些PKI相关标准源码存放的目录,也是OpenSSL最重要的一个目录。SSL目录是SSL协议各个版本的实现源码存放的目录。Doc目录是OpenSSL使用的说明文档存放的目录,这个目录对于OpenSSL使用者来说具有“芝麻开门”的作用。Apps目录存放了OpenSSL所用应用程序的源代码文件,也是研究OpenSSL的API很好的例子。Demos目录就是一
5、些OpenSSL应用的例子,在开始使用OpenSSL进行工作之前,可以看看这个目录,或许会有所帮助。Include目录是使用OpenSSL的库进行编程的时候可能需要使用到的一些头文件。Test目录测试OpenSSL一些自身测试程序源文件所在的地方。图2-2OPENSSL重要目录2.3其它目录在Windows平台下将OpenSSL编译成功后,会增加三个新的目录:inc32、out32dll、tmp32dll。Inc32目录与Include目录相似,存放的是Windows平台下使用OpenSSL进行编程需要包含的头文
6、件。Out32dll则存放了OpenSSL编译成功后的可执行应用程序、链接库LIB文件和动态DLL文件。Tmp32dll则是在编译过程中存放OBJ等临时文件的目录。2.4算法目录openSSL的算法目录Crypto目录包含了OpenSSL密码算法库的所有源代码文件,是OpenSSL中最重要的目录之一。OpenSSL的密码算法库包含了OpenSSL中所有密码算法、密钥管理和证书管理相关标准的实现,在Windows下编译后的库文件名为libeay32.lib,在Linux下编译后生产的库文件名为libcrypto.a
7、。Crypto目录下包含了众多的子目录,这些目录大多数以相关的算法或标准名称的简写命名。当然,并非所有这些目录存放的源文件都是密码算法和标准,有些是OpenSSL本身的一些相关功能文件,如BIO、DSO和EVP等。2.5文档目录Doc文档目录:OpenSSL的文档使用Perl文档格式保存,为.pod文件,对于Windows平台用户,可使用Perl工具pod2text或pod2html命令将文档转换成txt文本格式或html格式以方便阅读。若用写字板或其它阅读器打开这些文档会使格式显得凌乱。OpenSSL的文档主要
8、分为三部分:应用程序说明文档、密码算法库API文档以及SSL协议库API文档。分别对应Doc根目录下的三个子目录Apps、Crypto和SSL。由于非商业软件开发的共同缺点,OpenSSL提供的文档并不全面,甚至可以说是非常有限,而且不能及时跟着版本更新。2.6DOC文档目录的子目录Apps包含了大部分OpenSSL应用程序的使用和参数说明,并有部分例子。Crypto则包
此文档下载收益归作者所有