摘要:
9.1 随机数 随机数是一种无规律的数,但是真正做到完全无规律也比较困难,所有一般将它称为伪随机数。 9.2 openssl随机数数据结构与源码 a.openssl生成随机数的源码位于crypto/rand目录下。openssl维护一个内部随机状态数据(md_rand.c中定义的全局变量state和 阅读全文
摘要:
8.1 概述 openssl采用自定义的配置文件获取配置信息。 段信息,段信息由[xxx]来表示,其中xxx为段标识; 属性-值信息,表示方法为a=b,这种信息可以在一个段内页可以不属于任何段。 典型配置文件为apps/openssl.cnf(同时该文件也是openssl最主要的配置文件) # Op 阅读全文
摘要:
7.1 openssl抽象IOopenssl抽象(I/O abstraction,即BIO)是openssl对于io类型的抽象封装,包括:内存、文件、日志、标准输入输出、socket(TCP/UDP)、加解密、摘要和ssl通道等。Openssl BIO通过回调函数为用户隐藏了底层实现细节,所有的类型 阅读全文
摘要:
6.1 动态库加载 动态库加载函数能让用户在程序中加载所需要的模块,各个平台下的加载函数是不一样。动态加载函数一般有如下功能: a.加载动态库 比如windows下的函数LoadLibraryA;linux下的函数dloopen b.获取函数地址 比如windows下的函数GetProcAddres 阅读全文
摘要:
5.1 openssl内存分配 openssl供用户调用内存分配等函数主要在crypto/mem.c中实现,其那只的分配函数在crypto/mem_dbg.c中实现。默认情况下mem.c中函数mem_dbg.c中实现。如果用户的内存分配函数以及查找内存泄漏的函数,可以通过CRYPTO_set_mem 阅读全文
摘要:
4.1 哈希表 在一般的数据结构如线性表和树中,记录在结构中的相对位置与记录的关键字之间不存在确定的关系,在结构中查找记录时需要进行一系列的关键字比较。这一类查找方法建立在比较的基础上,查找的效率与比较次数密切相关。理想的情况是能直接找到需要的记录,因此必须在记录的存储位置和他的关键字之间建立的对应 阅读全文