锘??xml version="1.0" encoding="utf-8" standalone="yes"?>avtt天堂网久久精品,久久精品三级视频,狠狠色婷婷久久一区二区三区http://www.shnenglu.com/tangxinfa/寮鍙戣呬箣鏃?/description>zh-cnTue, 06 May 2025 23:24:57 GMTTue, 06 May 2025 23:24:57 GMT60SSL鍙屾柟緋葷粺鏃墮棿涓嶄竴鑷村鑷寸殑SSL榪炴帴澶辮觸鍙婂叾瑙e喅鏂規http://www.shnenglu.com/tangxinfa/archive/2008/07/25/57164.html鍞愭柊鍙?/dc:creator>鍞愭柊鍙?/author>Fri, 25 Jul 2008 09:45:00 GMThttp://www.shnenglu.com/tangxinfa/archive/2008/07/25/57164.htmlhttp://www.shnenglu.com/tangxinfa/comments/57164.htmlhttp://www.shnenglu.com/tangxinfa/archive/2008/07/25/57164.html#Feedback0http://www.shnenglu.com/tangxinfa/comments/commentRss/57164.htmlhttp://www.shnenglu.com/tangxinfa/services/trackbacks/57164.html銆銆涓錛屽皢璇佷功鐨勬湁鏁堟湡璁懼緱澶熷ぇ錛氬錛?970-2099
銆銆銆榪欐牱浼拌鍙互鍦ㄤ竴瀹氱▼搴︿笂瑙e喅榪欎釜闂錛屼笉榪囪繖涔熸槸涓涓繪剰錛?br>銆銆浜岋紝媯嫻嬪強蹇呰鏃惰嚜鍔ㄥ悓姝ュ鎴風涓庢湇鍔″櫒鐨勬椂闂?br>銆銆閫氳繃鐢╳ireshake鎶撳寘鍒嗘瀽SSL寤虹珛榪炴帴鐨勮繃紼嬶紝鍙戠幇鍦⊿SL鎻℃墜榪囩▼涓紝浼氬悜瀵規柟浼犻佹湰鏈虹殑緋葷粺鏃墮棿錛庡洜姝や竴涓樉鑰屾槗瑙佺殑鍔炴硶灝辨槸鑾峰彇瀵規柟鐨勬椂闂達紝鐒跺悗鍦ㄥ繀瑕佹椂灝嗘湰鏈虹殑緋葷粺鏃墮棿鏀逛負瀵規柟鐨勭郴緇熸椂闂達紝澶辮觸鍚庡啀榪炰竴嬈★紟涓嬮潰鏄叿浣撶殑紺轟緥浠g爜錛?br>
#include <openssl/ssl.h>
#include 
<openssl/bio.h>
#include 
<openssl/err.h>
#include 
<winsock2.h>
#include 
<stdio.h>
#include 
<string.h>
#include 
<time.h>

typedef 
struct _TimeInfo
{
    time_t client;  
/*瀹㈡埛绔殑鏃墮棿*/
    time_t server;  
/*鏈嶅姟鍣ㄧ殑鏃墮棿*/
} TimeInfo;

/**
* 鍚屾緋葷粺鏃墮棿.
*/
BOOL syncSystemTime(time_t t)
{
    SYSTEMTIME st;
    FILETIME   ft;  
    LONGLONG   ll;  
    
    ll 
= Int32x32To64(t, 10000000+ 116444736000000000//1970.01.01  
    
    ft.dwLowDateTime  
= (DWORD)ll;  
    ft.dwHighDateTime 
= (DWORD)(ll >> 32);  
    
    
return FileTimeToSystemTime(&ft, &st) && SetSystemTime(&st);
}

/**
* 鑾峰彇SSL鎻℃墜榪囩▼涓湇鍔″櫒涓庡鎴風鍙屾柟鐨勭郴緇熸椂闂?
*/
void getSSLHandleShakeTimeInfo(int write_p,
                               
int version,
                               
int content_type,
                               
const unsigned char* buf,
                               size_t len,
                               SSL 
*ssl,
                               TimeInfo 
*ti)
{
    
if(content_type != 22)   //require handshake message
        return;
    
if(len < 42)
        
return;
    
if(buf[0== 1)          //ClientHello Message send from client to server
        ti->client = htonl(*((u_long*)(buf + 6)));
    
else if(buf[0== 2)     //ServerHello Message send from server to client
        ti->server = htonl(*((u_long*)(buf + 6)));
    
else
        
return;
}

int main()
{
    BIO 
* bio;
    SSL 
* ssl;
    SSL_CTX 
* ctx;
    TimeInfo timeInfo 
= {-1-1};
    BOOL timeSynced 
= FALSE;
    
long result;

    
/* Set up the library */
    SSL_library_init();
    ERR_load_BIO_strings();
    SSL_load_error_strings();

    
/* Set up the SSL context */
    ctx 
= SSL_CTX_new(SSLv3_client_method());
    
if(ctx == NULL)
    {
        fprintf(stderr, 
"Error new SSL_CTX\n");
        ERR_print_errors_fp(stderr);
        SSL_CTX_free(ctx);
        
return 0;
    }

    
/* Get Server and Client system time via SSL Handshake */
    SSL_CTX_set_msg_callback(ctx, getSSLHandleShakeTimeInfo);
    SSL_CTX_set_msg_callback_arg(ctx, 
&timeInfo);
    
    
/* Load the trust store */
    
if(! SSL_CTX_load_verify_locations(ctx, ".\\certs\\cacert.pem", NULL))
    {
        fprintf(stderr, 
"Error loading trust store\n");
        ERR_print_errors_fp(stderr);
        SSL_CTX_free(ctx);
        
return 0;
    }

    
/* Setup the connection */
    bio 
= BIO_new_ssl_connect(ctx);

    
/* Set the SSL_MODE_AUTO_RETRY flag */
    BIO_get_ssl(bio, 
& ssl);
    SSL_set_mode(ssl, SSL_MODE_AUTO_RETRY);

    
/* Create and setup the connection */
    BIO_set_conn_hostname(bio, 
"192.168.1.5:5555");
    
if(BIO_do_connect(bio) <= 0)
    {
        fprintf(stderr, 
"Error attempting to connect\n");
        ERR_print_errors_fp(stderr);
        BIO_free_all(bio);
        SSL_CTX_free(ctx);
        
return 0;
    }
    
    
/* Check the certificate */
    
switch(SSL_get_verify_result(ssl))
    {
    
case X509_V_OK:
        
break;
    
case X509_V_ERR_CERT_NOT_YET_VALID:
    
case X509_V_ERR_CERT_HAS_EXPIRED:
        
if(timeInfo.server != -1 && timeInfo.client != -1)
        {
            printf(
"褰撳墠瀹㈡埛绔椂闂? %s", ctime(&timeInfo.client));
            printf(
"褰撳墠鏈嶅姟鍣ㄦ椂闂? %s", ctime(&timeInfo.server));
            printf(
"灝濊瘯涓庢湇鍔″櫒鏃墮棿鍚屾");
            
            
if(syncSystemTime(timeInfo.server))
                printf(
"鎴愬姛\n");
            
else
                printf(
"澶辮觸\n");
            printf(
"璇烽噸璇曡繛鎺ユ湇鍔″櫒錛乗n");
        }
    
default:
        fprintf(stderr, 
"Certificate verification error: %i\n", SSL_get_verify_result(ssl));
        BIO_free_all(bio);
        SSL_CTX_free(ctx);
        
return 0;
    }

    
/* Close the connection and free the context */
    BIO_free_all(bio);
    SSL_CTX_free(ctx);
    
return 0;
}



]]>
emacs鐢ㄤ簬鍦╟/c++澶存枃浠朵腑鐢熸垚鍖呭惈淇濇姢澶達紙include guard錛夌殑lisp鍑芥暟http://www.shnenglu.com/tangxinfa/archive/2008/05/21/50705.html鍞愭柊鍙?/dc:creator>鍞愭柊鍙?/author>Wed, 21 May 2008 15:40:00 GMThttp://www.shnenglu.com/tangxinfa/archive/2008/05/21/50705.htmlhttp://www.shnenglu.com/tangxinfa/comments/50705.htmlhttp://www.shnenglu.com/tangxinfa/archive/2008/05/21/50705.html#Feedback4http://www.shnenglu.com/tangxinfa/comments/commentRss/50705.htmlhttp://www.shnenglu.com/tangxinfa/services/trackbacks/50705.html;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; c/c++ header include guard
(defun insert-include-guard ()
  "insert include guard for c and c++ header file.
for file filename.ext will generate:
#ifndef FILENAME_EXT_
#define FILENAME_EXT_

original buffer content

#endif//FILENAME_EXT_
"
  (interactive)
  (setq file-macro
    (concat (replace-regexp-in-string "\\." "_" (upcase (file-name-nondirectory buffer-file-name))) "_"))
  (setq guard-begin (concat "#ifndef " file-macro "\n"
                "#define " file-macro "\n\n"))
  (setq guard-end
    (concat "\n\n#endif//" file-macro "\n"))
  (setq position (point))
  (goto-char (point-min))
  (insert guard-begin)
  (goto-char (point-max))
  (insert guard-end)
  (goto-char (+ position (length guard-begin))))




]]>
奇米综合四色77777久久| 亚洲国产成人久久综合区| av无码久久久久不卡免费网站| 色8久久人人97超碰香蕉987| 久久99国产精品尤物| 久久这里只有精品视频99| 午夜天堂av天堂久久久| 久久青草国产精品一区| 一本久久免费视频| 色综合久久天天综合| 天天躁日日躁狠狠久久| 无码精品久久一区二区三区| 久久精品国产亚洲网站| 国产成年无码久久久免费| 久久精品国产99久久香蕉| 国产精品一区二区久久国产| 久久久久精品国产亚洲AV无码| 久久e热在这里只有国产中文精品99 | 欧美久久精品一级c片片| 久久精品国产免费观看三人同眠| 国内精品久久久久影院网站| 嫩草伊人久久精品少妇AV| 一本大道久久东京热无码AV | 亚洲中文字幕伊人久久无码| 久久久亚洲精品蜜桃臀| 久久久久99精品成人片| 麻豆精品久久久一区二区| www.久久热| 国产精品99久久免费观看| 久久精品水蜜桃av综合天堂| 久久妇女高潮几次MBA| 久久久精品人妻一区二区三区蜜桃| 四虎影视久久久免费| 久久久精品久久久久影院| 亚洲精品午夜国产va久久| 久久久精品久久久久影院| 色综合久久久久无码专区| 久久66热人妻偷产精品9| 久久国产精品久久久| 国产精品成人99久久久久 | 深夜久久AAAAA级毛片免费看|