前言:最早接触openssl是做硕士论文的时候,研究网格安全。实际工作是替换globus中openssl实现的gssapi(对称算法和非对称算法)的底层算法。初次接触openssl,都不知道怎么下手,我用了最笨的方法来替换对称算法:将RC4关键字替换掉,换成自己的对称算法。虽然最后也做完了,客户端支持读卡器之类的硬件,服务端支持pkcs11接口的PCI密码卡。但是做完之后也不知道有没用过(只有我自己测试过,从来没有跟其他系统联调过),因为globus很多还是用java来实现的。没见过巨型机长啥样,也没有网格应用环境,我的研究也就是理论研究而已。由于有些原因,第一年的硕士答辩没参加,延迟与一年。主要是论文没准备好,并且春节刚好家里有事情。第二年答辩勉强过。结果,省里后来抽检硕士论文,我的论文不合格。郁闷不已。所以我要写这篇文章,是动机之一了。后来做PMI,要做属性证书编解码。我又把openssl拿起来了,单独剥离了asn1模块。对openssl有更深的了解。我又没有记笔记的习惯,知道一点就在电脑上记录一点,甚至还把window下openssl提供的所有接口都写在一个文件里面。会一个函数就写一个,注释一个。时间长了,也有一定积累了。干脆,写本书得了。不过,openssl很多方面我到现在还是不清楚。有时候学习一个函数还得专门写程序来学习和调试它。有时候对我而言,学习是快乐的。我大概花了好几个月的时间在家里写代码调试程序,最终完成这本书
Openssl编程
第一章 基础知识 8
1.1 对称算法 8
1.2 摘要算法 9
1.3 公钥算法 9
1.4 回调函数 11
第二章 openssl 简介 . 13
2.1 openssl 简介 . 13
2.2 openssl 安装 . 13
2.2.1 linux 下的安装 13
2.2.2 windows 编译与安装 . 14
2.3 openssl 源代码 14
2.4 openssl 学习方法 16
第三章 堆栈 17
3.1 openssl 堆栈 . 17
3.2 数据结构 17
3.3 源码 18
3.4 定义用户自己的堆栈函数 . 18
3.5 编程示例 19
第四章 哈希表 21
4.1 哈希表 21
4.2 哈希表数据结构 . 21
4.3 函数说明 23
4.4 编程示例 25
第五章 内存分配 27
5.1 openssl 内存分配 27
5.2 内存数据结构 . 27
5.3 主要函数 28
5.4 编程示例 29
第六章 动态模块加载 . 30
6.1 动态库加载 30
6.2 DSO概述 . 30
6.3 数据结构 31
6.4 编程示例 32
第七章 抽象 IO 34
7.1 openssl 抽象 IO 34
7.2 数据结构 34
7.3 BIO 函数 . 36
7.4 编程示例 36
7.4.1 mem bio . 36
7.4.2 file bio . 37
7.4.3 socket bio 38
7.4.4 md BIO 39
7.4.5 cipher BIO . 40
7.4.6 ssl BIO . 41
7.4.7 其他示例 . 42
第八章 配置文件 43
8.1 概述 43
8.2 openssl 配置文件读取 43
8.3 主要函数 44
8.4 编程示例 44
第九章 随机数 46
9.1 随机数 46
9.2 openssl 随机数数据结构与源码 46
9.3 主要函数 48
9.4 编程示例 48
第十章 文本数据库 50
10.1 概述 50
10.2 数据结构 51
10.3 函数说明 51
10.4 编程示例 52
第十一章 大数 54
11.1 介绍 54
11.2 openssl 大数表示 54
11.3 大数函数 55
11.4 使用示例 58
第十二章 BASE64 编解码 . 64
12.1 BASE64 编码介绍 . 64
12.2 BASE64 编解码原理 64
12.3 主要函数 65
12.4 编程示例 66
第十三章 ASN1 库 . 68
13.1 ASN1 简介 . 68
13.2 DER 编码 . 70
13.3 ASN1 基本类型示例 70
13.4 openssl 的 ASN.1 库 73
13.5 用 openssl 的ASN.1 库 DER 编解码 . 74
13.6 Openssl的 ASN.1 宏 74
13.7 ASN1 常用函数 75
13.8 属性证书编码 . 89
第十四章 错误处理 93
14.1 概述 93
14.2 数据结构 93
14.3 主要函数 95
14.4 编程示例 97
第十五章 摘要与 HMAC 100
15.1 概述 100
15.2 openssl 摘要实现 100
15.3 函数说明 101
15.4 编程示例 101
15.5 HMAC 103
第十六章 数据压缩 104
16.1 简介 104
16.2 数据结构 104
16.3 函数说明 105
16.4 openssl 中压缩算法协商 106
16.5 编程示例 106
第十七章 RSA 107
17.1 RSA介绍 107
17.2 openssl的 RSA实现 107
17.3 RSA签名与验证过程 108
17.4 数据结构 109
17.4.1 RSA_METHOD . 109
17.4.2 RSA 110
17.5 主要函数 110
17.6 编程示例 112
17.6.1 密钥生成 112
17.6.2 RSA加解密运算 113
17.6.3 签名与验证 116
第十八章 DSA 119
18.1 DSA简介 119
18.2 openssl的 DSA实现 120
18.3 DSA数据结构 120
18.4 主要函数 121
18.5 编程示例 122
18.5.1 密钥生成 122
18.5.2 签名与验证 124
第十九章 DH . 126
19.1 DH算法介绍 126
19.2 openssl的 DH实现 127
19.3 数据结构 127
19.4 主要函数 128
19.5 编程示例 129
第二十章 椭圆曲线 132
20.1 ECC 介绍 . 132
20.2 openssl的 ECC 实现 133
20.3 主要函数 134
20.3.1 参数设置 134
20.3.2 参数获取 135
20.3.3 转化函数 136
20.3.4 其他函数 137
20.4 编程示例 139
第二十一章 EVP 143
21.1 EVP 简介 . 143
21.2 数据结构 . 143
21.2.1 EVP_PKEY . 143
21.2.2 EVP_MD . 144
21.2.3 EVP_CIPHER . 145
21.2.4 EVP_CIPHER_CTX . 146
21.3 源码结构 . 146
21.4 摘要函数 . 147
21.5 对称加解密函数 147
21.6 非对称函数 . 148
21.7 BASE64 编解码函数 149
21.8 其他函数 149
21.9 对称加密过程 151
21.10 编程示例 152
第二十二章 PEM 格式 . 159
22.1 PEM 概述 159
22.2 openssl的 PEM 实现 159
22.3 PEM 函数 160
22.4 编程示例 161
第二十三章 Engine 165
23.1 Engine 概述 165
23.2 Engine 支持的原理 165
23.3 Engine 数据结构 165
23.4 openssl 的 Engine 源码 . 166
23.5 Engine 函数 167
23.6 实现 Engine示例 . 168
第二十四章 通用数据结构 . 182
24.1 通用数据结构 182
24.2 X509_ALGOR 182
24.3 X509_VAL . 183
24.4 X509_SIG 185
24.5 X509_NAME_ENTRY . 186
24.6 X509_NAME 186
24.7 X509_EXTENSION . 192
24.8 X509_ATTRIBUTE 198
24.9 GENERAL_NAME 199
第二十五章 证书申请 . 203
25.1 证书申请介绍 . 203
25.2 数据结构 203
25.3 主要函数 204
25.4 编程示例 206
25.4.1 生成证书请求文件 206
25.4.2 解码证书请求文件 . 208
第二十六章 X509 数字证书 . 210
26.1 X509 数字证书 . 210
26.2 opessl 实现 . 210
26.3 X509 数据结构 . 210
26.4 X509_TRUST 与 X509_CERT_AUX . 213
26.5 X509_PURPOSE 215
26.6 主要函数 218
26.7 证书验证 221
26.7.1 证书验证项 221
26.7.2 Openssl 中的证书验证 . 221
第二十七章 OCSP 222
27.1 概述 222
27.2 openssl 实现 222
27.3 主要函数 222
27.4 编程示例 227
第二十八章 CRL 228
28.1 CRL 介绍 . 228
28.2 数据结构 228
28.3 CRL 函数 . 229
28.4 编程示例 230
第二十九章 PKCS7 233
29.1 概述 233
29.2 数据结构 233
29.3 函数 234
29.4 消息编解码 . 234
29.4.1 data 235
29.4.2 signed data . 235
29.4.3 enveloped 236
29.4.4 signed_and_enveloped 237
29.4.5 digest . 238
29.4.6 encrypted . 238
29.4.7 读取 PEM . 239
29.4.8 解码 pkcs7 240
第三十章 PKCS12 241
30.1 概述 241
30.2 openss实现 241
30.3 数据结构 241
30.4 函数 242
30.5 编程示例 244
第三十一章 SSL 实现 . 254
31.1 概述 254
31.2 openssl 实现 254
31.3 建立 SSL 测试环境 254
31.4 数据结构 255
31.5 加密套件 256
31.6 密钥信息 257
31.7 SESSION . 257
31.8 多线程支持 . 258
31.9 编程示例 258
31.10 函数 269
第三十二章 Openssl 命令 . 272
32.1 概述 272
32.2 asn1parse 272
32.3 dgst . 274
32.4 gendh 275
32.5 passwd 275
32.6 rand 276
32.7 genrsa . 277
32.8 req 277
32.9 x509 280
32.10 version 283
32.11 speed. 283
32.12 sess_id 284
32.13 s_server 284
32.14 s_client . 286
32.15 rsa . 288
32.16 pkcs7 289
32.17 dsaparam . 289
32.18 gendsa . 290
32.19 enc 291
32.20 ciphers 292
32.21 CA 292
32.22 verify 296
32.23 rsatul . 297
32.24 crl . 298
32.25 crl2pkcs7 . 299
32.26 errstr . 300
32.27 ocsp 300
32.28 pkcs12 303
32.29 pkcs8 305
32.30 s_time . 306
32.31 dhparam和 dh . 307
32.32 ecparam 309
32.33 ec 310
32.34 dsa 311
32.35 nseq 312
32.36 prime 312
32.37 smime . 313

截图:



欢迎投稿 职场/创业方向. 邮箱wangfzcom(AT)163.com:王夫子社区 » Openssl编程 中文 PDF 高清版 教你如何用Openssl编程 PDF 免费下载

点评 0

评论前必须登录!

登陆 注册