锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲人AV永久一区二区三区久久,久久久噜噜噜久久,欧美牲交A欧牲交aⅴ久久http://m.shnenglu.com/tangxinfa/寮鍙戣呬箣鏃?/description>zh-cnSat, 28 Jun 2025 12:44:23 GMTSat, 28 Jun 2025 12:44:23 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))))




]]>
漂亮人妻被黑人久久精品| 久久免费大片| 久久精品国产只有精品2020| 久久精品一区二区国产| 狠狠色丁香婷婷综合久久来来去 | 丁香五月网久久综合| 伊人色综合久久天天人手人婷 | 久久精品国产久精国产思思| 国产精品一久久香蕉国产线看观看| 国产2021久久精品| 精品国产乱码久久久久久人妻 | 精品久久久久香蕉网| 久久久免费观成人影院 | 久久精品国产精品国产精品污| 久久免费99精品国产自在现线| 亚洲AV无码1区2区久久| 合区精品久久久中文字幕一区| 国内精品伊人久久久久AV影院| 日韩欧美亚洲国产精品字幕久久久| 久久精品国产亚洲av麻豆小说| 亚洲伊人久久综合影院| 久久香蕉综合色一综合色88| 亚洲精品无码久久久久去q| 久久夜色撩人精品国产| 久久香蕉国产线看观看99| 看久久久久久a级毛片| 午夜精品久久久久成人| 久久成人18免费网站| 91久久九九无码成人网站| 亚洲精品乱码久久久久66| 久久午夜免费视频| 免费一级做a爰片久久毛片潮| 久久亚洲高清观看| 久久青草国产精品一区| 国产精品久久国产精品99盘| 99久久99久久| 久久综合欧美成人| 国产亚洲成人久久| 国产亚洲美女精品久久久久狼| 97久久香蕉国产线看观看| 国产精品国色综合久久|