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

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

?? winhttpdohttp.c

?? IBE是一種非對稱密碼技術
?? C
?? 第 1 頁 / 共 2 頁
字號:
/* Copyright 2003-2005, Voltage Security, all rights reserved.
 */

#include "vibe.h"
#include "environment.h"
#include "base.h"
#include "libctx.h"
#include "vsdistrict.h"
#include "derhelp.h"
#include "oidlist.h"
#include "ibe.h"
#include "vtime.h"
#include "errorctx.h"
#include "volti18n.h"

#if VOLT_OS == VOLT_WINDOWS_32

#include <windows.h>
#include <tchar.h>
#include <winhttp.h>
#include <stdio.h>
#include <process.h>

int winHttpDoHTTP (
   VoltHttpRequestInfo *requestInfo,
   char **response,
   int *responseCode,   
   unsigned char *url,  
   int allowBadCert,
   unsigned char *trustStore,
   unsigned long timeOut,
   void *appData
   )
{
  int status, sysRet;
  BOOL bStatus;
  int actualTimeOut;
  unsigned int headerLen, postDataLen, urlLen, offset;
  unsigned int purpose, usernameLen, passwordLen, releaseFlag;
  DWORD dwSize, bytesRead, totalSize, currentPos, respCode;
  DWORD reqFlag, supportedSchemes, firstScheme, authTarget, logonLevel;
  LPWSTR wideUrl = (LPWSTR)0;
  LPWSTR scheme = (LPWSTR)0;
  URL_COMPONENTS urlComponents;  
  LPWSTR host = (LPWSTR)0;
  LPWSTR path = (LPWSTR)0;   
  HINTERNET  hSession = (HINTERNET)0;
  HINTERNET  hConnect = (HINTERNET)0;
  HINTERNET  hRequest = (HINTERNET)0;
  LPWSTR header = (LPWSTR)0;
  char *buffer = (char *)0;
  char *temp = (char *)0;
  unsigned char *postData = (unsigned char *)0;
  unsigned char *userPass = (unsigned char *)0;
  VoltLibCtx *libCtx = (VoltLibCtx *)0;
  VoltTransportCtx *transCtx = (VoltTransportCtx *)0;
  VoltHttpRequestInfoPost *postInfo = (VoltHttpRequestInfoPost *)0;
  VoltIdentityObject *idObj = (VoltIdentityObject *)0;
  HWND uiOwner = (HWND)0;
  unsigned char *username = (unsigned char *)0;
  unsigned char *password = (unsigned char *)0;
  VOLT_DECLARE_ERROR_TYPE (errorType)
  VOLT_DECLARE_FNCT_LINE (fnctLine)

  *responseCode = 0;
  *response = (char *)0;

  /* First check the type of request and set some variables accordingly
   */
  if (requestInfo->requestType == VOLT_REQUEST_TYPE_GET)
  {
    libCtx = (VoltLibCtx *)requestInfo->requestData;
    scheme = L"GET";
    headerLen = 0;
    postDataLen = 0;
  }
  else
  {
    scheme = L"POST";
    postInfo = (VoltHttpRequestInfoPost *)requestInfo->requestData;
    transCtx = postInfo->transCtx;
    idObj = postInfo->idObj;
    libCtx = (VoltLibCtx *)(transCtx->voltObject.libraryCtx);
    header = L"Content-Type: application/x-www-form-urlencoded";
    headerLen = -1L;
    postData = postInfo->postData;
    postDataLen = Z2Strlen (postData);
  }

  /* Get the user specified values from the app data.
   */
  if (appData != (void *)0)
    uiOwner = (HANDLE)appData;  

  sysRet = 0;
  reqFlag = WINHTTP_FLAG_ESCAPE_PERCENT;
  releaseFlag = 0;
  purpose = VT_USER_PASS_COLLECTOR_PURPOSE_COLLECT;
  logonLevel = WINHTTP_AUTOLOGON_SECURITY_LEVEL_HIGH;

  do
  {
    urlLen = Z2Strlen (url);

    /* Convert the url to unicode.
     */
    VOLT_SET_ERROR_TYPE (errorType, 0)
    VOLT_SET_FNCT_LINE (fnctLine)
    status = VoltConvertMultiByteToWideAlloc (url, CP_UTF8, &wideUrl, libCtx);
    if (status != 0)
      break;

    /* Allocate a buffer to hold the "converted" values. We're going to
     * call CrackURL. It will break the URL into components. We want to
     * get ride of "escape" characters (url encoding, e.g., "#" converted
     * to "%23"). The Crack function will need a buffer into which it
     * will place the converted value. The urlLen is measured in bytes,
     * the lengths the Crack routine wants is in shorts (16-bit
     * characters). For 8 characters, allocate 16 bytes. For the
     * hostName and urlPath, we don't need the full URL length, but
     * to make life simpler, rather than compute the needed length,
     * just use the URL length.
     */
    VOLT_SET_ERROR_TYPE (errorType, VT_ERROR_TYPE_PRIMARY)
    VOLT_SET_FNCT_LINE (fnctLine)
    status = VT_ERROR_MEMORY;
    temp = (char *)Z2Malloc ((urlLen * 4) + 16, 0);
    if (temp == (char *)0)
      break;
    Z2Memset (temp, 0, (urlLen * 4) + 16);

    /* Parse the URL into its components.
     * The Scheme will most likely be 5 characters, set aside 8 so
     * we're nicely aligned. Remember, for this routine we're using
     * "wide chars", so 8 characters is 16 bytes, and urlLen characters
     * is 2 * urlLen bytes.
     */
    Z2Memset (&urlComponents, 0, sizeof (urlComponents));
    urlComponents.dwStructSize = sizeof (urlComponents);
    urlComponents.lpszScheme = (LPWSTR)temp;
    urlComponents.dwSchemeLength = (DWORD)8;
    offset = 16;
    urlComponents.lpszHostName = (LPWSTR)(temp + offset);
    urlComponents.dwHostNameLength = (DWORD)urlLen;
    offset += (2 * urlLen);
    urlComponents.lpszUrlPath = (LPWSTR)(temp + offset);
    urlComponents.dwUrlPathLength = (DWORD)urlLen;

    bStatus = WinHttpCrackUrl (wideUrl, 0, ICU_DECODE, &urlComponents);
    if (bStatus == FALSE)
    {
      VOLT_SET_ERROR_TYPE (
        errorType, VT_ERROR_TYPE_PRIMARY | VT_ERROR_TYPE_SYSTEM)
      VOLT_SET_FNCT_LINE (fnctLine)
      status = VT_ERROR_URL;
      sysRet = GetLastError ();    
      break;
    }  

    /* If the URL is for HTTPS specify that in the reqFlag.
     */
    if (urlComponents.nScheme == INTERNET_SCHEME_HTTPS)
      reqFlag |= WINHTTP_FLAG_SECURE ;

    VOLT_SET_ERROR_TYPE (errorType, VT_ERROR_TYPE_PRIMARY)
    VOLT_SET_FNCT_LINE (fnctLine)
    status = VT_ERROR_MEMORY;
    host = (LPWSTR)Z2Malloc 
      (sizeof (WCHAR) * (urlComponents.dwHostNameLength + 1), 0);
    if (host == (LPWSTR)0)
      break;

    VOLT_SET_FNCT_LINE (fnctLine)
    path = (LPWSTR) Z2Malloc
      (sizeof (WCHAR) * (urlComponents.dwUrlPathLength + 1), 0);
    if (path == (LPWSTR)0)
      break;

    /* Compute the host and the relative path from the URL.
     */
    Z2Memcpy (
      host, urlComponents.lpszHostName,
      urlComponents.dwHostNameLength * sizeof (WCHAR));
    host[urlComponents.dwHostNameLength] = L'\0';
    Z2Memcpy (
      path, urlComponents.lpszUrlPath, 
      urlComponents.dwUrlPathLength * sizeof (WCHAR));
    path[urlComponents.dwUrlPathLength] = L'\0';

    /* Create an HTTP session.
     */
    hSession = WinHttpOpen(
      L"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)",  
      WINHTTP_ACCESS_TYPE_DEFAULT_PROXY, WINHTTP_NO_PROXY_NAME, 
      WINHTTP_NO_PROXY_BYPASS, 0);
    if (hSession == NULL)
    {
      VOLT_SET_ERROR_TYPE (
        errorType, VT_ERROR_TYPE_PRIMARY | VT_ERROR_TYPE_SYSTEM)
      VOLT_SET_FNCT_LINE (fnctLine)
      status = VT_ERROR_NETWORK_CONNECT;
      sysRet = GetLastError ();
      break;     
    }

    /* Set the connection timeout on the session. An input timeout
     * value of 0 means timeout quickly, but when passing timeout to
     * WinHTTP, a value of 0 means infinity, so convert 0 to 1, a small
     * enough value close to zero.
     */
    actualTimeOut = 1;
    if (timeOut != 0)
      actualTimeOut = (int)timeOut;
    bStatus =  WinHttpSetTimeouts (
      hSession, 30000, actualTimeOut, 30000, 30000);
    if (bStatus == FALSE)
    {
      VOLT_SET_ERROR_TYPE (
        errorType, VT_ERROR_TYPE_PRIMARY | VT_ERROR_TYPE_SYSTEM)
      VOLT_SET_FNCT_LINE (fnctLine)
      status = VT_ERROR_NETWORK_CONNECT;
      sysRet = GetLastError ();
      break; 
    }

    /* Connect to the specified server on the given port.
     */
    hConnect = WinHttpConnect (hSession, host, urlComponents.nPort, 0);
    if (hConnect == NULL)
    {
      VOLT_SET_ERROR_TYPE (
        errorType, VT_ERROR_TYPE_PRIMARY | VT_ERROR_TYPE_SYSTEM)
      VOLT_SET_FNCT_LINE (fnctLine)
      status = VT_ERROR_NETWORK_CONNECT;
      sysRet = GetLastError ();
      break;     
    }

    hRequest = WinHttpOpenRequest(
      hConnect, scheme, path, NULL, WINHTTP_NO_REFERER, 
      WINHTTP_DEFAULT_ACCEPT_TYPES, reqFlag);
    if (hRequest == NULL)
    {
      VOLT_SET_ERROR_TYPE (
        errorType, VT_ERROR_TYPE_PRIMARY | VT_ERROR_TYPE_SYSTEM)
      VOLT_SET_FNCT_LINE (fnctLine)
      status = VT_ERROR_NETWORK_CONNECT;
      sysRet = GetLastError ();
      break;      
    }

    status = 0;
    do
    {
      /* Send the request.
       */
      bStatus = WinHttpSendRequest (
        hRequest, header, headerLen, (LPVOID)postData, (DWORD)postDataLen,
        (DWORD)postDataLen, (DWORD_PTR)0);    
      if (bStatus == FALSE)
      {
        VOLT_SET_ERROR_TYPE (
          errorType, VT_ERROR_TYPE_PRIMARY | VT_ERROR_TYPE_SYSTEM)
        VOLT_SET_FNCT_LINE (fnctLine)
        status = VT_ERROR_NETWORK_CONNECT;
        sysRet = GetLastError ();
        break;
      }

     /* Receive the response.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美mv和日韩mv的网站| 中文一区二区在线观看| 欧美精品一区二区不卡| 亚洲天天做日日做天天谢日日欢 | 欧美日韩视频在线一区二区| 日韩久久免费av| 亚洲综合色噜噜狠狠| 国产一区二区影院| 欧美一区2区视频在线观看| 最新久久zyz资源站| 国产露脸91国语对白| 欧美美女一区二区在线观看| 国产精品国产三级国产普通话99| 精一区二区三区| 欧美女孩性生活视频| 亚洲免费在线视频一区 二区| 丁香五精品蜜臀久久久久99网站 | 久久久久亚洲综合| 日韩av一级片| 欧美日韩国产综合视频在线观看| 最新久久zyz资源站| 成人免费观看视频| 国产精品女人毛片| 国产成人精品免费视频网站| 欧美本精品男人aⅴ天堂| 日本视频免费一区| 欧美肥妇bbw| 日本女人一区二区三区| 欧美精品一卡两卡| 午夜伊人狠狠久久| 欧美色区777第一页| 亚洲午夜一区二区三区| 欧美日韩精品电影| 日韩影视精彩在线| 欧美一区二区三区喷汁尤物| 青青青伊人色综合久久| 国产精品1区二区.| 亚洲www啪成人一区二区麻豆| 久久精品日韩一区二区三区| 在线观看亚洲专区| 国产成人aaa| 精品一区精品二区高清| 一区二区欧美在线观看| 久久精品男人的天堂| 欧美四级电影网| 风间由美一区二区av101| 色综合天天综合网国产成人综合天| 亚洲国产日韩在线一区模特| 欧美—级在线免费片| 日韩一二三区不卡| 欧美中文字幕一二三区视频| 粉嫩高潮美女一区二区三区| 热久久免费视频| 亚洲电影在线免费观看| 1区2区3区国产精品| 久久女同互慰一区二区三区| 欧美精选午夜久久久乱码6080| 成人激情免费视频| 国产一区二区中文字幕| 久久99国产精品尤物| 天天做天天摸天天爽国产一区 | 亚洲精选一二三| 欧美国产日本韩| 国产日韩影视精品| 欧美mv日韩mv国产网站app| 9191成人精品久久| 热久久免费视频| 日韩欧美久久一区| 91视频你懂的| 久久精品国产网站| 日韩毛片一二三区| 精品国产免费视频| 欧美影院精品一区| 国产精品2024| 日本不卡视频在线观看| 国产精品福利一区二区| 欧美变态tickling挠脚心| 色综合久久中文综合久久牛| 五月综合激情日本mⅴ| 亚洲国产精品成人综合色在线婷婷| 欧美午夜一区二区| 成人激情小说网站| 久久国产夜色精品鲁鲁99| 亚洲欧美一区二区三区孕妇| 日韩你懂的在线观看| 欧美日韩一级视频| 9久草视频在线视频精品| 老司机午夜精品99久久| 亚洲香肠在线观看| 综合精品久久久| 久久亚区不卡日本| 日韩女优制服丝袜电影| 欧美浪妇xxxx高跟鞋交| 在线免费观看日本欧美| 成人免费毛片嘿嘿连载视频| 久久9热精品视频| 性感美女久久精品| 一区二区成人在线| 亚洲人精品午夜| 国产精品视频在线看| 久久久一区二区| 亚洲精品一区二区精华| 欧美日韩一区二区三区在线看 | 亚洲色图.com| 中文字幕精品一区二区三区精品| 精品少妇一区二区三区| 欧美一区二区久久久| 777奇米成人网| 欧美精品粉嫩高潮一区二区| 在线视频国内一区二区| 色88888久久久久久影院野外| 99久久国产免费看| 91在线免费播放| 色伊人久久综合中文字幕| 91色porny| 色综合天天综合在线视频| 91麻豆免费观看| 在线这里只有精品| 欧美丝袜丝交足nylons| 欧美日韩一本到| 91精品国模一区二区三区| 91精品国产麻豆| 欧美大片国产精品| 久久久国际精品| 国产精品毛片无遮挡高清| 中文字幕五月欧美| 亚洲大片精品永久免费| 日韩一区精品字幕| 韩国女主播成人在线| 国产河南妇女毛片精品久久久| 粉嫩一区二区三区在线看| av资源站一区| 欧美日韩高清一区二区| 日韩视频中午一区| 国产日本一区二区| 亚洲另类在线一区| 日韩成人一区二区| 国产乱码字幕精品高清av| 成人av电影免费在线播放| 91久久国产综合久久| 欧美男人的天堂一二区| 精品国一区二区三区| 国产精品九色蝌蚪自拍| 亚洲成人一区二区在线观看| 六月丁香婷婷色狠狠久久| 成人国产亚洲欧美成人综合网| 色乱码一区二区三区88| 日韩亚洲欧美在线观看| 欧美激情一区不卡| 肉色丝袜一区二区| 成人免费高清在线观看| 在线成人免费视频| 国产精品妹子av| 奇米影视在线99精品| 99久久综合国产精品| 91精品免费在线| 亚洲日本乱码在线观看| 免费欧美高清视频| 色综合久久久久| 欧美岛国在线观看| 一区二区三区在线免费| 国产一区亚洲一区| 欧美日韩在线综合| 国产精品蜜臀在线观看| 免费观看一级特黄欧美大片| 色欧美片视频在线观看在线视频| 欧美一区二区久久| 亚洲国产一区二区视频| 国产iv一区二区三区| 欧美成人官网二区| 午夜精品在线看| 一本大道久久a久久精二百 | 一区二区欧美国产| 粉嫩在线一区二区三区视频| 日韩欧美国产1| 香蕉成人啪国产精品视频综合网| 国产成人鲁色资源国产91色综| 欧美日韩久久一区| 亚洲免费大片在线观看| 国产激情视频一区二区在线观看| 欧美一区2区视频在线观看| 亚洲午夜视频在线| 99久久精品免费观看| 国产日韩精品一区二区浪潮av| 视频一区视频二区中文字幕| 色素色在线综合| 亚洲美女一区二区三区| av欧美精品.com| 亚洲国产精品v| 国产不卡视频在线观看| 精品国产网站在线观看| 麻豆91免费看| 日韩欧美一二区| 极品美女销魂一区二区三区| 欧美一区二区三区在| 日韩va亚洲va欧美va久久| 3d动漫精品啪啪一区二区竹菊 | 亚洲色图丝袜美腿| 91视频在线观看免费| 亚洲激情综合网|