



下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、使用 OPENSS 編寫服務器和客戶端代碼實例使用相同的 ca 生成兩個證書,一個是 server.cer,一個是 client.cer,注意生成 server.cer候必須指明證書可以用于服務端的。服務器代碼:1.#includeopenssl/bio.h2.#includeopenssl/ssl.h3.#includeopenssl/err.h4.5.#include6.7.#defineEXIT_IF_TRUE(x)if(x)8.do9.fprintf(stderr,Check%sistruen,#x);10.ERR_print_errors_fp(stderr);11.exit(2);
2、12.while(0)13.14.intmain(intargc,char*argv)15.16.SSL_CTX*ctx;17.SSL*ssl;18.X509*client_cert;19.20.charszBuffer1024;21.intnLen;22.23.structsockaddr_inaddr;24.intlen;25.intnListenFd,nAcceptFd;26.27./初始化28.cutil_init();29.cutil_log_set_level(LOG_ALL);30.cutil_log_set_stderr(1);31.SSLeay_add_ssl_algorit
3、hms();的時32.OpenSSL_add_all_algorithms();33.SSL_load_error_strings();34.ERR_load_BIO_strings();35.36./我們使用 SSLV3,V237.EXIT_IF_TRUE(ctx=SSL_CTX_new(SSLv23_method()=NULL);38.39./要求校驗對方證書40.SSL_CTX_set_verify(ctx,SSL_VERIFY_PEER,NULL);41.42./加載 CA 的證書43.EXIT_IF_TRUE(!SSL_CTX_load_verify_locations(ctx,ca
4、cert.cer,NULL);44.45./加載自己的證書46.EXIT_IF_TRUE(SSL_CTX_use_certificate_file(ctx,server.cer,SSL_FILETYPE_PEM)=0);47.48./加載自己的私鑰49.EXIT_IF_TRUE(SSL_CTX_use_PrivateKey_file(ctx,server.key,SSL_FILETYPE_PEM)=0);50.51./判定私鑰是否正確52.EXIT_IF_TRUE(!SSL_CTX_check_private_key(ctx);53.54./創建并等待連接55.nListenFd=cutil_
5、socket_new(SOCK_STREAM);56.cutil_socket_bind(nListenFd,NULL,8812,1);57.58.memset(&addr,0,sizeof(addr);59.len=sizeof(addr);60.nAcceptFd=accept(nListenFd,(structsockaddr*)&addr,(size_t*)&len);61.cutil_log_debug(Acceptaconnectfrom%s:%dn,62.inet_ntoa(addr.sin_addr),ntohs(addr.sin_port);63.64
6、./將連接付給 SSL65.EXIT_IF_TRUE(ssl=SSL_new(ctx)=NULL);66.SSL_set_fd(ssl,nAcceptFd);67.EXIT_IF_TRUE(SSL_accept(ssl)!=1);68.69./進行操作70.memset(szBuffer,0,sizeof(szBuffer);71.nLen=SSL_read(ssl,szBuffer,sizeof(szBuffer);72.fprintf(stderr,GetLen%d%sokn,nLen,szBuffer);73.strcat(szBuffer,thisisfromserver);74.SS
7、L_write(ssl,szBuffer,strlen(szBuffer);75.76./釋放資源77.SSL_free(ssl);78.SSL_CTX_free(ctx);79.close(nAcceptFd);80.客戶端代碼1.#includeopenssl/bio.h2.#includeopenssl/ssl.h3.#includeopenssl/err.h4.5.#include6.7.#defineEXIT_IF_TRUE(x)if(x)8.do9.fprintf(stderr,Check%sistruen,#x);10.ERR_print_errors_fp(stderr);11
8、.exit(2);12.while(0)13.14.intmain(intargc,char*argv)15.16.SSL_METHOD*meth;17.SSL_CTX*ctx;18.SSL*ssl;19.20.intnFd;21.intnLen;22.charszBuffer1024;23.24./初始化25.cutil_init();26.cutil_log_set_level(LOG_ALL);27.cutil_log_set_stderr(1);28.SSLeay_add_ssl_algorithms();29.OpenSSL_add_all_algorithms();30.SSL_l
9、oad_error_strings();31.ERR_load_BIO_strings();32.33./我們使用 SSLV3,V234.EXIT_IF_TRUE(ctx=SSL_CTX_new(SSLv23_method()=NULL);35.36./要求校驗對方證書37.SSL_CTX_set_verify(ctx,SSL_VERIFY_PEER,NULL);38.39./加載 CA 的證書40.EXIT_IF_TRUE(!SSL_CTX_load_verify_locations(ctx,cacert.cer,NULL);41.42./加載自己的證書43.EXIT_IF_TRUE(SSL
10、_CTX_use_certificate_file(ctx,client.cer,SSL_FILETYPE_PEM)=0);44.45./加載自己的私鑰46.EXIT_IF_TRUE(SSL_CTX_use_PrivateKey_file(ctx,client.key,SSL_FILETYPE_PEM)=0);47.48./判定私鑰是否正確49.EXIT_IF_TRUE(!SSL_CTX_check_private_key(ctx);50.51./創建連接52.nFd=cutil_socket_new(SOCK_STREAM);53.if(cutil_socket_connect(nFd,,8812,30)0)54.55.cutil_log_error(連接服務器失敗n);56.return-1;57.58.59./將連接付給 SSL60.EXIT_IF_TRUE(ssl=SSL_new(ctx)=NULL);61.SSL_set_fd(ssl,nFd);62.EXIT_IF_TRUE(SSL_connect(ssl)!=1);63.64./進行操作65.sprintf(szBuffer,thisisfromclient%d,getpid();66.SSL_write(ssl,szBuffer,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 高職單招面試培訓
- 服務與教學培訓
- 全國上海科教版初中信息技術八年級第一學期第三單元活動三《設計家庭網絡》教學設計
- 人教部編版五年級下冊景陽岡教學設計及反思
- 地震救援高級培訓課件
- 材料安全復習測試卷
- 《營養含量》(教學設計)-2024-2025學年北師大版小學數學六年級上冊
- 【八下HK數學】安徽省桐城市黃崗初級中學2023-2024學年八年級下學期期中數學試題
- 江蘇省宿遷市沭陽縣鄉鎮聯考2024-2025學年八年級下學期4月期中數學試題(原卷版+解析版)
- 大氣環境生態信息傳播重點基礎知識點
- CJT244-2016 游泳池水質標準
- SH/T 3115-2024 石油化工管式爐輕質澆注料襯里工程技術規范(正式版)
- HCIA H13-111鯤鵬應用開發考試復習題庫(含答案)
- 部編版語文八年級下冊期中基礎鞏固與能力提升練習-解析版
- 杜威《民主主義與教育》電子版
- 碎石技術供應保障方案
- 2023年江蘇省南京市中考化學試卷真題(含答案)
- 衛星互聯網通信技術
- 2023年水利部珠江水利委員會直屬事業單位招聘工作人員考試真題及答案
- 2024年3月四川省考公務員面試題及參考答案
- 戰略性新興產業政府引導基金發展策略與模式
評論
0/150
提交評論