openssl教程完全版.doc

上传人:wj 文档编号:112947 上传时间:2022-10-03 格式:DOC 页数:653 大小:1.35MB
下载 相关 举报
openssl教程完全版.doc_第1页
第1页 / 共653页
openssl教程完全版.doc_第2页
第2页 / 共653页
openssl教程完全版.doc_第3页
第3页 / 共653页
openssl教程完全版.doc_第4页
第4页 / 共653页
openssl教程完全版.doc_第5页
第5页 / 共653页
点击查看更多>>
下载资源
资源描述

openssl教程完全版.doc

《openssl教程完全版.doc》由会员分享,可在线阅读,更多相关《openssl教程完全版.doc(653页珍藏版)》请在冰豆网上搜索。

openssl教程完全版.doc

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 membio 36

7.4.2 filebio 37

7.4.3 socketbio 38

7.4.4 mdBIO 39

7.4.5 cipherBIO 40

7.4.6 sslBIO 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.1RSA介绍 107

17.2 openssl的RSA实现 107

17.3 RSA签名与验证过程 108

17.4 数据结构 109

17.4.1RSA_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 主要函数 135

20.3.1参数设置 135

20.3.2参数获取 136

20.3.3转化函数 137

20.3.4其他函数 137

20.4 编程示例 139

第二十一章 EVP 143

21.1EVP简介 143

21.2数据结构 143

21.2.1 EVP_PKEY 144

21.2.2 EVP_MD 144

21.2.3 EVP_CIPHER 145

21.2.4 EVP_CIPHER_CTX 146

21.3源码结构 147

21.4摘要函数 147

21.5对称加解密函数 148

21.6非对称函数 149

21.7 BASE64编解码函数 149

21.8其他函数 150

21.9对称加密过程 152

21.10 编程示例 152

第二十二章 PEM格式 159

22.1 PEM概述 159

22.2 openssl的PEM实现 160

22.3 PEM函数 161

22.4 编程示例 161

第二十三章 Engine 165

23.1 Engine概述 165

23.2 Engine支持的原理 165

23.3 Engine数据结构 166

23.4 openssl的Engine源码 167

23.5 Engine函数 167

23.6 实现Engine示例 169

第二十四章 通用数据结构 182

24.1通用数据结构 182

24.2 X509_ALGOR 182

24.3 X509_VAL 184

24.4 X509_SIG 185

24.5 X509_NAME_ENTRY 186

24.6 X509_NAME 187

24.7 X509_EXTENSION 193

24.8 X509_ATTRIBUTE 199

24.9 GENERAL_NAME 200

第二十五章 证书申请 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 214

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函数 230

28.4 编程示例 231

第二十九章 PKCS7 233

29.1概述 233

29.2 数据结构 233

29.3 函数 234

29.4 消息编解码 235

29.4.1 data 235

29.4.2 signeddata 236

29.4.3 enveloped 237

29.4.4 signed_and_enveloped 238

29.4.5 digest 238

29.4.6 encrypted 239

29.4.7 读取PEM 239

29.4.8 解码pkcs7 240

第三十章 PKCS12 241

30.1 概述 241

30.2 openss实现 241

30.3数据结构 242

30.4函数 243

30.5 编程示例 245

第三十一章 SSL实现 254

31.1概述 254

31.2 openssl实现 254

31.3 建立SSL测试环境 254

31.4 数据结构 256

31.5 加密套件 256

31.6 密钥信息 257

31.7 SESSION 258

31.8 多线程支持 258

31.9 编程示例 259

31.10 函数 270

第三十二章 Openssl命令 272

32.1概述 272

32.2 asn1parse 272

32.3 dgst 274

32.4 gendh 275

32.5 passwd 276

32.6 rand 276

32.7 genrsa 277

32.8 req 278

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 290

32.18 gendsa 291

32.19 enc 291

32.20 ciphers 292

32.21 CA 293

32.22 verify 296

32.23 rsatul 297

32.24 crl 299

32.25 crl2pkcs7 300

32.26 errstr 300

32.27ocsp 301

32.28 pkcs12 304

32.29 pkcs8 306

32.30 s_time 307

32.31dhparam和dh 308

32.32 ecparam 309

32.33 ec 310

32.34 dsa 311

32.35 nseq 312

32.36 prime 313

32.37 smime 313

第一章 基礎知識

1.1 對稱演算法

對稱演算法使用一個金鑰。

給定一個明文和一個金鑰,加密產生密文,其長度和明文大致相同。

解密時,使用讀金鑰與加密金鑰相同。

對稱演算法主要有四種加密模式:

(1) 電子密碼本模式  ElectronicCodeBook(ECB)

這種模式是最早採用和最簡單的模式,它將加密的資料分成若干組,每組的大小跟加密金鑰長度相同,然後每組都用相同的金鑰進行加密。

其缺點是:

電子編碼薄模式用一個金鑰加密消息的所有塊,如果原消息中重複明文塊,則加密消息中的相應密文塊也會重複,因此,電子編碼薄模式適於加密小消息。

(2)加密塊鏈模式 CipherBlockChaining(CBC)

CBC模式的加密首先也是將明文分成固定長度的塊,然後將前面一個加密塊輸出的密文與下一個要加密的明文塊進行異或操作,將計算結果再用金鑰進行加密得到密文。

第一明文塊加密的時候,因為前面沒有加密的密文,所以需要一個初始化向量。

跟ECB方式不一樣,通過連接關係,使得密文跟明文不再

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1