锘??xml version="1.0" encoding="utf-8" standalone="yes"?>avtt天堂网久久精品,久久精品三级视频,狠狠色婷婷久久一区二区三区http://m.shnenglu.com/tangxinfa/寮鍙戣呬箣鏃?/description>zh-cnTue, 06 May 2025 23:24:57 GMTTue, 06 May 2025 23:24:57 GMT60SSL鍙屾柟緋葷粺鏃墮棿涓嶄竴鑷村鑷寸殑SSL榪炴帴澶辮觸鍙婂叾瑙e喅鏂規http://m.shnenglu.com/tangxinfa/archive/2008/07/25/57164.html鍞愭柊鍙?/dc:creator>鍞愭柊鍙?/author>Fri, 25 Jul 2008 09:45:00 GMThttp://m.shnenglu.com/tangxinfa/archive/2008/07/25/57164.htmlhttp://m.shnenglu.com/tangxinfa/comments/57164.htmlhttp://m.shnenglu.com/tangxinfa/archive/2008/07/25/57164.html#Feedback0http://m.shnenglu.com/tangxinfa/comments/commentRss/57164.htmlhttp://m.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://m.shnenglu.com/tangxinfa/archive/2008/05/21/50705.html鍞愭柊鍙?/dc:creator>鍞愭柊鍙?/author>Wed, 21 May 2008 15:40:00 GMThttp://m.shnenglu.com/tangxinfa/archive/2008/05/21/50705.htmlhttp://m.shnenglu.com/tangxinfa/comments/50705.htmlhttp://m.shnenglu.com/tangxinfa/archive/2008/05/21/50705.html#Feedback4http://m.shnenglu.com/tangxinfa/comments/commentRss/50705.htmlhttp://m.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))))




]]>
国产精品99久久久久久www| 女人高潮久久久叫人喷水| 国内精品久久久久久99| 久久久久久夜精品精品免费啦| 99久久成人国产精品免费| 99久久99久久| 香蕉99久久国产综合精品宅男自 | 久久妇女高潮几次MBA| 久久久久久九九99精品| 久久九色综合九色99伊人| 欧美成人免费观看久久| 91精品免费久久久久久久久| 久久久婷婷五月亚洲97号色 | 久久精品黄AA片一区二区三区| 亚洲成色999久久网站| 久久亚洲日韩看片无码| 精品久久久久一区二区三区| 国产激情久久久久久熟女老人| 国产精品激情综合久久| 久久免费的精品国产V∧| 中文精品久久久久人妻| 久久精品国产亚洲精品| 亚洲国产精品久久| 精品国产一区二区三区久久久狼 | 综合网日日天干夜夜久久| 色综合久久天天综合| 狠狠色婷婷久久一区二区三区| 久久久无码精品亚洲日韩蜜臀浪潮| 精品国产一区二区三区久久蜜臀| 久久精品国产亚洲av日韩| 综合网日日天干夜夜久久| 久久久久久久久66精品片| 香蕉久久夜色精品国产2020| 精品乱码久久久久久夜夜嗨| 伊人色综合久久天天| 国产午夜精品久久久久九九| 亚洲国产精久久久久久久| 国产综合精品久久亚洲| 久久久中文字幕日本| 亚洲午夜久久久| 久久久久久伊人高潮影院|