logo资料库

openssl教程完全版.doc

第1页 / 共652页
第2页 / 共652页
第3页 / 共652页
第4页 / 共652页
第5页 / 共652页
第6页 / 共652页
第7页 / 共652页
第8页 / 共652页
资料共652页,剩余部分请下载后查看
Openssl程式設計
第一章基礎知識
1.1對稱演算法
1.2摘要演算法
1.3公開金鑰演算法
1.4回呼函數
第二章openssl簡介
2.1openssl簡介
2.2openssl安裝
2.2.1linux下的安裝
2.2.2windows編譯與安裝
2.3openssl原始程式碼
2.4openssl學習方法
2)學習openssl的命令
3)學習openssl原始程式碼並調試
4)學會使用openssl的asn.1編解碼
5)查找資料
6)學習openssl相關書籍
第三章堆疊
3.1openssl堆疊
3.2資料結構
3.3源碼
2)sk_find
3)sk_sort
4)sk_pop_free
3.4定義使用者自己的堆疊函數
3.5程式設計示例
第四章雜湊表
4.1雜湊表
4.2雜湊表資料結構
4.3函數說明
4.4程式設計示例
第五章記憶體分配
5.1openssl記憶體分配
5.2記憶體資料結構
5.3主要函數
3)CRYPTO_dbg_malloc
4)CRYPTO_dbg_free
5)CRYPTO_mem_leaks
6)CRYPTO_mem_leaks_fp
7)CRYPTO_mem_leaks_cb
5.4程式設計示例
第六章動態模組載入
6.1動態庫載入
6.2DSO概述
6.3資料結構
DSO_FLAG_NO_NAME_TRANSLATION
DSO_FLAG_NAME_TRANSLATION_EXT_ONLY
DSO_FLAG_UPCASE_SYMBOL
DSO_FLAG_GLOBAL_SYMBOLS
6.4程式設計示例
第七章抽象IO
7.1openssl抽象IO
7.2資料結構
7.3BIO 函數
7.4程式設計示例
7.4.1mem bio
7.4.2file bio
7.4.3socket bio
7.4.4md BIO
7.4.5cipher BIO
7.4.6ssl BIO
7.4.7其他示例
第八章設定檔
8.1概述
8.2openssl設定檔讀取
8.3主要函數
2)CONF_free
3)CONF_load
6)CONF_get_string
7)CONF_get_number
8)CONF_get1_default_config_file
8.4程式設計示例
第九章亂數
9.1亂數
9.2openssl亂數資料結構與源碼
2)rand_lib.c
3)rand_win.c/rand_unix.c/rand_os2.c等
4)randfile.c
9.3主要函數
2)RAND_write_file
4)RAND_poll
5)RAND_screen/RAND_event
6)RAND_seed/RAND_add
7)RAND_bytes/RAND_pseudo_bytes
8)RAND_cleanup
10)RAND_set_rand_method
11)RAND_status
9.4程式設計示例
第十章文本資料庫
10.1概述
10.2資料結構
10.3函數說明
10.4程式設計示例
第十一章大數
11.1介紹
11.2openssl大數表示
11.3大數函數
2)BN_rand_range/BN_pseudo_rand_range
3)BN_dup
4)BN_generate_prime
11.4使用示例
第十二章BASE64編解碼
12.1BASE64編碼介紹
12.2BASE64編解碼原理
12.3主要函數
EVP_DecodeUpdate
EVP_DecodeFinal
EVP_DecodeBlock
12.4程式設計示例
第十三章ASN1庫
13.1ASN1簡介
4)其它類型
13.2DER編碼
13.3ASN1基本類型示例
13.4openssl 的ASN.1庫
ASN1_ENUMERATED;
ASN1_BIT_STRING;
13.5用openssl的ASN.1庫DER編解碼
13.6Openssl的ASN.1宏
13.7ASN1常用函數
B2E2CAD4
13.8屬性證書編碼
IMPLEMENT_ASN1_FUNCTIONS(ACHOLDER)
IMPLEMENT_ASN1_FUNCTIONS(V2FORM)
IMPLEMENT_ASN1_FUNCTIONS(ISSUERSERIAL)
IMPLEMENT_ASN1_FUNCTIONS(OBJDIGEST)
IMPLEMENT_ASN1_FUNCTIONS(X509V4_VALID)
IMPLEMENT_ASN1_FUNCTIONS(X509V4_CINF)
ASN1_SEQUENCE(X509V4) = {
第十四章錯誤處理
14.1概述
14.2資料結構
14.3主要函數
14.4程式設計示例
第十五章摘要與HMAC
15.1概述
15.2openssl摘要實現
15.3函數說明
15.4程式設計示例
15.5HMAC
第十六章資料壓縮
16.1簡介
16.2資料結構
16.3函數說明
16.4openssl中壓縮演算法協商
16.5程式設計示例
第十七章RSA
17.1 RSA介紹
17.2openssl的RSA實現
17.3RSA簽名與驗證過程
17.4資料結構
17.4.1 RSA_METHOD
17.4.2RSA
17.5主要函數
17.6程式設計示例
17.6.1金鑰生成
da:43:5f
17.6.2RSA加解密運算
17.6.3簽名與驗證
第十八章DSA
18.1 DSA簡介
18.2openssl的DSA實現
18.3DSA資料結構
18.4主要函數
18.5程式設計示例
18.5.1金鑰生成
P:
Q:
G:
18.5.2簽名與驗證
第十九章DH
19.1DH演算法介紹
19.2openssl的DH實現
19.3資料結構
19.4主要函數
19.5程式設計示例
第二十章橢圓曲線
20.1ECC介紹
20.2openssl的ECC實現
20.3主要函數
20.3.1參數設置
20.3.2參數獲取
20.3.3轉化函數
20.3.4其他函數
20.4程式設計示例
第二十一章EVP
21.1 EVP簡介
21.2 資料結構
21.2.1EVP_PKEY
21.2.2EVP_MD
21.2.3EVP_CIPHER
21.2.4EVP_CIPHER_CTX
21.3 源碼結構
21.4 摘要函數
21.5 對稱加解密函數
21.6 非對稱函數
21.7BASE64編解碼函數
21.8其他函數
21.9 對稱加密過程
21.10程式設計示例
第二十二章PEM格式
22.1PEM概述
22.2openssl的PEM實現
22.3PEM函數
22.4程式設計示例
第二十三章Engine
23.1Engine概述
23.2Engine支持的原理
23.3Engine資料結構
23.4openssl 的Engine源碼
23.5Engine函數
23.6實現Engine示例
NULL,
"SO_PATH",
第二十四章通用資料結構
24.1通用資料結構
24.2X509_ALGOR
24.3X509_VAL
24.4X509_SIG
24.5X509_NAME_ENTRY
24.6X509_NAME
24.7X509_EXTENSION
24.8X509_ATTRIBUTE
24.9GENERAL_NAME
第二十五章證書申請
25.1證書申請介紹
25.2資料結構
25.3主要函數
25.4程式設計示例
25.4.1生成證書請求文件
25.4.2解碼證書請求文件
第二十六章X509數位憑證
26.1X509數位憑證
26.2opessl實現
26.3X509資料結構
26.4X509_TRUST與X509_CERT_AUX
26.5X509_PURPOSE
26.6主要函數
26.7證書驗證
26.7.1證書驗證項
26.7.2Openssl中的證書驗證
第二十七章OCSP
27.1概述
27.2openssl實現
27.3主要函數
27.4程式設計示例
第二十八章CRL
28.1CRL介紹
28.2資料結構
28.3CRL函數
28.4程式設計示例
第二十九章PKCS7
29.1概述
29.2資料結構
29.3函數
29.4消息編解碼
29.4.1data
29.4.2signed data
29.4.3enveloped
29.4.4signed_and_enveloped
29.4.5digest
29.4.6encrypted
29.4.7讀取PEM
29.4.8解碼pkcs7
第三十章PKCS12
30.1概述
30.2openss實現
30.3資料結構
30.4函數
30.5程式設計示例
第三十一章SSL實現
31.1概述
31.2openssl實現
31.3建立SSL測試環境
31.4資料結構
31.5加密套件
31.6金鑰信息
31.7SESSION
31.8多執行緒支持
31.9程式設計示例
SSL_VERIFY_CLIENT_
31.10函數
第三十二章Openssl命令
32.1概述
32.2asn1parse
32.3dgst
32.4gendh
32.5passwd
32.6rand
32.7genrsa
32.8req
32.9x509
32.10version
32.11speed
32.12 sess_id
32.13s_server
Q
R
P
S
32.14 s_client
32.15rsa
32.16pkcs7
32.17dsaparam
32.18gendsa
32.19enc
32.20ciphers
32.21CA
32.22verify
32.23rsatul
32.24 crl
32.25 crl2pkcs7
32.26 errstr
32.27 ocsp
32.28pkcs12
32.29 pkcs8
32.30s_time
32.31 dhparam和dh
32.32 ecparam
32.33ec
32.34 dsa
32.35nseq
32.36prime
32.37smime
Openssl 程式設計 第一章 基础知识............................................................ 错误!未定义书签。 1.1 对称算法............................................................ 错误!未定义书签。 1.2 摘要算法............................................................ 错误!未定义书签。 1.3 公钥算法............................................................ 错误!未定义书签。 1.4 回调函数............................................................ 错误!未定义书签。 第二章 openssl 简介....................................................... 错误!未定义书签。 2.1 openssl 简介....................................................... 错误!未定义书签。 2.2 openssl 安装....................................................... 错误!未定义书签。 2.2.1 linux 下的安装..........................................错误!未定义书签。 2.2.2 windows 编译与安装............................... 错误!未定义书签。 2.3 openssl 源代码................................................... 错误!未定义书签。 2.4 openssl 学习方法............................................... 错误!未定义书签。 第三章 堆栈.................................................................... 错误!未定义书签。 3.1 openssl 堆栈....................................................... 错误!未定义书签。 3.2 数据结构............................................................ 错误!未定义书签。 3.3 源码.................................................................... 错误!未定义书签。 3.4 定义用户自己的堆栈函数................................ 错误!未定义书签。 3.5 编程示例............................................................ 错误!未定义书签。 第四章 哈希表................................................................ 错误!未定义书签。 4.1 哈希表................................................................ 错误!未定义书签。
Openssl 程式設計 4.2 哈希表数据结构................................................ 错误!未定义书签。 4.3 函数说明............................................................ 错误!未定义书签。 4.4 编程示例............................................................ 错误!未定义书签。 第五章 内存分配............................................................ 错误!未定义书签。 5.1 openssl 内存分配............................................... 错误!未定义书签。 5.2 内存数据结构.................................................... 错误!未定义书签。 5.3 主要函数............................................................ 错误!未定义书签。 5.4 编程示例............................................................ 错误!未定义书签。 第六章 动态模块加载.................................................... 错误!未定义书签。 6.1 动态库加载........................................................ 错误!未定义书签。 6.2 DSO 概述........................................................... 错误!未定义书签。 6.3 数据结构............................................................ 错误!未定义书签。 6.4 编程示例............................................................ 错误!未定义书签。 第七章 抽象 IO............................................................... 错误!未定义书签。 7.1 openssl 抽象 IO.................................................. 错误!未定义书签。 7.2 数据结构............................................................ 错误!未定义书签。 7.3 BIO 函数........................................................... 错误!未定义书签。 7.4 编程示例............................................................ 错误!未定义书签。 7.4.1 mem bio..................................................... 错误!未定义书签。 7.4.2 file bio........................................................错误!未定义书签。 7.4.3 socket bio................................................... 错误!未定义书签。 7.4.4 md BIO...................................................... 错误!未定义书签。 2
Openssl 程式設計 7.4.5 cipher BIO................................................. 错误!未定义书签。 7.4.6 ssl BIO....................................................... 错误!未定义书签。 7.4.7 其他示例................................................... 错误!未定义书签。 第八章 配置文件............................................................ 错误!未定义书签。 8.1 概述.................................................................... 错误!未定义书签。 8.2 openssl 配置文件读取....................................... 错误!未定义书签。 8.3 主要函数............................................................ 错误!未定义书签。 8.4 编程示例............................................................ 错误!未定义书签。 第九章 随机数................................................................ 错误!未定义书签。 9.1 随机数................................................................ 错误!未定义书签。 9.2 openssl 随机数数据结构与源码.......................错误!未定义书签。 9.3 主要函数............................................................ 错误!未定义书签。 9.4 编程示例............................................................ 错误!未定义书签。 第十章 文本数据库........................................................ 错误!未定义书签。 10.1 概述................................................................. 错误!未定义书签。 10.2 数据结构......................................................... 错误!未定义书签。 10.3 函数说明......................................................... 错误!未定义书签。 10.4 编程示例......................................................... 错误!未定义书签。 第十一章 大数................................................................. 错误!未定义书签。 11.1 介绍.................................................................... 错误!未定义书签。 11.2 openssl 大数表示............................................... 错误!未定义书签。 11.3 大数函数............................................................ 错误!未定义书签。 3
Openssl 程式設計 11.4 使用示例............................................................ 错误!未定义书签。 第十二章 BASE64 编解码.............................................. 错误!未定义书签。 12.1 BASE64 编码介绍............................................. 错误!未定义书签。 12.2 BASE64 编解码原理.........................................错误!未定义书签。 12.3 主要函数......................................................... 错误!未定义书签。 12.4 编程示例......................................................... 错误!未定义书签。 第十三章 ASN1 库.......................................................... 错误!未定义书签。 13.1 ASN1 简介......................................................... 错误!未定义书签。 13.2 DER 编码........................................................... 错误!未定义书签。 13.3 ASN1 基本类型示例......................................... 错误!未定义书签。 13.4 openssl 的 ASN.1 库.............................................................. 143 13.5 用 openssl 的 ASN.1 库 DER 编解码.................................145 13.6 Openssl 的 ASN.1 宏...............................................................147 13.7 ASN1 常用函数................................................. 错误!未定义书签。 13.8 属性证书编码.................................................. 错误!未定义书签。 第十四章 错误处理......................................................... 错误!未定义书签。 14.1 概述................................................................. 错误!未定义书签。 14.2 数据结构......................................................... 错误!未定义书签。 14.3 主要函数......................................................... 错误!未定义书签。 14.4 编程示例......................................................... 错误!未定义书签。 第十五章 摘要与 HMAC................................................ 错误!未定义书签。 15.1 概述................................................................. 错误!未定义书签。 4
Openssl 程式設計 15.2 openssl 摘要实现............................................... 错误!未定义书签。 15.3 函数说明......................................................... 错误!未定义书签。 15.4 编程示例......................................................... 错误!未定义书签。 15.5 HMAC................................................................ 错误!未定义书签。 第十六章 数据压缩......................................................... 错误!未定义书签。 16.1 简介....................................................................... 错误!未定义书签。 16.2 数据结构......................................................... 错误!未定义书签。 16.3 函数说明......................................................... 错误!未定义书签。 16.4 openssl 中压缩算法协商................................... 错误!未定义书签。 16.5 编程示例......................................................... 错误!未定义书签。 第十七章 RSA..................................................................错误!未定义书签。 17.1 RSA 介绍......................................................... 错误!未定义书签。 17.2 openssl 的 RSA 实现......................................... 错误!未定义书签。 17.3 RSA 签名与验证过程....................................... 错误!未定义书签。 17.4 数据结构......................................................... 错误!未定义书签。 17.4.1 RSA_METHOD......................................... 错误!未定义书签。 17.4.2 RSA............................................................错误!未定义书签。 17.5 主要函数......................................................... 错误!未定义书签。 17.6 编程示例............................................................. 错误!未定义书签。 17.6.1 密钥生成.................................................... 错误!未定义书签。 17.6.2 RSA 加解密运算...................................... 错误!未定义书签。 17.6.3 签名与验证................................................ 错误!未定义书签。 5
Openssl 程式設計 第十八章 DSA................................................................. 错误!未定义书签。 18.1 DSA 简介........................................................ 错误!未定义书签。 18.2 openssl 的 DSA 实现......................................... 错误!未定义书签。 18.3 DSA 数据结构................................................... 错误!未定义书签。 18.4 主要函数......................................................... 错误!未定义书签。 18.5 编程示例......................................................... 错误!未定义书签。 18.5.1 密钥生成.................................................... 错误!未定义书签。 18.5.2 签名与验证................................................ 错误!未定义书签。 第十九章 DH.....................................................................错误!未定义书签。 19.1 DH 算法介绍..................................................... 错误!未定义书签。 19.2 openssl 的 DH 实现........................................... 错误!未定义书签。 19.3 数据结构............................................................. 错误!未定义书签。 19.4 主要函数......................................................... 错误!未定义书签。 19.5 编程示例......................................................... 错误!未定义书签。 第二十章 椭圆曲线......................................................... 错误!未定义书签。 20.1 ECC 介绍............................................................错误!未定义书签。 20.2 openssl 的 ECC 实现......................................... 错误!未定义书签。 20.3 主要函数......................................................... 错误!未定义书签。 20.3.1 参数设置.................................................... 错误!未定义书签。 20.3.2 参数获取.................................................... 错误!未定义书签。 20.3.3 转化函数.................................................... 错误!未定义书签。 20.3.4 其他函数.................................................... 错误!未定义书签。 6
Openssl 程式設計 20.4 编程示例......................................................... 错误!未定义书签。 第二十一章 EVP...............................................................错误!未定义书签。 21.1 EVP 简介.............................................................错误!未定义书签。 21.2 数据结构............................................................ 错误!未定义书签。 21.2.1 EVP_PKEY............................................... 错误!未定义书签。 21.2.2 EVP_MD................................................... 错误!未定义书签。 21.2.3 EVP_CIPHER........................................... 错误!未定义书签。 21.2.4 EVP_CIPHER_CTX................................. 错误!未定义书签。 21.3 源码结构............................................................ 错误!未定义书签。 21.4 摘要函数............................................................ 错误!未定义书签。 21.5 对称加解密函数................................................ 错误!未定义书签。 21.6 非对称函数........................................................ 错误!未定义书签。 21.7 BASE64 编解码函数.........................................错误!未定义书签。 21.8 其他函数............................................................. 错误!未定义书签。 21.9 对称加密过程.................................................. 错误!未定义书签。 21.10 编程示例......................................................... 错误!未定义书签。 第二十二章 PEM 格式..................................................... 错误!未定义书签。 22.1 PEM 概述........................................................... 错误!未定义书签。 22.2 openssl 的 PEM 实现.........................................错误!未定义书签。 22.3 PEM 函数........................................................... 错误!未定义书签。 22.4 编程示例......................................................... 错误!未定义书签。 第二十三章 Engine........................................................... 错误!未定义书签。 7
Openssl 程式設計 23.1 Engine 概述........................................................ 错误!未定义书签。 23.2 Engine 支持的原理............................................错误!未定义书签。 23.3 Engine 数据结构................................................错误!未定义书签。 23.4 openssl 的 Engine 源码.....................................错误!未定义书签。 23.5 Engine 函数........................................................ 错误!未定义书签。 23.6 实现 Engine 示例............................................错误!未定义书签。 第二十四章 通用数据结构.............................................. 错误!未定义书签。 24.1 通用数据结构..................................................... 错误!未定义书签。 24.2 X509_ALGOR....................................................错误!未定义书签。 24.3 X509_VAL..........................................................错误!未定义书签。 24.4 X509_SIG........................................................... 错误!未定义书签。 24.5 X509_NAME_ENTRY...................................... 错误!未定义书签。 24.6 X509_NAME......................................................错误!未定义书签。 24.7 X509_EXTENSION...........................................错误!未定义书签。 24.8 X509_ATTRIBUTE........................................... 错误!未定义书签。 24.9 GENERAL_NAME............................................错误!未定义书签。 第二十五章 证书申请...................................................... 错误!未定义书签。 25.1 证书申请介绍................................................. 错误!未定义书签。 25.2 数据结构......................................................... 错误!未定义书签。 25.3 主要函数......................................................... 错误!未定义书签。 25.4 编程示例......................................................... 错误!未定义书签。 25.4.1 生成证书请求文件.................................... 错误!未定义书签。 8
分享到:
收藏