OpenSSL 常用函式 SSL TLS程式設計

2021-04-21 10:03:20 字數 3110 閱讀 6978

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。

0tlsv1_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);

返回值:返回實際讀或寫的資料長度。

注:上面資源大多源自《精通

pki網路安全論證技術與程式設計實現》一書。

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