`
cakin24
  • 浏览: 1389132 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

openssl源代码介绍

阅读更多
openssl源代码主要由eay库ssl库工具源码范例源码以及测试源码组成。
一 eay库是基础的库函数,提供了很多功能。源代码放在crypto目录下。包括如下内容:
1、asn.1 DER编码解码(crypto/asn1目录),它包含了基本asn1对象的编解码以及数字证书请求、数字证书、CRL撤销列表以及PKCS8等最基本的编解码函数。这些函数主要通过宏来实现。
2、抽象IO(BIO,crypto/bio目录),本目录下的函数对各种输入输出进行抽象,包括文件、内存、标准输入输出、socket和SSL协议等。
3、大数运算(crypto/bn目录),本目录下的文件实现了各种大数运算。这些大数运算主要用于非对称算法中密钥生成以及各种加解密操作。另外还为用户提供了大量辅助函数,比如内存与大数之间的相互转换。
4、字符缓存操作(crypto/buffer目录)。
5、配置文件读取(crypto/conf目录),openssl主要的配置文件为openssl.cnf。本目录下的函数实现了对这种格式配置文件的读取操作。
6、DSO(动态共享对象,crypto/dso目录),本目录下的文件主要抽象了各种平台的动态库加载函数,为用户提供统一接口。
7、硬件引擎(crypto/engine目录),硬件引擎接口。用户如果要写自己的硬件引擎,必须实现它所规定的接口。
8、错误处理(crypto/err目录),当程序出现错误时,openssl能以堆栈的形式显示各个错误。本目录下只有基本的错误处理接口,具体的的错误信息由各个模块提供。各个模块专门用于错误处理的文件一般为*_err..c文件。
9、对称算法、非对称算法及摘要算法封装(crypto/evp目录)。
10、HMAC(crypto/hmac目录),实现了基于对称算法的MAC。
11、hash表(crypto/lhash目录),实现了散列表数据结构。openssl中很多数据结构都是以散列表来存放的。比如配置信息、ssl session和asn.1对象信息等。
12、数字证书在线认证(crypto/ocsp目录),实现了ocsp协议的编解码以及证书有效性计算等功能。
13、PEM文件格式处理(crypto/pem),用于生成和读取各种PEM格式文件,包括各种密钥、数字证书请求、数字证书、PKCS7消息和PKCS8消息等。
14、pkcs7消息语法(crypto/pkcs7目录),主要实现了构造和解析PKCS7消息;
15、pkcs12个人证书格式(crypto/pckcs12目录),主要实现了pkcs12证书的构造和解析。
16、队列(crypto/pqueue目录),实现了队列数据结构,主要用于DTLS。
17、随机数(crypto/rand目录),实现了伪随机数生成,支持用户自定义随机数生成。
18、堆栈(crypto/stack目录),实现了堆栈数据结构。
19、线程支持(crypto/threads),openssl支持多线程,但是用户必须实现相关接口。
20、文本数据库(crypto/txt_db目录)。
21、x509数字证书(crypto/x509目录和crypto/x509v3),包括数字证书申请、数字证书和CRL的构造、解析和签名验证等功能。
22、对称算法(crypto/aes、crypto/bf、crypto/cast、ccrypto/omp和crypto/des等目录)。
23、非对称算法(crypto/dh、crypto/dsa、crypto/ec和crypto/ecdh)。
24、摘要算法(crypto/md2、crypto/md4、crypto/md5和crypto/sha)以及密钥交换/认证算法(crypto/dh 和crypto/krb5)。
 
二 ssl库所有源代码在ssl目录下,包括了sslv2、sslv3、tlsv1和DTLS的源代码
各个版本基本上都有客户端源码(*_clnt.c)、服务源码(*_srvr.c)、通用源码(*_both.c)、底层包源码(*_pkt.c)、方法源码(*_meth.c)以及协议相关的各种密钥计算源码(*_enc.c)等,都很有规律。
 
三 工具源码主要在crypto/apps目录下,默认编译时只编译成openssl(windows下为openssl.exe)可执行文件。该命令包含了各种命令工具。此目录下的各个源码可以单独进行编译。
 
四 范例源码在demo目录下,另外engines目录给出了openssl支持的几种硬件的engines源码,也可以作为engine编写参考。
 
五 测试源码主要在test目录下。
1
0
分享到:
评论

相关推荐

    openssl最新源代码

    openssl最新源代码openssl最新源代码openssl最新源代码openssl最新源代码openssl最新源代码openssl最新源代码openssl最新源代码openssl最新源代码openssl最新源代码openssl最新源代码openssl最新源代码openssl最新源...

    openssl源代码

    在描述中提到的 "openssl源代码" 指的是 OpenSSL 库的原始编程代码,这为开发者提供了一个深入学习和自定义 SSL/TLS 功能的机会。 在 OpenSSL 的源代码中,你可以找到以下关键知识点: 1. **加密算法**:OpenSSL ...

    OpenSSL源代码

    标题中的"OpenSSL源代码"指的是OpenSSL项目的原始编程代码,这些代码用于构建和定制OpenSSL库和相关工具。`openssl-1.0.0s.tar.gz`是一个压缩文件,通常在Linux或类Unix系统中使用,包含了OpenSSL的特定版本——...

    openssl源代码,0.9.8b版本,曾经使用最多的一个版本

    这个版本的openssl代码使用挺广泛的。后来由于1.0版本之前的版本都存在bug。没人用了。但是很多老的项目依然是使用这个版本的openssl。 而且据我所知老版本的openssl和新版本的在某些接口上存在差异。新版本为了支持...

    openssl源代码openssl-3.0.1.tar.gz openssl-1.1.1m.tar.gz

    在您提供的压缩包中,包含了两个不同版本的OpenSSL源代码:openssl-3.0.1.tar.gz 和 openssl-1.1.1m.tar.gz。 **OpenSSL 3.0.1:** OpenSSL 3.0.1 是 OpenSSL 的最新主要版本,它引入了多项改进和新特性。这个版本...

    openssl源代码以及编译好的win32动态库静态库

    在您提供的资源中,“openssl源代码”指的是OpenSSL项目的原始编程代码,通常是用C语言编写的。这些源代码允许开发者深入理解OpenSSL的工作原理,并根据需求进行定制或扩展。源代码对于开发者来说是宝贵的资源,他们...

    openssl-3.3.0 源代码

    开源openssl源代码,分享给没有外网的同学

    openssl-1.0.2p.tar.gz源代码

    **OpenSSL 源代码详解** OpenSSL 是一个强大的安全套接字层密码库,包含各种主要的密码算法、常用的密钥和证书封装管理功能以及 SSL 协议,并提供丰富的应用程序用于测试或其他目的。在本篇文章中,我们将深入探讨 ...

    penssl_1.0.2源代码以及编译后的lib库

    在本资源中,我们讨论的是 OpenSSL 的 1.0.2 版本的一个 beta 版本,其主要包含源代码和编译后的库文件,适用于 Windows 平台。 首先,`openssl-1.0.2-beta1.tar.gz` 文件是 OpenSSL 1.0.2 beta1 版本的源代码包。...

    openssl-1.0.2d源代码

    **OpenSSL 1.0.2d 源代码详解** OpenSSL 是一个开源的库,主要用于实现安全套接层(SSL v2/v3)和传输层安全(TLS v1/x)协议,同时也包含了用于加密算法、证书操作、哈希函数等大量功能的工具。在 `openssl-1.0.2d...

    openssl代码

    文件名`openssl-1.0.1l.tar.gz`表示的是OpenSSL的1.0.1l版本,这是一个源代码压缩包。这个特定版本可能修复了一些已知的安全漏洞,并可能包含性能改进。通常,用户会下载源代码,解压后编译安装到本地系统。 **...

    windows下编译openssl 1.1.1所需要的东西打包

    在Windows环境下编译OpenSSL 1.1.1是一个涉及多步骤的过程,主要涉及到Perl、NASM(Netwide Assembler)和OpenSSL源代码包。下面将详细介绍这些关键组件以及编译过程中的重要知识点。 首先,Perl是Perl编程语言的一...

    xml2、sqlite3、openssl、mqtt源代码

    综上所述,XML2、SQLite3、OpenSSL和MQTT涵盖了数据解析、数据库管理、网络安全和物联网通信等多个IT关键领域,它们的源代码对于软件开发人员来说是一份宝贵的资源,有助于提升技术水平和开发效率。

    openssl-1.1.0-pre1库源代码及安装方法

    首先,从 OpenSSL 官方网站下载最新版本的源代码,例如本例中的 `openssl-1.1.0-pre1.tar.gz`。你可以使用 `wget` 命令或直接在浏览器中下载。 2. **解压源代码**: 使用 `tar` 命令解压下载的文件: ``` tar -...

    使用openssl中aes加密算法实现文件的加密解密(源代码)

    主要聚焦于EVP_aes_128_ecb和EVP_aes_256_ecb两种模式,并提供了完整的源代码示例。通过本教程的学习,读者可以更好地理解和掌握OpenSSL库中加密解密函数的使用方法。 #### 二、OpenSSL简介 OpenSSL是一个强大的...

    QTwindows下OpenSSL的使用

    本教程将详细介绍如何在Qt Windows平台下配置和使用OpenSSL。 首先,你需要下载适用于Windows的OpenSSL库。OpenSSL提供了静态库和动态库两种形式,动态库文件通常以`.dll`为扩展名。在本案例中,你已经拥有一个名为...

    openssl-1.0.1g heartbleed漏洞已经修复

    1. **下载更新**: 首先,管理员需要从官方网站下载OpenSSL 1.0.1g的源代码包。 2. **编译安装**: 解压源代码,按照标准流程进行编译和安装,通常包括以下步骤: - `./config` - `make` - `make install` 3. **...

Global site tag (gtag.js) - Google Analytics