亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? test.hpp

?? MySQL源碼文件5.X系列, 可自已編譯到服務器
?? HPP
字號:
// test.hpp#ifndef yaSSL_TEST_HPP#define yaSSL_TEST_HPP#include "runtime.hpp"#include "openssl/ssl.h"   /* openssl compatibility test */#include <stdio.h>#include <stdlib.h>#include <assert.h>//#define NON_BLOCKING  // test server and client example (not echos)#ifdef _WIN32    #include <winsock2.h>    #include <process.h>    #define SOCKET_T unsigned int#else    #include <string.h>    #include <unistd.h>    #include <netinet/in.h>    #include <arpa/inet.h>    #include <sys/ioctl.h>    #include <sys/time.h>    #include <sys/types.h>    #include <sys/socket.h>    #include <pthread.h>#ifdef NON_BLOCKING    #include <fcntl.h>#endif    #define SOCKET_T int#endif /* _WIN32 */#if !defined(_SOCKLEN_T) && \ (defined(_WIN32) || defined(__NETWARE__) || defined(__APPLE__))    typedef int socklen_t;#endif// Check type of third arg to accept#if defined(__hpux)// HPUX uses int* for third parameter to accept    typedef int*       ACCEPT_THIRD_T;#elif defined(__NETWARE__)// NetWare uses size_t* for third parameter to accept    typedef size_t*       ACCEPT_THIRD_T;#else    typedef socklen_t* ACCEPT_THIRD_T;#endif// Check if _POSIX_THREADS should be forced#if !defined(_POSIX_THREADS) && (defined(__NETWARE__) || defined(__hpux))// HPUX does not define _POSIX_THREADS as it's not _fully_ implemented// Netware supports pthreads but does not announce it#define _POSIX_THREADS#endif#ifndef _POSIX_THREADS    typedef unsigned int  THREAD_RETURN;    typedef unsigned long THREAD_TYPE;    #define YASSL_API __stdcall#else    typedef void*         THREAD_RETURN;    typedef pthread_t     THREAD_TYPE;    #define YASSL_API #endifstruct tcp_ready {#ifdef _POSIX_THREADS    pthread_mutex_t mutex_;    pthread_cond_t  cond_;    bool            ready_;   // predicate    tcp_ready() : ready_(false)    {        pthread_mutex_init(&mutex_, 0);        pthread_cond_init(&cond_, 0);    }    ~tcp_ready()    {        pthread_mutex_destroy(&mutex_);        pthread_cond_destroy(&cond_);    }#endif};    struct func_args {    int    argc;    char** argv;    int    return_code;    tcp_ready* signal_;    func_args(int c = 0, char** v = 0) : argc(c), argv(v) {}    void SetSignal(tcp_ready* p) { signal_ = p; }};typedef THREAD_RETURN YASSL_API THREAD_FUNC(void*);void start_thread(THREAD_FUNC, func_args*, THREAD_TYPE*);void join_thread(THREAD_TYPE);// yaSSLconst char* const    yasslIP   = "127.0.0.1";const unsigned short yasslPort = 11111;// clientconst char* const cert = "../certs/client-cert.pem";const char* const key  = "../certs/client-key.pem";const char* const certSuite = "../../certs/client-cert.pem";const char* const keySuite  = "../../certs/client-key.pem";const char* const certDebug = "../../../certs/client-cert.pem";const char* const keyDebug  = "../../../certs/client-key.pem";// serverconst char* const svrCert = "../certs/server-cert.pem";const char* const svrKey  = "../certs/server-key.pem";const char* const svrCert2 = "../../certs/server-cert.pem";const char* const svrKey2  = "../../certs/server-key.pem";const char* const svrCert3 = "../../../certs/server-cert.pem";const char* const svrKey3  = "../../../certs/server-key.pem";// server dsaconst char* const dsaCert = "../certs/dsa-cert.pem";const char* const dsaKey  = "../certs/dsa512.der";const char* const dsaCert2 = "../../certs/dsa-cert.pem";const char* const dsaKey2  = "../../certs/dsa512.der";const char* const dsaCert3 = "../../../certs/dsa-cert.pem";const char* const dsaKey3  = "../../../certs/dsa512.der";// CA const char* const caCert  = "../certs/ca-cert.pem";const char* const caCert2 = "../../certs/ca-cert.pem";const char* const caCert3 = "../../../certs/ca-cert.pem";using namespace yaSSL;inline void err_sys(const char* msg){    printf("yassl error: %s\n", msg);    exit(EXIT_FAILURE);}static int PasswordCallBack(char* passwd, int sz, int rw, void* userdata){    strncpy(passwd, "12345678", sz);    return 8;}inline void store_ca(SSL_CTX* ctx){    // To allow testing from serveral dirs    if (SSL_CTX_load_verify_locations(ctx, caCert, 0) != SSL_SUCCESS)        if (SSL_CTX_load_verify_locations(ctx, caCert2, 0) != SSL_SUCCESS)            if (SSL_CTX_load_verify_locations(ctx, caCert3, 0) != SSL_SUCCESS)                err_sys("failed to use certificate: certs/cacert.pem");    // load client CA for server verify    if (SSL_CTX_load_verify_locations(ctx, cert, 0) != SSL_SUCCESS)        if (SSL_CTX_load_verify_locations(ctx, certSuite, 0) != SSL_SUCCESS)            if (SSL_CTX_load_verify_locations(ctx, certDebug,0) != SSL_SUCCESS)                err_sys("failed to use certificate: certs/client-cert.pem");}// clientinline void set_certs(SSL_CTX* ctx){    store_ca(ctx);    SSL_CTX_set_default_passwd_cb(ctx, PasswordCallBack);    // To allow testing from serveral dirs    if (SSL_CTX_use_certificate_file(ctx, cert, SSL_FILETYPE_PEM)        != SSL_SUCCESS)        if (SSL_CTX_use_certificate_file(ctx, certSuite, SSL_FILETYPE_PEM)            != SSL_SUCCESS)            if (SSL_CTX_use_certificate_file(ctx, certDebug, SSL_FILETYPE_PEM)                != SSL_SUCCESS)                err_sys("failed to use certificate: certs/client-cert.pem");        // To allow testing from several dirs    if (SSL_CTX_use_PrivateKey_file(ctx, key, SSL_FILETYPE_PEM)         != SSL_SUCCESS)          if (SSL_CTX_use_PrivateKey_file(ctx, keySuite, SSL_FILETYPE_PEM)            != SSL_SUCCESS)                 if (SSL_CTX_use_PrivateKey_file(ctx,keyDebug,SSL_FILETYPE_PEM)                    != SSL_SUCCESS)                     err_sys("failed to use key file: certs/client-key.pem");}// serverinline void set_serverCerts(SSL_CTX* ctx){    store_ca(ctx);    SSL_CTX_set_default_passwd_cb(ctx, PasswordCallBack);    // To allow testing from serveral dirs    if (SSL_CTX_use_certificate_file(ctx, svrCert, SSL_FILETYPE_PEM)        != SSL_SUCCESS)        if (SSL_CTX_use_certificate_file(ctx, svrCert2, SSL_FILETYPE_PEM)            != SSL_SUCCESS)            if (SSL_CTX_use_certificate_file(ctx, svrCert3, SSL_FILETYPE_PEM)                != SSL_SUCCESS)                err_sys("failed to use certificate: certs/server-cert.pem");        // To allow testing from several dirs    if (SSL_CTX_use_PrivateKey_file(ctx, svrKey, SSL_FILETYPE_PEM)         != SSL_SUCCESS)          if (SSL_CTX_use_PrivateKey_file(ctx, svrKey2, SSL_FILETYPE_PEM)            != SSL_SUCCESS)                 if (SSL_CTX_use_PrivateKey_file(ctx, svrKey3,SSL_FILETYPE_PEM)                    != SSL_SUCCESS)                     err_sys("failed to use key file: certs/server-key.pem");}// dsa serverinline void set_dsaServerCerts(SSL_CTX* ctx){    store_ca(ctx);    // To allow testing from serveral dirs    if (SSL_CTX_use_certificate_file(ctx, dsaCert, SSL_FILETYPE_PEM)        != SSL_SUCCESS)        if (SSL_CTX_use_certificate_file(ctx, dsaCert2, SSL_FILETYPE_PEM)            != SSL_SUCCESS)            if (SSL_CTX_use_certificate_file(ctx, dsaCert3, SSL_FILETYPE_PEM)                != SSL_SUCCESS)                err_sys("failed to use certificate: certs/dsa-cert.pem");        // To allow testing from several dirs    if (SSL_CTX_use_PrivateKey_file(ctx, dsaKey, SSL_FILETYPE_ASN1)         != SSL_SUCCESS)          if (SSL_CTX_use_PrivateKey_file(ctx, dsaKey2, SSL_FILETYPE_ASN1)            != SSL_SUCCESS)                 if (SSL_CTX_use_PrivateKey_file(ctx, dsaKey3,SSL_FILETYPE_ASN1)                    != SSL_SUCCESS)                     err_sys("failed to use key file: certs/dsa512.der");}inline void set_args(int& argc, char**& argv, func_args& args){    argc = args.argc;    argv = args.argv;    args.return_code = -1; // error state}inline void tcp_set_nonblocking(SOCKET_T& sockfd){#ifdef NON_BLOCKING    #ifdef _WIN32        unsigned long blocking = 1;        int ret = ioctlsocket(sockfd, FIONBIO, &blocking);    #else        int flags = fcntl(sockfd, F_GETFL, 0);        int ret = fcntl(sockfd, F_SETFL, flags | O_NONBLOCK);    #endif#endif}inline void tcp_socket(SOCKET_T& sockfd, sockaddr_in& addr){    sockfd = socket(AF_INET, SOCK_STREAM, 0);    memset(&addr, 0, sizeof(addr));    addr.sin_family = AF_INET;    addr.sin_port = htons(yasslPort);    addr.sin_addr.s_addr = inet_addr(yasslIP);}inline void tcp_close(SOCKET_T& sockfd){#ifdef _WIN32    closesocket(sockfd);#else    close(sockfd);#endif    sockfd = -1;}inline void tcp_connect(SOCKET_T& sockfd){    sockaddr_in addr;    tcp_socket(sockfd, addr);    if (connect(sockfd, (const sockaddr*)&addr, sizeof(addr)) != 0) {        tcp_close(sockfd);        err_sys("tcp connect failed");    }}inline void tcp_listen(SOCKET_T& sockfd){    sockaddr_in addr;    tcp_socket(sockfd, addr);    if (bind(sockfd, (const sockaddr*)&addr, sizeof(addr)) != 0) {        tcp_close(sockfd);        err_sys("tcp bind failed");    }    if (listen(sockfd, 3) != 0) {        tcp_close(sockfd);        err_sys("tcp listen failed");    }}inline void tcp_accept(SOCKET_T& sockfd, SOCKET_T& clientfd, func_args& args){    tcp_listen(sockfd);    sockaddr_in client;    socklen_t client_len = sizeof(client);#if defined(_POSIX_THREADS) && defined(NO_MAIN_DRIVER)    // signal ready to tcp_accept    tcp_ready& ready = *args.signal_;    pthread_mutex_lock(&ready.mutex_);    ready.ready_ = true;    pthread_cond_signal(&ready.cond_);    pthread_mutex_unlock(&ready.mutex_);#endif    clientfd = accept(sockfd, (sockaddr*)&client, (ACCEPT_THIRD_T)&client_len);    if (clientfd == -1) {        tcp_close(sockfd);        err_sys("tcp accept failed");    }#ifdef NON_BLOCKING    tcp_set_nonblocking(clientfd);#endif}inline void showPeer(SSL* ssl){    X509* peer = SSL_get_peer_certificate(ssl);    if (peer) {        char* issuer  = X509_NAME_oneline(X509_get_issuer_name(peer), 0, 0);        char* subject = X509_NAME_oneline(X509_get_subject_name(peer), 0, 0);        printf("peer's cert info:\n");        printf("issuer : %s\n", issuer);        printf("subject: %s\n", subject);        free(subject);        free(issuer);    }    else        printf("peer has no cert!\n");}inline DH* set_tmpDH(SSL_CTX* ctx){    static unsigned char dh1024_p[] =    {        0xE6, 0x96, 0x9D, 0x3D, 0x49, 0x5B, 0xE3, 0x2C, 0x7C, 0xF1, 0x80, 0xC3,        0xBD, 0xD4, 0x79, 0x8E, 0x91, 0xB7, 0x81, 0x82, 0x51, 0xBB, 0x05, 0x5E,        0x2A, 0x20, 0x64, 0x90, 0x4A, 0x79, 0xA7, 0x70, 0xFA, 0x15, 0xA2, 0x59,        0xCB, 0xD5, 0x23, 0xA6, 0xA6, 0xEF, 0x09, 0xC4, 0x30, 0x48, 0xD5, 0xA2,        0x2F, 0x97, 0x1F, 0x3C, 0x20, 0x12, 0x9B, 0x48, 0x00, 0x0E, 0x6E, 0xDD,        0x06, 0x1C, 0xBC, 0x05, 0x3E, 0x37, 0x1D, 0x79, 0x4E, 0x53, 0x27, 0xDF,        0x61, 0x1E, 0xBB, 0xBE, 0x1B, 0xAC, 0x9B, 0x5C, 0x60, 0x44, 0xCF, 0x02,        0x3D, 0x76, 0xE0, 0x5E, 0xEA, 0x9B, 0xAD, 0x99, 0x1B, 0x13, 0xA6, 0x3C,        0x97, 0x4E, 0x9E, 0xF1, 0x83, 0x9E, 0xB5, 0xDB, 0x12, 0x51, 0x36, 0xF7,        0x26, 0x2E, 0x56, 0xA8, 0x87, 0x15, 0x38, 0xDF, 0xD8, 0x23, 0xC6, 0x50,        0x50, 0x85, 0xE2, 0x1F, 0x0D, 0xD5, 0xC8, 0x6B,    };    static unsigned char dh1024_g[] =    {      0x02,    };    DH* dh;    if ( (dh = DH_new()) ) {        dh->p = BN_bin2bn(dh1024_p, sizeof(dh1024_p), 0);        dh->g = BN_bin2bn(dh1024_g, sizeof(dh1024_g), 0);    }    if (!dh->p || !dh->g) {        DH_free(dh);        dh = 0;    }    SSL_CTX_set_tmp_dh(ctx, dh);    return dh;}#endif // yaSSL_TEST_HPP

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
天天操天天色综合| 成人开心网精品视频| 丰满放荡岳乱妇91ww| 精品国免费一区二区三区| 一区二区视频在线| 视频一区视频二区中文| 91极品美女在线| 国产精品人妖ts系列视频| 狠狠网亚洲精品| 日韩精品一区国产麻豆| 久久国产麻豆精品| 久久久精品人体av艺术| 青青青爽久久午夜综合久久午夜| 欧美日韩精品免费| 婷婷国产在线综合| 自拍av一区二区三区| 在线视频国产一区| 天堂成人国产精品一区| 亚洲色图欧洲色图| 国产拍欧美日韩视频二区| av中文字幕不卡| 日韩伦理免费电影| 日本一区二区免费在线观看视频| 日韩午夜在线影院| 久久精工是国产品牌吗| 首页亚洲欧美制服丝腿| 一级日本不卡的影视| 中文字幕综合网| 一区在线播放视频| 欧美一区二区三区在线电影| 精品无码三级在线观看视频 | 亚洲精品一区二区三区福利| 精品视频色一区| 国产在线视频一区二区| 日产国产欧美视频一区精品| 国产精品视频一区二区三区不卡| 欧美精品一区二区三区四区| 日韩欧美二区三区| 日韩一区二区三区电影| 欧美一区二区三区免费观看视频| 欧美精品tushy高清| 国产999精品久久久久久绿帽| 国内精品免费**视频| 国产一区高清在线| 一区二区三区在线视频观看58| 1024成人网色www| 亚洲欧美另类久久久精品| 日韩欧美国产精品一区| 91精品婷婷国产综合久久性色| 成人精品视频一区二区三区| 成人黄色一级视频| 久久国产日韩欧美精品| 国产精选一区二区三区| 亚洲日本va午夜在线影院| 亚洲视频一区二区免费在线观看| 亚洲精品大片www| 亚洲国产裸拍裸体视频在线观看乱了| 久久久久久夜精品精品免费| 欧美国产日韩亚洲一区| 欧美一级艳片视频免费观看| 日韩欧美国产一区二区三区| 久久久久久久久蜜桃| 国产精品对白交换视频| 久久亚洲综合av| 国产亚洲美州欧州综合国| 色94色欧美sute亚洲13| 欧美日韩国产成人在线免费| 在线播放91灌醉迷j高跟美女| 欧美成人精品3d动漫h| 欧美在线观看一区| 日韩一区二区三区在线视频| 久久久一区二区三区捆绑**| 日韩毛片精品高清免费| 五月天婷婷综合| 国产美女精品人人做人人爽| av在线不卡网| 欧美精品日韩一区| 国产精品女人毛片| 亚洲在线观看免费视频| 亚洲免费av在线| 日韩黄色免费电影| 大胆欧美人体老妇| 欧美日韩精品是欧美日韩精品| 2021中文字幕一区亚洲| 亚洲人成网站色在线观看| 午夜久久久久久久久久一区二区| 捆绑调教美女网站视频一区| av色综合久久天堂av综合| 3d动漫精品啪啪一区二区竹菊| 国产欧美在线观看一区| 午夜精品国产更新| 国产91丝袜在线18| 欧美电影一区二区三区| 国产精品每日更新在线播放网址| 亚洲v中文字幕| 亚洲国产精品一区二区www在线| 国产一区二区三区视频在线播放| 97久久精品人人做人人爽| 国产成人av福利| 成人午夜在线免费| 91精品国产综合久久久久久久| 久久久精品欧美丰满| 图片区小说区区亚洲影院| 成人精品免费网站| 日韩欧美久久久| 一区二区三区毛片| 国产成人精品免费| 日韩视频一区二区三区在线播放| 亚洲三级电影全部在线观看高清| 国产麻豆成人精品| 欧美丰满高潮xxxx喷水动漫| 亚洲免费av高清| 成人手机电影网| 精品国产免费一区二区三区香蕉| 亚洲成va人在线观看| 色婷婷综合五月| 欧美色涩在线第一页| 中文字幕在线视频一区| 国产精品18久久久久久vr| 91精品国产色综合久久不卡电影 | 亚洲成人精品一区二区| 高清在线不卡av| 精品国产三级a在线观看| 日本中文字幕一区二区视频| 欧美日韩在线综合| 依依成人精品视频| 91丨porny丨首页| 色偷偷久久一区二区三区| 国产精品视频第一区| 国产精品综合av一区二区国产馆| 日韩免费观看2025年上映的电影 | 国内精品国产三级国产a久久| 欧美高清视频不卡网| 天天影视色香欲综合网老头| 在线视频国产一区| 亚洲国产精品久久不卡毛片| 日本精品裸体写真集在线观看| 亚洲天堂中文字幕| 91在线免费看| 亚洲黄色免费网站| 日本韩国欧美在线| 国产成人免费9x9x人网站视频| 国产精品一二三四| 日本二三区不卡| 亚洲一区二区在线免费观看视频| 欧洲亚洲国产日韩| 亚洲国产精品精华液网站| 欧美日韩精品三区| 久久99久久99小草精品免视看| 欧美刺激脚交jootjob| 国产综合成人久久大片91| 日本一区二区三区四区| 99视频在线精品| 亚洲午夜精品一区二区三区他趣| 欧美日韩一区二区欧美激情| 蜜桃视频一区二区三区在线观看| 99re视频精品| 亚洲一区日韩精品中文字幕| 欧美日韩国产在线播放网站| 麻豆高清免费国产一区| 久久精品综合网| 99re8在线精品视频免费播放| 亚洲精品欧美综合四区| 8x8x8国产精品| 国产美女精品人人做人人爽| 自拍偷拍国产亚洲| 欧美一区二区高清| 成人影视亚洲图片在线| 亚洲精品精品亚洲| 欧美一区二区三区视频免费| 国产大陆亚洲精品国产| 一区二区在线观看免费视频播放| 777亚洲妇女| 国产a精品视频| 亚洲电影激情视频网站| 久久久九九九九| 欧洲av在线精品| 精品一区二区在线视频| 国产精品国产精品国产专区不蜜 | 久久激情五月婷婷| 亚洲欧洲www| 日韩欧美在线影院| caoporen国产精品视频| 日日骚欧美日韩| 国产精品久久久久影院| 69精品人人人人| www.色精品| 精品在线播放免费| 一区二区不卡在线播放| 久久亚洲精品小早川怜子| 色爱区综合激月婷婷| 国产一区 二区| 亚洲成av人片一区二区梦乃| 中文字幕第一区综合| 7777精品伊人久久久大香线蕉| 99精品欧美一区二区蜜桃免费 | 亚洲免费在线视频| 欧美va亚洲va国产综合| 欧洲一区二区av| 不卡的电影网站|