本文摘自 趙春平 《openssl程式設計 1.0》
其中紅色字型是自己的學習過程中暫時不懂的地方。
openssl源**主要有eay庫(什麼是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目錄),opwnssl主要的配置檔案為openssl.cnf。本目錄下的函式實現了對這種格式配置檔案的讀取操作。
6) dso(動態共享物件,crypto/dso目錄),本目錄下的檔案主要抽象了各種平台的動態庫載入函式,為使用者提供使用者已介面。
7) 硬體引擎(crypto/engine目錄),硬體引擎介面。使用者如果要寫自己的硬體引擎,必須實現它所規定的介面。
8) 錯誤處理(cpypto/err目錄),當程式出現錯誤時,openssl能以對戰的形式顯示各個錯誤。本目錄下只有基本的錯誤處理介面,具體的錯誤資訊由各個模組提供。各個模組專門使用者錯誤處理的檔案一般為*_err.c檔案。
9) 對稱演算法、非對稱演算法以及摘要演算法封裝(crypto/evp目錄)。
10) hmac(crypto/hmac目錄),實現了基於對稱演算法的mac(什麼是對稱演算法的mac?)。
11) hash表(crypto/lhash目錄),實現了雜湊表資料結構。openssl中很多資料結構都是以雜湊表來存放的。比如配置資訊、ssl session和asn.1物件資訊等。
13) pem檔案格式處理(crypto/pem),用於生成和讀取各種pem格式檔案,包括各種金鑰、數字證書請求、數字證書、pkcs7訊息和pkcs8訊息等。
14) pkcs7訊息語法(crypto/pkcs7目錄),主要實現了構造和解析pkcs7訊息。
15) pkcs12個人證書格式(crypto/pkccs12目錄),主要實現了pkcs12證書的構造和解析。
16) 佇列(cpypto/pqueue目錄),實現了佇列資料結構,主要用於dtls。
17) 隨機數(cpypto/rand目錄),實現了偽隨機數生成,支援使用者自定義隨機數生成。
18) 堆疊(cpypto/stack目錄),實現了堆疊資料結構。
19) 執行緒支援(crypto/threads),openssl支援多執行緒,但是使用者必須實現相關介面。
20) 文字資料庫(crypto/txt_db目錄)。
21) x509數字證書(crypto/x509目錄和crypto/x509v3),包括數字證書申請、數字證書和crl的構造、解析和簽名驗證等功能。
22) 對稱演算法(crypto/aes、crypto/bf、crypto/cast、crypto/omp和crypto/des等目錄)。
23) 非對稱演算法(crypto/dh、crypto/dsa、crypto/ec和crypto/ecdh)。
24) 摘要演算法(crypto/md2、crypto/md4、crypto/md5和cpypto/sha)以及金鑰交換/認證演算法(crypto/db和crpyto/krb5)。
Mahout原始碼目錄說明
mahout專案是由多個子專案組成的,各子專案分別位於原始碼的不同目錄下,下面對mahout的組成進行介紹 1 mahout core 核心程式模組,位於 core目錄下 2 mahout math 在核心程式中使用的一些資料通用計算模組,位於 math目錄下 3 mahout utils 在核心程...
Mahout原始碼目錄說明
mahout專案是由多個子專案組成的,各子專案分別位於原始碼的不同目錄下,下面對mahout的組成進行介紹 1 mahout core 核心程式模組,位於 core目錄下 2 mahout math 在核心程式中使用的一些資料通用計算模組,位於 math目錄下 3 mahout utils 在核心程...
OpenSSL原始碼簡介
x509是由國際電信聯盟 itu t 制定的數字證書標準 包含公鑰和使用者標誌符 ca等 x509是數字證書的規範,p7和p12是兩種封裝形式 x.509是常見通用的證書格式。所有的證書都符合為public key infrastructure 制定的itu t x509國際標準。pkcs 7常用的...