Openssl 範例程式:建立SSL連線
說來很神奇,雖然我研究所的研究主題是「網路安全」,但我在研究所卻從來沒撰寫使用 openssl 函式庫的程式。第一次撰寫是在工作上有需求而去使用一些加密的演算法,這次則是工作尚有需求,要去建立 DTLS 的安全連線。DTLS?等一下,標題不是 SSL 嗎?說來話長,要使用 DTLS 的相關 API,按照 openssl 網站的說法,最好是使用 openssl 1.0 以後的版本,問題是客戶所使用的版本是 0.9.8d 的。理論上來說,0.9.8d 的版本也有支援 DTLS,所以我不能拒絕客戶的要求(我會努力繼續嘗試說服客戶的),但還是要做好在 0.9.8d 的開發。問題是兩個版本的寫法不一樣啊(在 1.0.0 以後的版本,有一個 dtlsv1_listen 的函式,簡單來說就是在 UDP 上面實作 listen 的行為。)~雖然已經請同事搞定 1.0 上面的寫法,但 0.9.8 上的寫法還要再研究。所以我就進去開始研究囉。下面就是研究到一半(SSL)的心得。下面的程式碼是從 HP 的網站上改過來的。 ssl_server.c # include < stdio.h > # include < stdlib.h > # include < string.h > # include < errno.h > # include < netdb.h > # include < unistd.h > # include < sys/types.h > # include < sys/socket.h > # include < netinet/in.h > # include < arpa/inet.h > # include < openssl/crypto.h > # include < openssl/ssl.h > # include < openssl/err.h > # define RSA_SERVER_CERT " serverca.crt " # define RSA_SERVER_KEY " serve...