ssl/tls
協議已經廣泛應用於電子商務中,
用來保證資訊傳輸的安全性。利用
openssl
進行安全套接字程式設計和普通套接字程式設計類似。
主要函式
1.初始化
ssl演算法庫函式
int ssl_library_init(void);
#define openssl_add_ssl_algorithms()
ssl_library_init()
#define ssleasy_add_ssl_algorithms()
ssl_library_init()
功能:初始化
ssl演算法庫函式,
呼叫ssl
系列函式之前必須呼叫此函式。
返回值:
1成功,0失敗
2.初始化
ssl上下文環境變數函式
ssl_ctx *ssl_ctx_new(ssl_method *meth);
功能:初始化
ssl_ctx
結構體,
設定ssl
協議演算法。
引數:sslv2_server_method(void)
ssl v2.0
協議,用於伺服器
sslv2_client_method(void)
ssl v2.0
協議,用於客戶端
sslv3_server_method(void)
ssl v3.0
協議,用於伺服器
sslv3_client_method(void)
ssl v3.0
協議,用於客戶端
sslv23_server_method(void)
ssl v3.0
協議,用於伺服器,支援2。
0 sslv23_client_method(void)
ssl v3.0
協議,用於客戶端,支援2。
0 tlsv1_server_method(void)
ssl v2.0
協議,用於伺服器
tlsv1_client_method(void)
tlsv1.0
協議,用於客戶端
返回值:呼叫成功返回
ssl_ctx
結構體指標,
否則返回
null 3.
釋放ssl
上下文環境變數函式
void ssl_ctx_free(ssl_ctx *ctx);
4.設定
ssl證書函式
int ssl_ctx_use_certificate_file(ssl_ctx *ctx, const char *file, int type);
功能:以檔案的形式設定
ssl證書。
對於伺服器,用來設定伺服器證書。對於客戶端,用來設定客戶端證書。
引數:file
:[in]
證書檔案路徑。
type
:[in]
證書的編碼型別。支援
ssl_filetype_pem(pem
格式,即
base64
編碼格式的檔案
), ssl_filetype_asn1(asn1
格式,即
der編碼的檔案)
返回值:
1成功,
0失敗。
5.設定
ssl私鑰函式
int ssl_ctx_use_privatekey_file(ssl_ctx *ctx, const char *file, int type);
函式功能:以檔案的形式設定
ssl私鑰。
6.設定
ssl證書函式
int ssl_ctx_use_certificate(ssl_ctx *ctx, x509 *x);
功能:設定證書,功能和
ssl_ctx_use_certificate_file
函式一樣。
7.設定
ssl私鑰函式。
功能和ssl_ctx_use_privatekey_file
函式一樣
int ssl_ctx_use_privatekey(ssl_ctx *ctx, evp_pkey *pkey);
8.檢查
ssl私鑰函式
int ssl_ctx_check_private_key(const ssl_ctx *ctx);
功能:檢查私鑰,
檢查私鑰是否和證書匹配。此函式必須在設定了證書和私鑰後才能呼叫。
9.新建
ssl控制代碼函式
ssl *ssl_new(ssl_ctx *ctx);
功能:為乙個新
ssl鏈結建立
ssl*
結構體變數。
10.釋放
ssl控制代碼函式
void ssl_free(ssl *ssl);
11.設定
socket
控制代碼函式
int ssl_set_fd(ssl *s, int fd);
功能:為
ssl結構體設定
socket
控制代碼引數:fd:
[in]socket
鏈結控制代碼
12.建立
ssl鏈結
int ssl_connect(ssl *ssl);
功能:建立
ssl鏈結,用於客戶端。
13.接受
ssl鏈結
int ssl_accept(ssl *ssl);
14.獲得
ssl鏈結使用的證書
x509 *ssl_get_peer_certificate(const ssl *s);
返回值:操作成功返回
x509
證書,否則返回
null
。15.
傳送和讀取
ssl資料
int ssl_write(ssl *ssl, const void *buf, int num);
int ssl_read(ssl *ssl, void *buf, int num);
返回值:返回實際讀或寫的資料長度。
OpenSSL 常用函式 SSL TLS程式設計
ssl tls 協議已經廣泛應用於電子商務中,用來保證資訊傳輸的安全性。利用 openssl 進行了安全套接字程式設計和普通套接字程式設計類似。主要函式 1 初始化 ssl演算法庫函式 int ssl library init void define openssl add ssl algorith...
OpenSSL 常用函式 SSL TLS程式設計
ssl tls協議已經廣泛應用於電子商務中,用來保證資訊傳輸的安全性。利用openssl進行了安全套接字程式設計和普通套接字程式設計類似。主要函式 1 初始化ssl 演算法庫函式 int ssl library init void define openssl add ssl algorithms ...
openssl 常用api的作用與使用
參考文章 ssl library init ssl庫的初始化 openssl add all algorithms 載入所有的ssl演算法 ssl load error strings 載入所有ssl錯誤訊息 ssl ctx new 產生乙個ssl ctx ssl ctx use certifica...