OpenSSL 常用函式 SSL TLS程式設計

2021-06-23 02:23:38 字數 2615 閱讀 5990

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 algorithm...

OpenSSL 常用函式 SSL TLS程式設計

ssl tls 協議已經廣泛應用於電子商務中,用來保證資訊傳輸的安全性。利用 openssl 進行了安全套接字程式設計和普通套接字程式設計類似。主要函式 1 初始化 ssl演算法庫函式 int ssl library init void define openssl add ssl algorith...

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...