openssl干什么用的(openssl有什么用)

openssl简介

openssl不但是密码库,还是通信库,本身就可以做通信。openssl也是HTTPS的基础,在Windows下的很多软件都用了openssl的代码。

锐英源研究过openssl的最新版本和一些历史版本,用它开发过商业软件产品,翻译过它的大量英语资料,经常在openssl的开发邮件列表里查找相关知识点,欢迎对此开源代码进行学习合作和开发合作。

锐英源openssl研究成绩

锐英源在openssl的主要研究成果点有:

1、安全通信平台的开发

2、密码库的使用

3、证书的创建和使用

结合select使用SSL_read

SSL_read可以读取通信数据,但是在非阻塞状态下使用时,没数据时会阻塞,为了在有数据状态再读,需要用select判断状态,下面列出获取socket句柄的代码和进行select的代码,供大家参考提高。

BIO_get_fd(sbio, &fdSocket);//sbio是BIO*类型,fdSocket是int类型可以代表一个socket句柄 FD_ZERO(&connectionfds); FD_SET(fdSocket, &connectionfds);//准备select使用的FDSET timeout.tv_usec = 0; timeout.tv_sec = 10; memcpy(&fdcur,&connectionfds,sizeof(fdcur));//select后fdset会失效,所以先用好的fdset来拷贝给当前用的 nRet = select(fdSocket + 1, &fdcur, NULL,NULL, &timeout);//在读参数位置使用fdset if(nRet>0)//有读状态的socket个数,则调用读取 { len=SSL_read(ssl,tmpbuf,1024); if(len>0) break; }



编译困难时的替代做法

openssl的编译需要信赖一些其它库,在编译不出来时,可以用别人编译好的库来使用,网上一般能找到,找的时候注意是32位还是64位,注意区分。这一般能满足常用开发要求,节省了研究编译的精力。