openssl的功能十分强大,比如可以实现无缝的io过滤,可是实现安全套接字,可以实现数据加密解 密等等,其实openssl的证书认证功能可以实现C/S模式程序的版本控制功能,最重要的就是使用在ssl握手的时候会传递证书,而证书中很多字段是可 以自定义的,服务器可以通过查看客户端的证书得到客户端的信息,反之客户端也可以通过服务器的证书得到服务器的信息,很多人会认为这有点复杂了,实现信息 互通大可不必使用ssl握手,标准套接字就可以,然而使用ssl的目的就是使得通信更加保密,或者就是使用ssl的清晰的过程,openssl的握手过程 十分清晰,为我们考虑了很多我们可能考虑不到的事情,而且openssl的api非常丰富,我们可以在很安全很稳定的环境下轻松得到很充足的信息,何乐而 不为!
最简单的版本控制就是在控制端使用一个全局的变量,这个变量可以是int类型,它的每一个位代表一个功能,在程序初始化的时候服务器和作为控制端的客户端 进行ssl握手,期间服务器会将证书传递给控制端,控制端可以根据服务器证书的内容得到这个全局的版本控制变量,然后解析这个变量得到该程序可以使用的功 能,或者过程反过来也可以,就是客户端将证书传递给服务器,服务器通过验证客户端的证书来确定提供哪些服务,亦或者服务器和客户端进行双向验证。以下就是 一个实际的例子,首先看一下服务器的粗略代码:
#include "StdAfx.h"
#include "Server_Verify.h"
DWORD WINAPI VerifyProc( LPVOID lpParam ) ;
int IsValidCert( char * strCertPath )
本文转自 dog250 51CTO博客,原文链接:http://blog.51cto.com/dog250/1274088