• 大小: 8.31MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-10-14
  • 语言: 其他
  • 标签: 国嵌  Linux  

资源简介

国嵌 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个文件信息

评论

共有 条评论