资源简介
基于mini2440安全文件传输系统, 含文档和代码,可直接在mini2440板子上运行。
代码片段和文件信息
#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
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2011-03-17 19:40 SFSS\
目录 0 2011-03-17 19:40 SFSS\doc\
文件 74537 2010-08-11 19:18 SFSS\doc\概要设计.pdf
文件 331100 2010-08-11 19:19 SFSS\doc\详细设计.pdf
文件 52699 2010-08-11 19:19 SFSS\doc\项目需求.pdf
目录 0 2011-03-17 19:40 SFSS\OpenSSL\
目录 0 2011-03-17 19:40 SFSS\OpenSSL\代码\
目录 0 2011-03-17 19:40 SFSS\OpenSSL\代码\库\
文件 2086131 2009-06-16 22:55 SFSS\OpenSSL\代码\库\openssl-0.9.6.tar.gz
文件 3852259 2009-06-16 22:08 SFSS\OpenSSL\代码\库\openssl-0.9.8k.tar.gz
目录 0 2011-03-17 19:40 SFSS\OpenSSL\代码\编程范例\
文件 1525 2010-02-27 11:00 SFSS\OpenSSL\代码\编程范例\cacert.pem
文件 3607 2009-03-19 12:58 SFSS\OpenSSL\代码\编程范例\client.c
文件 1675 2010-02-27 10:52 SFSS\OpenSSL\代码\编程范例\privkey.pem
文件 4664 2009-03-20 11:55 SFSS\OpenSSL\代码\编程范例\server.c
文件 162 2010-05-25 12:39 SFSS\OpenSSL\代码\编程范例\~$范例说明.doc
文件 32256 2009-03-20 16:08 SFSS\OpenSSL\代码\编程范例\范例说明.doc
目录 0 2011-03-17 19:40 SFSS\OpenSSL\资料\
文件 533427 2009-06-09 10:31 SFSS\OpenSSL\资料\openssl_program.chm
文件 237056 2009-06-09 10:31 SFSS\OpenSSL\资料\openssl中文简介.doc
文件 1190527 2009-06-09 10:31 SFSS\OpenSSL\资料\openssl编程.pdf
文件 164 2010-05-25 14:38 SFSS\readme.txt
目录 0 2011-03-17 19:40 SFSS\线程池\
目录 0 2011-03-17 19:40 SFSS\线程池\编程范例\
文件 5799 2010-05-19 15:38 SFSS\线程池\编程范例\thread.c
目录 0 2011-03-17 19:40 SFSS\线程池\资料\
文件 162 2010-05-25 13:00 SFSS\线程池\资料\~$线程池介绍.doc
文件 59392 2010-02-27 11:51 SFSS\线程池\资料\条件变量.doc
文件 21504 2010-02-27 11:42 SFSS\线程池\资料\线程池介绍.doc
目录 0 2011-03-17 19:40 SFSS\项目代码\
目录 0 2011-03-17 19:40 SFSS\项目代码\client\
............此处省略10个文件信息
- 上一篇:基于嵌入式的安防视频监控
- 下一篇:da14580主从专题
相关资源
- 基于嵌入式的安防视频监控
- 友善之臂mini2440内核文件,测试可用
- ds18b20-mini2440驱动,测试程序,qt显示
- mini2440基于MDK的全套裸机程序
- 国嵌 Linux 安全文件传输
- win7、win10环境的友善之臂mini2440的us
- 基于mini2440的mp3播放器的设计
- 64位系统Mini2440-USBDriver-DebugTool
- mini2440串口工具(for windowns)
- 基于mini2440的MP3播放器毕业设计
- ARM9 Mini2440核心板原理图和PCB已经封装
- ov9650 mini2440裸机测试代码
- Mini2440 Nor Flash 芯片手册S29AL016J_00
- 在Keil MDK 4上 将ucosii和ucgui移植MINI24
- mini2440原版光盘配套使用手册
- 嵌入式WEB监控小车全套代码以及文档
- minigui1.6.10在mini2440上的移植
- uboot for mini2440
- mini2440arm基于qt4的MP3源码
- ARM Mini2440 电路图.
- mini2440在MDK上完整启动代码
- 简单、规范的Linux下的ds18b20驱动基于
- tcp文件传输220091
- mini2440的u-boot.bin 2012.04.01版
- Keil Mdk5.15下移植ucosii到mini2440s3c2440
-
用Jli
nk烧写bootloader到mini2440的Nor f - mini2440裸机实现简易u-boot代码.rar
- mini2440实现采集摄像头数据在开发板的
- 嵌入式linux之mini2440的hc-sr04超声波驱动
- mini2440简易bootloader源码
评论
共有 条评论