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

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

?? encrypt.c

?? 一個windows上的加解密程式 提供方便的介面讓使用者操作
?? C
?? 第 1 頁 / 共 4 頁
字號:
         GE_send_msg_cb(node->gc->account, (char*)who, &tmp_msg, 0);         GE_clear_string(node->msg);         if (tmp_msg != 0) {            g_free(tmp_msg);         }         if (node == last_out_msg) {            last_out_msg = prev;         }         if (prev != 0) { /* a random one matched */            prev->next = node->next;            g_free(node);            node = prev->next;         } else {  /* the first one matched */            first_out_msg = node->next;            g_free(node);            node = first_out_msg;         }      } else { /* didn't match */         prev = node;         node = node->next;      }   }}void GE_delete_stored_msgs(GaimAccount* acct, const char* who) {   msg_node* node = first_out_msg;   msg_node* prev = 0;   gaim_debug(GAIM_DEBUG_INFO, "gaim-encryption", "delete_stored_msgs\n");   while (node != 0) {      gaim_debug(GAIM_DEBUG_INFO, "gaim-encryption",                 "Looking for stored msg:%s:%s\n",node->who, who);      if ((strcmp(node->who, who) == 0) && (node->gc->account == acct)) {         GE_clear_string(node->msg);         if (node == last_out_msg) {            last_out_msg = prev;         }         if (prev != 0) { /* a random one matched */            prev->next = node->next;            g_free(node);            node = prev->next;         } else {  /* the first one matched */            first_out_msg = node->next;            g_free(node);            node = first_out_msg;         }      } else { /* didn't match */         prev = node;         node = node->next;      }   }}void GE_show_stored_msgs(GaimAccount*acct, const char* who, char** return_msg) {   msg_node* node = first_inc_msg;   msg_node* prev = 0;   char *tmp_msg;   GaimConversation *conv = gaim_find_conversation_with_account(who, acct);   while (node != 0) {      gaim_debug(GAIM_DEBUG_INFO, "gaim-encryption", "show_stored_msgs:%p:%s:%s:\n", node, node->who, who);		if (strcmp(node->who, who) == 0) {         tmp_msg = g_strdup(node->msg);         got_encrypted_msg(node->gc, who, &tmp_msg);         if (tmp_msg != 0) {            gaim_debug(GAIM_DEBUG_INFO, "gaim-encryption", "showing msg:%s\n", tmp_msg);				if (return_msg) {               /* We should return the last received message in *return_msg */               if (*return_msg) {                  /* We've already got a queued message to show, so swap, and force display of                     the first one */                  if (!conv) {                     conv = gaim_conversation_new(GAIM_CONV_IM, node->gc->account, who);                  }                  gaim_conv_im_write(GAIM_CONV_IM(conv), who, *return_msg,                                     GAIM_MESSAGE_RECV, time((time_t)NULL));                  gaim_conv_window_flash(gaim_conversation_get_window(conv));                  g_free(*return_msg);                  *return_msg = 0;               } else {                  *return_msg = tmp_msg;               }            } else {               /* Just display it */               if (!conv) {                  conv = gaim_conversation_new(GAIM_CONV_IM, node->gc->account, who);               }               gaim_conv_im_write(GAIM_CONV_IM(conv), who, tmp_msg,                                  GAIM_MESSAGE_RECV, time((time_t)NULL));               gaim_conv_window_flash(gaim_conversation_get_window(conv));               g_free(tmp_msg);            }         }         if (node == last_inc_msg) {            last_inc_msg = prev;         }         if (prev != 0) { /* a random one matched */            prev->next = node->next;            g_free(node);            node = prev->next;         } else {  /* the first one matched */            first_inc_msg = node->next;            g_free(node);            node = first_inc_msg;         }      } else { /* didn't match */         prev = node;         node = node->next;      }   }}static void reap_all_sent_messages(GaimConversation* conv){   GQueue *sent_msg_queue = g_hash_table_lookup(conv->data, "sent messages");   GE_SentMessage *sent_msg_item;   /* gaim_debug(GAIM_DEBUG_MISC, "gaim-encryption", "ZZZ Reaping all messages: %p\n", conv); */      while (!g_queue_is_empty(sent_msg_queue)) {      sent_msg_item = g_queue_pop_tail(sent_msg_queue);      /* gaim_debug(GAIM_DEBUG_INFO, "gaim-encryption", "ZZZ Message: %s\n", sent_msg_item->id); */      g_free(sent_msg_item->id);      g_free(sent_msg_item->msg);      g_free(sent_msg_item);   }}static void reap_old_sent_messages(GaimConversation* conv){   GQueue *sent_msg_queue = g_hash_table_lookup(conv->data, "sent messages");      GE_SentMessage *sent_msg_item;   time_t curtime = time(0);      /* gaim_debug(GAIM_DEBUG_MISC, "gaim-encryption", "ZZZ Reaping old messages: %p\n", conv); */   while (!g_queue_is_empty(sent_msg_queue)) {      sent_msg_item = g_queue_peek_tail(sent_msg_queue);      /* gaim_debug(GAIM_DEBUG_INFO, "gaim-encryption", "ZZZ Message: %s\n", sent_msg_item->id); */      if (curtime - sent_msg_item->time > 60) { /* message is over 1 minute old */         sent_msg_item = g_queue_pop_tail(sent_msg_queue);         /* gaim_debug(GAIM_DEBUG_INFO, "gaim-encryption", "ZZZ  Deleted\n"); */         g_free(sent_msg_item->id);         g_free(sent_msg_item->msg);         g_free(sent_msg_item);      } else {         /* These were pushed on in order, so if this one is not old, we're done */         break;      }   }}static gboolean GE_got_msg_cb(GaimAccount *acct, char **who, char **message, GaimConvImFlags flags, void *m) {   char *name;   GaimConversation *conv;   gchar *headerpos;    /* Header is allowed to be anywhere in message now */   gchar *notifypos;   gchar *caps_header, *caps_message,    /* temps for ascii_strup() versions of each */         *caps_notify;                   /* since Jabber mucks with case             */   gchar *unescaped_message;             /* temps for html_unescaped       */                                         /* since ICQ will now escape HTML */   int header_size, footer_size;   const gchar* header = g_hash_table_lookup(header_table, gaim_account_get_protocol_id(acct));   const gchar* footer = g_hash_table_lookup(footer_table, gaim_account_get_protocol_id(acct));   const gchar* notify = g_hash_table_lookup(notify_table, gaim_account_get_protocol_id(acct));   if (!header) header = header_default;   if (!footer) footer = "";   header_size = strlen(header);   footer_size = strlen(footer);   /* Since we don't have a periodic callback, we do some housekeeping here */   gaim_conversation_foreach(reap_old_sent_messages);   conv = gaim_find_conversation_with_account(*who, acct);   gaim_debug(GAIM_DEBUG_MISC, "gaim-encryption", "Finding conversation: %s, %p\n", *who, conv);      name = g_strdup(gaim_normalize(acct, *who));      if (*message != NULL) {      caps_message = g_ascii_strup(*message, -1);      caps_header = g_ascii_strup(header, -1);      unescaped_message = gaim_unescape_html(*message);      headerpos = strstr(caps_message, caps_header);      g_free(caps_header);      if (notify) {         caps_notify = g_ascii_strup(notify, -1);         notifypos = strstr(caps_message, caps_notify);         g_free(caps_notify);      } else {         notifypos = 0;      }      if (headerpos != 0) {         /* adjust to where the header is in the _real_ message, if */         /* we found it in the caps_message                         */         headerpos += (*message) - caps_message;      }      g_free(caps_message);      if (headerpos == 0 && notifypos == 0) {         /* Check for ICQ-escaped header*/         headerpos = strstr(unescaped_message, header);         if (notify) {            notifypos = strstr(unescaped_message, notify);         }         if (headerpos != 0 || notifypos != 0) {            /* ICQ PRPL escaped our HTML header, but we outsmarted it     */            /* replace message with unescaped message.                    */            gaim_debug(GAIM_DEBUG_MISC, "gaim-encryption", "Escaped header: replacing %s with %s\n",                       *message, unescaped_message);            g_free(*message);            *message = unescaped_message;         } else {            g_free(unescaped_message);         }      }      /* Whew.  Enough of this header-finding.  */            if (headerpos != 0) {         GE_set_capable(acct, name, TRUE);         if (gaim_prefs_get_bool("/plugins/gtk/encrypt/encrypt_response")) {            GE_set_tx_encryption(acct, name, TRUE);         }         if (strncmp(headerpos + header_size, ": Send Key",                     sizeof(": Send Key")-1) == 0) {            GE_send_key(acct, name, 0, 0);            (*message)[0] = 0;            g_free(*message);            *message = NULL;            gaim_debug(GAIM_DEBUG_MISC, "gaim-encryption", "Sent key per request\n");         } else if (strncmp(headerpos + header_size, ": Key",                            sizeof(": Key") - 1) == 0) {            gaim_debug(GAIM_DEBUG_MISC, "gaim-encryption", "Got key\n");            GE_received_key(headerpos + header_size + sizeof(": Key") - 1, name, acct,                            conv, message);         } else if (strncmp(headerpos + header_size, ": ErrKey",                            sizeof(": ErrKey") - 1) == 0) {            gaim_debug(GAIM_DEBUG_MISC, "gaim-encryption", "Got key in response to error\n");            gaim_conversation_write(conv, 0,                                    _("Last outgoing message not received properly- resetting"),                                    GAIM_MESSAGE_SYSTEM, time((time_t)NULL));            gaim_conv_window_flash(gaim_conversation_get_window(conv));            GE_received_key(headerpos + header_size + sizeof(": ErrKey") - 1, name, acct,                            conv, message);         } else if (strncmp(headerpos + header_size, ": Msg",                            sizeof(": Msg") - 1) == 0){            gaim_debug(GAIM_DEBUG_MISC, "gaim-encryption",                       "Got encrypted message: %d\n", strlen(*message));             gaim_debug(GAIM_DEBUG_INFO, "gaim-encryption",                       "Message is:%s:\n", *message);            memmove(*message, headerpos + header_size + sizeof(": Msg") - 1,                    strlen(headerpos + header_size + sizeof(": Msg") -1)+1);            got_encrypted_msg(acct->gc, name, message);            GE_set_rx_encryption(acct, name, TRUE);         } else {            gaim_debug(GAIM_DEBUG_ERROR, "gaim-encryption",                       "Invalid Gaim-Encryption packet type\n");          }                  } else if (notifypos != 0) {         GE_set_rx_encryption(acct, name, FALSE);         GE_set_capable(acct, name, TRUE);         if (gaim_prefs_get_bool("/plugins/gtk/encrypt/encrypt_if_notified")) {            GE_set_tx_encryption(acct, name, TRUE);         }      } else {  /* No encrypt-o-header */         GE_set_rx_encryption(acct, name, FALSE);         gaim_debug(GAIM_DEBUG_MISC, "gaim-encryption", "No header: %s\n", *message);      }   }   	if (*message) {		return FALSE;	}	else {		return TRUE;	}   g_free(name);}static void got_encrypted_msg(GaimConnection *gc, const char* name, char **message){   unsigned char send_key_sum[KEY_DIGEST_LENGTH], recv_key_sum[KEY_DIGEST_LENGTH];   unsigned char *tmp_msg;   crypt_key *priv_key, *pub_key;   int msg_pos = 0;   GaimConversation* conv;   gaim_debug(GAIM_DEBUG_MISC, "gaim-encryption", "got_encrypted_msg\n");   if ( (sscanf(*message, ": S%10c: R%10c%n", send_key_sum, recv_key_sum, &msg_pos) < 2) ||        (msg_pos == 0) ) {      gaim_debug(GAIM_DEBUG_WARNING, "gaim-encryption", "Garbled msg header\n");      return;   }   priv_key = GE_find_key_by_name(GE_my_priv_ring, gc->account->username, gc->account);   pub_key = GE_get_key(gc, name);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日日摸夜夜添夜夜添精品视频| av一区二区三区在线| www久久久久| 国产成人精品免费视频网站| 亚洲图片你懂的| 欧美性色黄大片手机版| 日本vs亚洲vs韩国一区三区二区| 精品日韩在线观看| 国产·精品毛片| 亚洲永久免费av| 日韩欧美国产成人一区二区| 国产成人精品免费| 亚洲黄色免费网站| 日韩午夜在线影院| 粉嫩av亚洲一区二区图片| 亚洲精品视频一区二区| 欧美一区二区三区公司| 粉嫩av一区二区三区| 亚洲午夜久久久久久久久电影院| 日韩亚洲欧美一区二区三区| 成人晚上爱看视频| 亚洲一区在线播放| 精品免费国产一区二区三区四区| 成人精品免费网站| 香蕉av福利精品导航| 国产无人区一区二区三区| 在线观看日韩国产| 精品一区二区免费| 亚洲色大成网站www久久九九| 91精品国产欧美日韩| 成人av综合在线| 日韩福利视频导航| 亚洲欧美中日韩| 91精品国产综合久久久久久漫画 | 一区二区三区中文在线| 欧美一区午夜精品| 成人的网站免费观看| 水野朝阳av一区二区三区| 国产片一区二区三区| 欧美色老头old∨ideo| 国产精品1区2区3区| 亚洲午夜精品在线| 国产欧美精品一区二区色综合 | 亚洲精品国产高清久久伦理二区| 91精品国产综合久久精品图片| 国产一区二区三区黄视频| 亚洲综合一区在线| 欧美精品一区二区精品网| 在线观看网站黄不卡| 国产精品 欧美精品| 日韩国产欧美在线播放| 亚洲欧美电影一区二区| 精品福利一二区| 欧美色网一区二区| av在线一区二区| 精品亚洲porn| 亚洲成av人片| 亚洲欧美日韩一区二区三区在线观看| 日韩女优毛片在线| 欧美日韩二区三区| 色综合久久中文综合久久牛| 国产一区二区三区日韩| 日韩电影一二三区| 亚洲一线二线三线久久久| 中文字幕不卡的av| 精品国产伦一区二区三区观看体验| 在线一区二区观看| 成人精品小蝌蚪| 国产一区二区三区蝌蚪| 奇米四色…亚洲| 亚洲va欧美va人人爽午夜 | 一区二区三区波多野结衣在线观看| 亚洲精品一区在线观看| 欧美情侣在线播放| 在线观看成人免费视频| 91在线看国产| 高清不卡一区二区| 国产一区二区三区四区在线观看| 天堂精品中文字幕在线| 亚洲国产成人高清精品| 亚洲美女免费视频| 国产精品福利影院| 中文字幕av免费专区久久| 久久影音资源网| 精品久久久久久亚洲综合网| 91精品国产一区二区三区| 欧美区一区二区三区| 欧美日韩久久一区| 欧美亚洲高清一区| 91在线观看一区二区| 国产+成+人+亚洲欧洲自线| 国产一区91精品张津瑜| 国内国产精品久久| 韩国av一区二区| 国内久久婷婷综合| 紧缚奴在线一区二区三区| 麻豆精品国产91久久久久久 | 丝袜美腿亚洲一区| 天天色综合天天| 日韩国产精品久久| 日韩av高清在线观看| 日本欧美韩国一区三区| 美女视频黄频大全不卡视频在线播放 | 婷婷丁香激情综合| 午夜精彩视频在线观看不卡| 欧美日韩国产a| 7777精品伊人久久久大香线蕉经典版下载 | 91精品中文字幕一区二区三区| 欧美视频三区在线播放| 欧美欧美欧美欧美首页| 欧美一区二区三区视频在线观看| 91精品蜜臀在线一区尤物| 日韩精品中文字幕一区二区三区 | 26uuu精品一区二区三区四区在线| 欧美大片在线观看| 精品久久久久久久人人人人传媒| 精品国产一区二区在线观看| 久久久无码精品亚洲日韩按摩| 欧美激情综合在线| 成人免费视频在线观看| 亚洲综合成人在线视频| 午夜影视日本亚洲欧洲精品| 青青青爽久久午夜综合久久午夜| 久久国产生活片100| 国产成人夜色高潮福利影视| av动漫一区二区| 欧美少妇性性性| 日韩一区二区三区视频在线观看| 久久天天做天天爱综合色| 国产精品私房写真福利视频| 亚洲人成伊人成综合网小说| 亚洲成a人片在线不卡一二三区| 奇米影视一区二区三区| 国产精品一区二区久久精品爱涩| 成人免费视频一区| 欧美吞精做爰啪啪高潮| 日韩精品专区在线影院观看| 国产精品理伦片| 亚洲成人免费av| 国产一区二区三区在线看麻豆| 91在线观看成人| 欧美年轻男男videosbes| 久久综合视频网| 亚洲欧美日韩一区二区三区在线观看| 五月婷婷久久综合| 国产高清不卡一区| 欧美在线一区二区三区| 日韩精品在线一区二区| 国产精品嫩草99a| 午夜精品久久久| 国产精品系列在线观看| 欧美性猛交xxxx黑人交| 欧美精品一区二区三区久久久 | 91香蕉视频污| 4438x亚洲最大成人网| 国产亚洲污的网站| 亚洲综合在线第一页| 国产一区二区三区四区五区入口 | 欧美精品第一页| 国产清纯美女被跳蛋高潮一区二区久久w | 欧美日韩国产乱码电影| 国产在线视视频有精品| 色8久久人人97超碰香蕉987| 日韩一区二区三区av| 国产精品久久久久久一区二区三区 | 久久久天堂av| 亚洲国产综合色| 粉嫩一区二区三区在线看| 欧美日韩国产大片| 中文字幕 久热精品 视频在线| 午夜视频久久久久久| 成人国产精品视频| 91 com成人网| 亚洲日本va午夜在线影院| 经典三级视频一区| 欧美视频你懂的| 中文乱码免费一区二区| 免播放器亚洲一区| 色噜噜偷拍精品综合在线| 久久毛片高清国产| 天天爽夜夜爽夜夜爽精品视频| 白白色 亚洲乱淫| 亚洲精品一区二区三区影院| 亚洲一卡二卡三卡四卡五卡| 国产99精品视频| 欧美哺乳videos| 亚洲一区二区美女| 成人动漫一区二区三区| 精品国产免费一区二区三区香蕉| 亚洲午夜视频在线观看| 9久草视频在线视频精品| 久久亚区不卡日本| 日韩成人一级片| 色婷婷综合久久久久中文一区二区| 国产亚洲美州欧州综合国| 蜜臀a∨国产成人精品| 欧美在线观看18| 一区二区中文视频| 国产iv一区二区三区| 精品盗摄一区二区三区|