资源简介
国嵌 Linux 项目专题3(安全文件传输)买板子送的

代码片段和文件信息
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define MAXBUF 1024
void ShowCerts(SSL * ssl)
{
X509 *cert;
char *line;
cert = SSL_get_peer_certificate(ssl);
if (cert != NULL) {
printf(“Digital certificate information:\n“);
line = X509_NAME_oneline(X509_get_subject_name(cert) 0 0);
printf(“Certificate: %s\n“ line);
free(line);
line = X509_NAME_oneline(X509_get_issuer_name(cert) 0 0);
printf(“Issuer: %s\n“ line);
free(line);
X509_free(cert);
}
else
printf(“No certificate information!\n“);
}
int main(int argc char **argv)
{
int ijsockfd len fd size;
char fileName[50]sendFN[20];
struct sockaddr_in dest;
char buffer[MAXBUF + 1];
SSL_CTX *ctx;
SSL *ssl;
if (argc != 3)
{
printf(“Parameter format error! Correct usage is as follows:\n\t\t%s IP Port\n\tSuch as:\t%s 127.0.0.1 80\n“ argv[0] argv[0]); exit(0);
}
/* SSL 库初始化 */
SSL_library_init();
OpenSSL_add_all_algorithms();
SSL_load_error_strings();
ctx = SSL_CTX_new(SSLv23_client_method());
if (ctx == NULL)
{
ERR_print_errors_fp(stdout);
exit(1);
}
/* 创建一个 socket 用于 tcp 通信 */
if ((sockfd = socket(AF_INET SOCK_STREAM 0)) < 0)
{
perror(“Socket“);
exit(errno);
}
printf(“socket created\n“);
/* 初始化服务器端(对方)的地址和端口信息 */
bzero(&dest sizeof(dest));
dest.sin_family = AF_INET;
dest.sin_port = htons(atoi(argv[2]));
if (inet_aton(argv[1] (struct in_addr *) &dest.sin_addr.s_addr) == 0)
{
perror(argv[1]);
exit(errno);
}
printf(“address created\n“);
/* 连接服务器 */
if (connect(sockfd (struct sockaddr *) &dest sizeof(dest)) != 0)
{
perror(“Connect “);
exit(errno);
}
printf(“server connected\n\n“);
/* 基于 ctx 产生一个新的 SSL */
ssl = SSL_new(ctx);
SSL_set_fd(ssl sockfd);
/* 建立 SSL 连接 */
if (SSL_connect(ssl) == -1)
ERR_print_errors_fp(stderr);
else
{
printf(“Connected with %s encryption\n“ SSL_get_cipher(ssl));
ShowCerts(ssl);
}
/* 接收用户输入的文件名,并打开文件 */
printf(“\nPlease input the filename of you want to load :\n>“);
scanf(“%s“fileName);
if((fd = open(fileNameO_RDONLY0666))<0)
{
perror(“open:“);
exit(1);
}
/* 将用户输入的文件名,去掉路径信息后,发给服务器 */
for(i=0;i<=strlen(fileName);i++)
{
if(fileName[i]==‘/‘)
{
j=0;
continue;
}
else {sendFN[j]=fileName[i];++j;}
}
len = SSL_write(ssl sendFN strlen(sendFN));
if (len < 0)
printf(“‘%s‘message Send failure !Error code is %d,Error messages are ‘%s‘\n“ buffer errno strerror(errno));
/* 循环发送文件内容到服务器 */
bzero(buffer MAXBUF + 1);
while((size=read
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 2086131 2009-06-16 22:55 项目专题3(安全文件传输)\OpenSSL\代码\库\openssl-0.9.6.tar.gz
文件 3852259 2009-06-16 22:08 项目专题3(安全文件传输)\OpenSSL\代码\库\openssl-0.9.8k.tar.gz
文件 1525 2010-02-27 11:00 项目专题3(安全文件传输)\OpenSSL\代码\编程范例\cacert.pem
文件 3607 2009-03-19 12:58 项目专题3(安全文件传输)\OpenSSL\代码\编程范例\client.c
文件 1675 2010-02-27 10:52 项目专题3(安全文件传输)\OpenSSL\代码\编程范例\privkey.pem
文件 4664 2009-03-20 11:55 项目专题3(安全文件传输)\OpenSSL\代码\编程范例\server.c
文件 32256 2009-03-20 16:08 项目专题3(安全文件传输)\OpenSSL\代码\编程范例\范例说明.doc
文件 533427 2009-06-09 10:31 项目专题3(安全文件传输)\OpenSSL\资料\openssl_program.chm
文件 237056 2009-06-09 10:31 项目专题3(安全文件传输)\OpenSSL\资料\openssl中文简介.doc
文件 1190527 2009-06-09 10:31 项目专题3(安全文件传输)\OpenSSL\资料\openssl编程.pdf
文件 624810 2010-02-27 21:27 项目专题3(安全文件传输)\实验手册.pdf
文件 5775 2009-09-20 21:03 项目专题3(安全文件传输)\线程池\编程范例\thread.c
文件 59392 2010-02-27 11:51 项目专题3(安全文件传输)\线程池\资料\条件变量.doc
文件 21504 2010-02-27 11:42 项目专题3(安全文件传输)\线程池\资料\线程池介绍.doc
文件 16010 2010-02-27 12:16 项目专题3(安全文件传输)\项目代码\客户端\client.c
文件 1851 2008-02-04 11:49 项目专题3(安全文件传输)\项目代码\客户端\client.h
文件 18 2009-09-17 13:04 项目专题3(安全文件传输)\项目代码\服务器\admin.txt
文件 1619 2009-03-16 19:39 项目专题3(安全文件传输)\项目代码\服务器\cacert.pem
文件 841109 2009-03-13 10:37 项目专题3(安全文件传输)\项目代码\服务器\log.txt
文件 2 2009-06-18 20:38 项目专题3(安全文件传输)\项目代码\服务器\maxclientnum.txt
文件 1679 2009-03-16 19:38 项目专题3(安全文件传输)\项目代码\服务器\privkey.pem
文件 26119 2010-02-27 12:09 项目专题3(安全文件传输)\项目代码\服务器\server.c
文件 1126 2008-01-28 19:19 项目专题3(安全文件传输)\项目代码\服务器\server.h
文件 0 2010-02-27 17:06 项目专题3(安全文件传输)\项目代码\服务器\user.txt
文件 189952 2008-12-01 13:56 项目专题3(安全文件传输)\项目文档\文档模版\XXX概要设计说明书.doc
文件 66048 2009-07-07 16:29 项目专题3(安全文件传输)\项目文档\文档模版\XXX测试报告.doc
文件 908800 2008-12-01 13:56 项目专题3(安全文件传输)\项目文档\文档模版\XXX详细设计说明书.doc
文件 68096 2009-07-07 16:27 项目专题3(安全文件传输)\项目文档\文档模版\XXX需求规格说明书.doc
文件 69120 2009-03-13 14:07 项目专题3(安全文件传输)\项目文档\概要设计.doc
文件 264192 2010-02-27 12:27 项目专题3(安全文件传输)\项目文档\详细设计.doc
............此处省略18个文件信息
相关资源
- uboot到linux logo显示不间断 补丁
- UNIX/LINUX编程实践教程的源码
- Linux任务管理器
- linux应用层的华容道游戏源代码
- ubuntu9.10 可加载内核模块和字符设备驱
- MP3文件ID3v2ID3v2APEv2标签读取
- 操作系统实验——虚存管理实验
- linux下的发包工具sendip
- 尚观培训linux许巍关于c 的笔记和讲义
- 尚观培训linux董亮老师关于数据结构的
- linux 线程池源码 c 版
- linux C 电梯程序练习
- linux下用多进程同步方法解决生产者
- Linux 操作系统实验(全)
- Linux From Scratch 中文手册
- linux 网络实验 ftp程序
- Linux命令大全离线版&在线版
- 操作系统共享内存实验
- dos 下运行Linux 命令--gnu_utils
- linux 0.12内核源代码
- linux简易shell C实现
- linux实验报告及心得体会
- 基于GTK的Linux环境下的简易任务管理器
- linux扫雷游戏代码
- CAN Linux驱动代码
- Linux系统教材
- intel 82579LM 网卡驱动Linux系统版 v1.9.
- SA1110处理器掌上电脑液晶显示器设计
- 基于Linux的串口服务器设计
- Windows下访问LINUX的利器-SSH
评论
共有 条评论