⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sslclientsocket.h

📁 基本实现了数字证书的制作、SSL安全通讯、加解密操作等功能
💻 H
字号:
#if !defined(AFX_SSLCLIENTSOCKET_H__E2CC9DFD_E9AC_4564_AB55_EFD930215D2B__INCLUDED_)
#define AFX_SSLCLIENTSOCKET_H__E2CC9DFD_E9AC_4564_AB55_EFD930215D2B__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// SslClientSocket.h : header file
//
#include "ColorListBox.h"


/////////////////////////////////////////////////////////////////////////////
// CSslClientSocket command target

class CSslClientSocket : public CAsyncSocket
{
// Attributes
public:
	CColorListBox *	m_pList;
	BOOL SockConnect(SSL_METHOD *meth,char *certfile,int certlen, char *keyfile,
		int keylen,		char * cafile, char * capath,CColorListBox * plist,
		LPCTSTR lpszHostAddress, UINT nHostPort,char * out);//普通套接字连接
	int SSlConnect(stuSERVERINFO * stu,char * out);//ssl套接字连接

// Operations
public:
	CSslClientSocket();
	virtual ~CSslClientSocket();
	SSL * m_Ssl;

// Overrides
public:
	int SSlReceive(char * buf,int len);
	int SSlSend(char * buf,int len);
	void SSlShouDown();
	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CSslClientSocket)
	public:
	virtual void OnClose(int nErrorCode);
	virtual void OnReceive(int nErrorCode);
	//}}AFX_VIRTUAL

	// Generated message map functions
	//{{AFX_MSG(CSslClientSocket)
		// NOTE - the ClassWizard will add and remove member functions here.
	//}}AFX_MSG

// Implementation
protected:
	int Rand(const char *file,int dont_warn,char * outMsg);
	void GetPeerInfo(SSL * ssl,stuSERVERINFO * stu);//得到对方信息
	X509 * LoadCert(char * cert,int certlen,char * outMsg);//枚举DER/PEM格式
	EVP_PKEY * LoadKey(char * key,int keylen,char * pass,char * outMsg);//枚举DER/PEM格式

private:
	SSL_CTX * m_Ctx;
	EVP_PKEY * load_key(BIO *bio, int format, char *pass,char * outMsg);
	X509 * load_cert(BIO *cert, int format,char * pwd,char * outMsg);
};

/////////////////////////////////////////////////////////////////////////////

//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_SSLCLIENTSOCKET_H__E2CC9DFD_E9AC_4564_AB55_EFD930215D2B__INCLUDED_)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -