



下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度员工期权激励计划执行与员工权益保障协议
- 二零二五年度个体工商户兼职文案撰写人员用工服务协议
- 2025年度林地承包经营与林权抵押贷款合作协议
- 妇幼保健员考试备考中的情绪管理试题及答案
- 二零二五年度押付房屋租赁合同-押付租赁式艺术展览馆
- 2025年度桉树木材供应链金融服务合同
- 二零二五年度房屋出售双方佣金支付及结算协议书
- 二零二五年度个人股权转让与公司战略调整合同
- 2025年度车库购置与车位租赁及管理服务协议
- 二零二五年度实习生劳动权益保护与就业实训合同
- 电工技能进阶教程:2024年让你从初级到高级飞跃
- 语文-湖南省长郡二十校联盟2025届新高考教学教研联盟高三第一次联考(长郡二十校一联)试题和答案
- 医学临床“三基”训练护士分册(第五版)考试题(附答案)
- 数据结构:第2章-线性表
- 2024年全国高考甲卷物理试题含答案解析
- 综合与实践 白昼时长规律的探究说课稿 2024-2025学年人教版数学七年级下册
- 2024年合肥职业技术学院高职单招职业技能测验历年参考题库(频考版)含答案解析
- 2024年北京顺义区卫生健康委员会所属事业单位招聘笔试真题
- 印刷行业安全培训
- 江苏省南京市2024年中考英语试题(含解析)
- 手术室护理不良事件警示
评论
0/150
提交评论