没有合适的资源?快使用搜索试试~ 我知道了~
OpenSSL编程实例复习过程.pdf
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 88 浏览量
2023-06-08
19:20:26
上传
评论
收藏 326KB PDF 举报
温馨提示
试读
13页
OpenSSL编程实例复习过程.pdf
资源推荐
资源详情
资源评论
O p e n S S L 编 程 实 例
精品文档
客户端程序
// OpenSSLClient.cpp
#include <winsock2.h>
#include <iostream>
using namespace std;
#pragma comment (lib, "Ws2_32.lib")
#include "openssl/ssl.h"
#pragma comment(lib, "ssleay32.lib")
#pragma comment(lib, "libeay32.lib")
#define SERVICE_PORT 10000
const int nBufSize = 512;
// 初始化 2.2 版本 Winsock
int InitWinsock(){
WSADATA wsaData = {0};
WORD wVer = MAKEWORD(2,2);
int nRet = WSAStartup(wVer, &wsaData);
if(nRet != 0){
cout<<"Winsock 初始化失败,错误代码是"<<nRet<<endl;
}
return nRet;
}
// 创建一个套接字
SOCKET CreateSocket(){
SOCKET hSocket = INVALID_SOCKET;
hSocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
if(hSocket == INVALID_SOCKET){
int last_err = WSAGetLastError();
cout<<"创建套接字失败,错误代码是"<<last_err<<endl;
}
return hSocket;
}
// 连接到服务器
int ConnectServer(SOCKET hSocket){
收集于网络,如有侵权请联系管理员删除
精品文档
// 填充远程套接字地址
SOCKADDR_IN saServer = {0};
saServer.sin_family = AF_INET;
saServer.sin_port = htons(SERVICE_PORT);
saServer.sin_addr.s_addr = inet_addr("127.0.0.1");
// 使用远程套接字地址连接到服务器
int nRet = connect(hSocket, (SOCKADDR *)&saServer, sizeof(saServer));
if(nRet == SOCKET_ERROR){
int last_err = WSAGetLastError();
cout<<"连接失败,错误代码是"<<last_err<<endl;
}
return nRet;
}
bool InitOpenSSL(){
if(!SSL_library_init())
return false;
SSL_load_error_strings();
return true;
}
int PasswordCB(char *buf, int size, int flag, void *userdata){
// 作者所创建的客户端程序私匙密码是 12345678
const char* pass = "12345678";
if(size < strlen(pass) + 1)
return(0);
strcpy(buf, pass);
return(strlen(pass));
}
int VerifyCB(int ok, X509_STORE_CTX *store){
if(!ok){
int err = X509_STORE_CTX_get_error(store);
cout<<err<<":"<<X509_verify_cert_error_string(err)<<endl;
}
return ok;
}
SSL_CTX* InitSSLContext(){
收集于网络,如有侵权请联系管理员删除
剩余12页未读,继续阅读
资源评论
hhappy0123456789
- 粉丝: 61
- 资源: 5万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功