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

? 歡迎來(lái)到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? desencoder.cpp

?? funambol windows mobile plugin source code, the source code is taken from the funambol site
?? CPP
字號(hào):
/*
 * Copyright (C) 2003-2007 Funambol, Inc.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 as
 * published by the Free Software Foundation.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY, TITLE, NONINFRINGEMENT or FITNESS FOR A PARTICULAR
 * PURPOSE.  See the GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
 * 02111-1307  USA
 */

#if defined(WIN32) && !defined(_WIN32_WCE)
#define _WIN32_WINNT 0x0600
#endif

#include <windows.h>
#include <wincrypt.h>


#include "base/util/utils.h"
#include "spds/DESEncoder.h"


DESEncoder::DESEncoder() : DataTransformer(DT_DES) {
}

DESEncoder::~DESEncoder() {
}

char* DESEncoder::transform(char* data, TransformationInfo& info) {
    BOOL res = FALSE;

    HCRYPTPROV prov = 0;
    HCRYPTKEY key = 0;

    HCRYPTHASH hash=0;

    char* ret = NULL;

    DWORD sizeIn = info.size; // I reassign it to a DWORD
                              // just in case a long is not
                              // of the same size of a DWORD
    DWORD sizeOut = 0;

    DWORD dwParam = 0;

    char* password = stringdup(info.password);

    // -----------------------------------------------------

    res = CryptAcquireContext(
        &prov,
        NULL,
        MS_ENHANCED_PROV,
        PROV_RSA_FULL,
        CRYPT_VERIFYCONTEXT
    );

    if (res == FALSE) {
        lastErrorCode = ERR_DT_FAILURE;
        sprintf(lastErrorMsg, ERRMSG_DT_FAILURE, GetLastError());
        goto exit;
    }

    // Create hash object
    res = CryptCreateHash(
        prov,       // CSP handle
        CALG_MD5,   // hash algorith ID
        0,          // Key not used
        0,          // flags not used
        &hash       // handle to the hash object
    );

    if (res == FALSE) {
        lastErrorCode = ERR_DT_FAILURE;
        sprintf(lastErrorMsg, ERRMSG_DT_FAILURE, GetLastError());
        goto exit;
    }

    // hash password
    res = CryptHashData(
        hash,                     // hash handle
        (unsigned char*) password,// pointer to the data buffer
        strlen(password),         // data length
        0                         // flags not used
    );

    if (res == FALSE) {
        lastErrorCode = ERR_DT_FAILURE;
        sprintf(lastErrorMsg, ERRMSG_DT_FAILURE, GetLastError());
        goto exit;
    }

    // Create key from hash
    res = CryptDeriveKey(
        prov,       // CSP handle
        CALG_DES,   // algorithm id
        hash,       // hash object
        0,          // flags are not used
        &key        // key handle
    );

    if (res == FALSE) {
        lastErrorCode = ERR_DT_FAILURE;
        sprintf(lastErrorMsg, ERRMSG_DT_FAILURE, GetLastError());
        goto exit;
    }

    // set encryption mode to ECB
    dwParam=CRYPT_MODE_ECB;
    res = CryptSetKeyParam(
        key,                      // key handle
        KP_MODE,                   // set key mode flag
        (unsigned char*) &dwParam, // new mode value
        0                          // flags not used
    );

    if (res == FALSE) {
        lastErrorCode = ERR_DT_FAILURE;
        sprintf(lastErrorMsg, ERRMSG_DT_FAILURE, GetLastError());
        goto exit;
    }

    // set padding mode to PKCS5
    dwParam=PKCS5_PADDING;
    res = CryptSetKeyParam(
        key,                      // key handle
        KP_PADDING,                   // set key mode flag
        (unsigned char*) &dwParam, // new mode value
        0                          // flags not used
    );

    if (res == FALSE) {
        lastErrorCode = ERR_DT_FAILURE;
        sprintf(lastErrorMsg, ERRMSG_DT_FAILURE, GetLastError());
        goto exit;
    }

    // create big buffer
    sizeOut = sizeIn;

    // Get the size of the encrypted block
    res = CryptEncrypt(
        key,            // Key obtained earlier
        0,              // No hashing of data
        TRUE,           // Final or only buffer of data
        0,              // Must be zero
        NULL,           // No data this time
        &sizeOut,       // Length of the source data
        0               // Size of block
    );

    if ((res == FALSE) && (GetLastError() != ERROR_MORE_DATA)) {
        lastErrorCode = ERR_DT_FAILURE;
        sprintf(lastErrorMsg, ERRMSG_DT_FAILURE, GetLastError());
        goto exit;
    }

    // allocate and intialize the buffer
    ret = new char[sizeOut];
    memcpy(ret, data, sizeIn);

    // Now encrypt the data
    res = CryptEncrypt(
        key,                 // Key obtained earlier
        0,                   // No hashing of data
        TRUE,                // Final or only buffer of data
        0,                   // Must be zero
        (unsigned char*)ret, // Data buffer
        &sizeIn,             // Size of data
        sizeOut              // Size of block
    );

    if (res == FALSE) {
        lastErrorCode = ERR_DT_FAILURE;
        sprintf(lastErrorMsg, ERRMSG_DT_FAILURE, GetLastError());
        goto exit;
    }

    info.size = sizeIn;
    info.newReturnedData = TRUE;

 exit:

   // Destroy the session key.
   if (key)
     CryptDestroyKey (key);

   // Destroy the hash object.
   if (hash)
     CryptDestroyHash (hash);

   // Release the provider handle.
   if (prov)
     CryptReleaseContext (prov, 0);

   if (password) {
       delete [] password;
   }

   return ret;

}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲国产乱码最新视频| 国产免费久久精品| 午夜精品福利在线| 欧美视频一区二区三区在线观看| 亚洲欧美国产三级| 欧美另类z0zxhd电影| 蜜臀a∨国产成人精品| 精品av综合导航| 99精品国产视频| 偷拍一区二区三区四区| 日韩精品一区二区三区在线观看| 久久不见久久见中文字幕免费| 久久先锋影音av鲁色资源网| www.色精品| 日韩国产精品91| 日韩电影在线一区二区| 精品久久五月天| 色婷婷久久久久swag精品| 日韩国产欧美视频| 国产三级一区二区三区| 色综合久久综合| 精品夜夜嗨av一区二区三区| 国产精品人成在线观看免费| 在线观看国产一区二区| 另类专区欧美蜜桃臀第一页| 中文字幕在线视频一区| 欧美久久免费观看| 国产福利精品一区| 亚洲成人777| 国产精品乱码妇女bbbb| 欧美精品久久99| 成人午夜电影小说| 日本成人在线看| 成人欧美一区二区三区白人| 日韩一本二本av| 日本韩国欧美在线| 国产不卡在线一区| 日本中文在线一区| 综合久久给合久久狠狠狠97色| 91精品国产乱码久久蜜臀| 成a人片亚洲日本久久| 美女视频一区二区三区| 亚洲精品福利视频网站| 久久精品视频在线免费观看| 欧美人xxxx| 日本韩国精品在线| 国产成人av福利| 麻豆精品久久久| 亚洲一区二区欧美日韩| 自拍视频在线观看一区二区| 精品伦理精品一区| 欧美日韩国产高清一区二区| av亚洲精华国产精华精华| 韩国精品在线观看| 日本不卡的三区四区五区| 一区二区三区在线免费播放 | 蜜臀av国产精品久久久久| 自拍偷拍欧美激情| 国产精品免费看片| 久久久久久一级片| 精品久久久三级丝袜| 91精品国产手机| 欧美精品一二三区| 欧美午夜精品免费| 欧美日韩一区小说| 欧美美女直播网站| 欧美日韩免费在线视频| 欧美这里有精品| 色乱码一区二区三区88| 色综合久久综合中文综合网| 91免费在线播放| 色一区在线观看| 色婷婷久久久亚洲一区二区三区 | 久久久久久日产精品| 日韩视频免费观看高清完整版在线观看 | 日韩欧美成人一区| 欧美一区二区三区色| 91精品国产综合久久福利 | 欧美大片在线观看一区| 日韩丝袜美女视频| 精品久久人人做人人爽| 精品剧情v国产在线观看在线| 精品区一区二区| 久久久www成人免费无遮挡大片| 精品国产区一区| 欧美国产视频在线| 中文字幕一区二区三区蜜月| 亚洲欧洲av色图| 亚洲国产日韩综合久久精品| 午夜亚洲国产au精品一区二区| 日韩精品一卡二卡三卡四卡无卡| 免费的成人av| 国产乱人伦偷精品视频免下载| 大桥未久av一区二区三区中文| 不卡视频免费播放| 精品污污网站免费看| 这里只有精品电影| 国产免费久久精品| 亚洲综合激情小说| 久久99精品国产麻豆婷婷| 国产精品一区二区黑丝| 99精品久久只有精品| 欧美性受xxxx| 精品久久国产97色综合| 中文字幕的久久| 一区二区不卡在线视频 午夜欧美不卡在 | 欧美精品久久99| 久久久久成人黄色影片| 一区二区三区四区国产精品| 秋霞午夜av一区二区三区| 国产成人精品三级| 欧美裸体bbwbbwbbw| 国产亚洲精品福利| 亚洲一区二区三区爽爽爽爽爽| 日本va欧美va欧美va精品| 成人精品一区二区三区四区| 欧美色视频一区| 久久久精品国产99久久精品芒果 | 欧美丰满一区二区免费视频| 国产亚洲精品精华液| 午夜成人免费视频| 成人丝袜视频网| 日韩一区二区在线观看视频播放| 国产精品欧美精品| 免费观看30秒视频久久| 色婷婷亚洲综合| 久久日一线二线三线suv| 夜夜嗨av一区二区三区网页 | 亚洲免费观看高清完整版在线| 免费人成网站在线观看欧美高清| 99久久国产综合精品色伊| 精品日韩在线一区| 五月婷婷久久丁香| 不卡av在线免费观看| 日韩av一区二区三区四区| 99久久伊人久久99| 精品国产成人在线影院| 天天综合色天天综合| 色综合色狠狠综合色| 亚洲国产精品二十页| 精品一二三四在线| 日韩色视频在线观看| 亚洲午夜国产一区99re久久| 成人激情小说乱人伦| 久久只精品国产| 精品在线亚洲视频| 91精品蜜臀在线一区尤物| 亚洲自拍偷拍综合| 在线一区二区三区做爰视频网站| 国产婷婷色一区二区三区四区| 日本va欧美va欧美va精品| 欧美男女性生活在线直播观看| 亚洲精品第一国产综合野| 91亚洲精品久久久蜜桃网站 | 国产精品一二三在| 日韩视频一区二区在线观看| 亚洲成人综合视频| 欧美在线制服丝袜| 亚洲午夜一区二区三区| 在线看国产一区二区| 亚洲美女少妇撒尿| 色婷婷久久久综合中文字幕| 亚洲手机成人高清视频| 一本大道久久a久久精二百| 中文字幕一区二区三区av| 成人网页在线观看| 国产精品美女一区二区三区| 白白色亚洲国产精品| 国产精品色哟哟| 99国内精品久久| 亚洲精选在线视频| 精品视频999| 免费成人av在线| 精品av久久707| 高清国产一区二区三区| 国产精品沙发午睡系列990531| 99久久久久久| 一区二区三区在线免费| 欧美日韩一区二区在线观看| 午夜亚洲国产au精品一区二区| 9191久久久久久久久久久| 免费精品视频在线| 国产日韩v精品一区二区| 成人国产亚洲欧美成人综合网| 中文字幕一区二区三区四区不卡| 色综合色狠狠综合色| 日韩国产欧美在线播放| 久久综合国产精品| 91性感美女视频| 日日夜夜免费精品视频| 精品国产伦一区二区三区观看体验 | 欧美日韩国产精品自在自线| 日本伊人色综合网| 国产亚洲va综合人人澡精品 | 青娱乐精品视频| 国产日韩影视精品| 欧美亚洲高清一区| 久久激五月天综合精品| 国产精品传媒视频| 欧美一级午夜免费电影|