下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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版坏死性筋膜炎症状诊断分析及护理培训
- 2025版冠心病常见症状及护理技巧
- 脑病科营养支持
- 音乐小企鹅课程介绍
- 全国大学生职业规划大赛《针灸推拿》专业生涯发展展示【高职(专科)】
- 益气化痰祛瘀方介导LGG调控SCFAs干预COPD炎症的机制研究
- 消化内镜进修汇报
- 杜威《民主主义与教育》电子版
- 年产5000吨高纯五氧化二钒和30000立方米钒电解液项目可行性研究报告
- MOOC 孙子兵法-湖南大学 中国大学慕课答案
- 《输变电工程三维协同设计规范》
- 2022河湖无人机巡查作业技术导则
- 人工膝关节置换术手术配合护理课件
- 青海省海南藏族自治州高级中学、共和县高级中学2023-2024学年高一上学期期中联考历史试题(解析版)
- 《学前心理学》课件-任务四 掌握学前儿童的感觉和知觉的发展
- 中医外科学课件章第十三章泌尿男性疾病
- 延长离心机滤布使用寿命
评论
0/150
提交评论