当前位置:  编程技术>c/c++/嵌入式

使用pthread库实现openssl多线程ssl服务端和客户端

    来源: 互联网  发布时间:2014-10-23

    本文导语:  服务端代码如下: 代码如下:#include #include #include #include #ifndef    _WIN32#include #include #include #include #include #include #else#include #include #endif#include "pthread.h"#include #include #include #include #include #include #define CERTF "certs/sslservercert.pem"#define...

服务端代码如下:

代码如下:

#include
#include
#include
#include
#ifndef    _WIN32
#include
#include
#include
#include
#include
#include
#else
#include
#include
#endif
#include "pthread.h"
#include
#include
#include
#include
#include
#include
#define CERTF "certs/sslservercert.pem"
#define KEYF  "certs/sslserverkey.pem"
#define    CAFILE  "certs/cacert.pem"
pthread_mutex_t    mlock=PTHREAD_MUTEX_INITIALIZER;
static pthread_mutex_t *lock_cs;
static long *lock_count;
#define CHK_NULL(x) if ((x)==NULL) { printf("nulln"); }
#define CHK_ERR(err,s) if ((err)==-1) { printf(" -1 n"); }
#define CHK_SSL(err) if ((err)==-1) {  printf(" -1 n");}
#define    CAFILE  "certs/cacert.pem"

int  verify_callback_server(int ok, X509_STORE_CTX *ctx)
{
              printf("verify_callback_server n");
        return ok;
}

int    SSL_CTX_use_PrivateKey_file_pass(SSL_CTX *ctx,char *filename,char *pass)
{
       EVP_PKEY     *pkey=NULL;
       BIO               *key=NULL;

       key=BIO_new(BIO_s_file());
       BIO_read_filename(key,filename);
       pkey=PEM_read_bio_PrivateKey(key,NULL,NULL,pass);
       if(pkey==NULL)
       {
              printf("PEM_read_bio_PrivateKey err");
              return -1;
       }
       if (SSL_CTX_use_PrivateKey(ctx,pkey)

    
 
 

您可能感兴趣的文章:

  • linux 下多线程 每个线程能否使用alarm来处理,信号是否会乱呢?
  • 困惑:子线程如何使用主线程的变量?
  • 如何实现这样的API,可同时被不同的进程/线程使用,但是又不区分进程/线程?
  • 请问在单进程,多线程程序里,线程间使用IPC的信号量来同步,能行吗?
  • java多线程编程之使用runnable接口创建线程
  • java线程之使用Runnable接口创建线程的方法
  • 使用信号量如何退出线程?
  • 如何锁定源代码,一次只能有一个线程使用? iis7站长之家
  • Java多线程之中断线程(Interrupt)的使用详解
  • 在多线程中使用select
  • 在unix下做webserver,使用多进程?多线程?
  • 如何锁定源代码,一次只能有一个线程使用?
  • 各位大侠,想问问驱动程序中(linux或者windows平台)可否使用线程?
  • 请教:多线程使用同一个socket进行数据收发会出现什么问题?
  • 请问如果要同时使用STL和多线程,会很麻烦么
  • 驱动多线程中频繁使用mdelay会对系统造成问题吗?
  • 有没有使用过Linux下线程池技术的高手,请为我指点迷津!!!
  • 请教一个pthread线程库的使用的问题
  • Shell有没有多线程,怎么使用?!
  • 请问可以在一个Servlet里使用多线程和SOCKET吗?
  • 客户端服务端使用socket通信的send/write最大发送多少?
  • 如何获取客户端浏览器所使用的语言,特别是要区分简繁体!
  • Linux系统做服务器,客户端可使用windows系列的系统吗
  • 如何使用LINUX为不同子网的WIN98客户端不同的应用程序做代理?给分100
  • 如何在java 客户端使用http将cookies 信息发送给服务端.
  • linux客户端能不能使用x界面呀
  • 使用tcp协议发送数据, 如果获得系统底层将包发到客户端之间的耗时?
  • 在linux服务器上面设置squid后怎么设置可以使客户端能使用QQ?
  • 怎么使用outlook一类的客户端接收远程linux的系统邮件
  • 哪里可以下载到, Windows平台下的图形化CVS客户端软件?哪种使用更方便些?
  • DNS服务器端可以使用DNS服务,但客户端无法使用
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • pthread_attr_init()及pthread_cond_wait使用疑惑
  • 无法使用pthread_creat()函数的问题
  • 关于sem_open 使用及-pthread
  • 有关使用pthread_creat时的参数传递问题!!!
  • 线程和fork,为什么要使用pthread_atfork?(一楼从来都有分)
  • 请问有没头函数<pthread.h>和<signal.h>里的函数的详细功能介绍?和使用方法???
  • 关于pthread_wait和互斥锁配合的使用问题
  • 使用pthread库失败
  • 重分请教: fedora core 5中如何使用 pthread_suspend_np?是否需要外部库支持?
  • 在linux7.3下多个线程使用 pthread_cond_t 的一个小问题。
  • c++程序中使用pthread编译不过,请教大家?????
  • sigwait和pthread_kill的使用.只发了一个信号阿?怎么有等到两个????
  • 求助: pthread_rwlock_t 使用
  • linux下main thread如何使用pthread_join等待子线程结束后再退出
  • pthread_join的第二个参数怎么使用?
  • pthread库中如何使用RECURSIVE_MUTEX
  • 使用pthread多线程文件IO的问题
  • 进程间通信:pthread_cond使用在线程间,我要进程间条件同步(没有情缘关系的进程),采用什么方呢?也就是说我要在UNIX实现WIN32上命名Event的功能
  • pthread线程库和C++一起使用的问题
  • aix pthread.h 使用编译出错
  • C++ I/O 成员 tellg():使用输入流读取流指针
  • 在测试memset函数的执行效率时,分为使用Cash和不使用Cash辆种方式,该如何控制是否使用缓存?
  • C++ I/O 成员 tellp():使用输出流读取流指针
  • 求ibm6000的中文使用手册 !从来没用过服务器,现在急需使用它,不知如何使用! 急!!!!!
  • Python不使用print而直接输出二进制字符串
  • 请问:在使用oracle数据库作开发时,是使用pro*c作开发好些,还是使用库函数如oci等好一些啊?或者它们有什么区别或者优缺点啊?
  • Office 2010 Module模式下使用VBA Addressof
  • 急求结果!!假设一个有两个元素的信号量集S,表示了一个磁带驱动器系统,其中进程1使用磁带机A,进程2同时使用磁带机A和B,进程3使用磁带机B。
  • windows下tinyxml.dll下载安装使用(c++解析XML库)
  • c#中SAPI使用总结——SpVoice的使用方法
  • tcmalloc内存泄露优化c++开源库下载,安装及使用介绍




  • 特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3