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

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

?? autoreg.cpp

?? 信息安全開發使用的
?? CPP
字號:
/****************************************************************************
* library : pkcs_csp.dll
* Purpose : It is an independent software module that actually performs 
* cryptography algorithms for authentication, encoding, and encryption.
* This DLL is interfaced on any PKCS#11 module.  
*
* Copyright (C) 2003 Ilex Syst鑝es Informatiques
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
* Contact :
* Ilex 
* 51 boulevard Voltaire
* 92600 Asni鑢es-sur-Seine
* pkizy@ilex.fr
*
* Author: Delouvrier Antoine
*
*******************************************************************************/
/*
%----------------------------------------------------------------------------
% PROJECT : CSP_PKCS
%
% MODULE : autoreg
%
% VERSION : 1.00
%
% FILE : autoreg.cpp
%
% Allow to register the dll in the registry
%----------------------------------------------------------------------------
% Version 1.00
% 
% CPX-31/03/2003-Cr閍tion
%----------------------------------------------------------------------------
% You can find wincrypt.h in the CSPDK which is downloadable at the adress :
% http://www.microsoft.com/downloads/details.aspx?FamilyId=0F436C75-2304-42BB-B81A-BA0C2C47BAC2&displaylang=en
*/ 

#ifndef WIN32_LEAN_AND_MEAN
#define WIN32_LEAN_AND_MEAN
#endif
#ifndef _WIN32_WINNT
#define _WIN32_WINNT 0x0400
#endif
#ifdef _AFXDLL
#include "stdafx.h"
#else

/*
% Biblioth鑡ues ANSI ou syst鑝e
%------------------------------
*/
#include <windows.h>
#endif
#ifndef WINVER
#define WINVER 0x0400
#endif
#include <wincrypt.h>
#include <tchar.h>
#include<stdio.h>

/*
% HEADER Files include
%-----------------------
*/
#include "cspdk.h"


static HMODULE
GetInstanceHandle(
    void);

static const TCHAR l_szProviderName[]= TEXT("pkcs_csp");
static const DWORD
    l_dwCspType= PROV_RSA_FULL;

/*
%--------------------------------------------------------------------------
% DllUnregisterServer
%
%---------------------------------------------------------------------------
*/

STDAPI
DllUnregisterServer(
    void)
{
    LONG nStatus;
    DWORD dwDisp;
    HRESULT hReturnStatus = NO_ERROR;
    HKEY hProviders = NULL;

#ifdef _AFXDLL
    AFX_MANAGE_STATE(AfxGetStaticModuleState());
#endif


    //
    // Delete the Registry key for this CSP.
    //

    nStatus = RegCreateKeyEx(
                    HKEY_LOCAL_MACHINE,
                    TEXT("SOFTWARE\\Microsoft\\Cryptography\\Defaults\\Provider"),
                    0,
                    TEXT(""),
                    REG_OPTION_NON_VOLATILE,
                    KEY_ALL_ACCESS,
                    NULL,
                    &hProviders,
                    &dwDisp);
    if (ERROR_SUCCESS == nStatus)
    {
        RegDeleteKey(hProviders, l_szProviderName);
        RegCloseKey(hProviders);
        hProviders = NULL;
    }



    return hReturnStatus;
}


/*
%--------------------------------------------------------------------------
% DllRegisterServer
%
%---------------------------------------------------------------------------
*/

STDAPI
DllRegisterServer(
    void)
{
    TCHAR szModulePath[MAX_PATH];
    BYTE pbSignature[136];  // Room for a 1024 bit signature, with padding.
    OSVERSIONINFO osVer;
    LPTSTR szFileName, szFileExt;
    HINSTANCE hThisDll;
    HRSRC hSigResource;
    DWORD dwStatus;
    LONG nStatus;
    BOOL fStatus;
    DWORD dwDisp;
    DWORD dwIndex;
    DWORD dwSigLength;
    HRESULT hReturnStatus = NO_ERROR;
    HKEY hProviders = NULL;
    HKEY hMyCsp = NULL;
    HKEY hCalais = NULL;
    HKEY hVendor = NULL;
    BOOL fSignatureFound = FALSE;
    HANDLE hSigFile = INVALID_HANDLE_VALUE;


#ifdef _AFXDLL
    AFX_MANAGE_STATE(AfxGetStaticModuleState());
#endif


    //
    // Figure out the file name and path.
    //

    hThisDll = GetInstanceHandle();
    if (NULL == hThisDll)
    {
        hReturnStatus = HRESULT_FROM_WIN32(ERROR_INVALID_HANDLE);
        goto ErrorExit;
    }

    dwStatus = GetModuleFileName(
                    hThisDll,
                    szModulePath,
                    sizeof(szModulePath) / sizeof(TCHAR));
    if (0 == dwStatus)
    {
        hReturnStatus = HRESULT_FROM_WIN32(GetLastError());
        goto ErrorExit;
    }

    szFileName = _tcsrchr(szModulePath, TEXT('\\'));
    if (NULL == szFileName)
        szFileName = szModulePath;
    else
        szFileName += 1;
    szFileExt = _tcsrchr(szFileName, TEXT('.'));
    if (NULL == szFileExt)
    {
        hReturnStatus = HRESULT_FROM_WIN32(ERROR_INVALID_NAME);
        goto ErrorExit;
    }
    else
        szFileExt += 1;


    //
    // Create the Registry key for this CSP.
    //

    nStatus = RegCreateKeyEx(
                    HKEY_LOCAL_MACHINE,
                    TEXT("SOFTWARE\\Microsoft\\Cryptography\\Defaults\\Provider"),
                    0,
                    TEXT(""),
                    REG_OPTION_NON_VOLATILE,
                    KEY_ALL_ACCESS,
                    NULL,
                    &hProviders,
                    &dwDisp);
    if (ERROR_SUCCESS != nStatus)
    {
        hReturnStatus = HRESULT_FROM_WIN32(nStatus);
        goto ErrorExit;
    }
    nStatus = RegCreateKeyEx(
                    hProviders,
                    l_szProviderName,
                    0,
                    TEXT(""),
                    REG_OPTION_NON_VOLATILE,
                    KEY_ALL_ACCESS,
                    NULL,
                    &hMyCsp,
                    &dwDisp);
    if (ERROR_SUCCESS != nStatus)
    {
        hReturnStatus = HRESULT_FROM_WIN32(nStatus);
        goto ErrorExit;
    }
    nStatus = RegCloseKey(hProviders);
    hProviders = NULL;
    if (ERROR_SUCCESS != nStatus)
    {
        hReturnStatus = HRESULT_FROM_WIN32(nStatus);
        goto ErrorExit;
    }


    //
    // Install the trivial registry values.
    //

    nStatus = RegSetValueEx(
                    hMyCsp,
                    TEXT("Image Path"),
                    0,
                    REG_SZ,
                    (LPBYTE)szModulePath,
                    (_tcslen(szModulePath) + 1) * sizeof(TCHAR));
    if (ERROR_SUCCESS != nStatus)
    {
        hReturnStatus = HRESULT_FROM_WIN32(nStatus);
        goto ErrorExit;
    }

    nStatus = RegSetValueEx(
                    hMyCsp,
                    TEXT("Type"),
                    0,
                    REG_DWORD,
                    (LPBYTE)&l_dwCspType,
                    sizeof(DWORD));
    if (ERROR_SUCCESS != nStatus)
    {
        hReturnStatus = HRESULT_FROM_WIN32(nStatus);
        goto ErrorExit;
    }


    //
    // See if we're self-signed.  On NT5, CSP images can carry their own
    // signatures.
    //

    hSigResource = FindResource(
                        hThisDll,
                        MAKEINTRESOURCE(CRYPT_SIG_RESOURCE_NUMBER),
                        RT_RCDATA);


    //
    // Install the file signature.
    //

    ZeroMemory(&osVer, sizeof(OSVERSIONINFO));
    osVer.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
    fStatus = GetVersionEx(&osVer);
    // ?BUGBUG? -- This works on Windows Millenium, too.
    if (fStatus
        && (VER_PLATFORM_WIN32_NT == osVer.dwPlatformId)
        && (5 <= osVer.dwMajorVersion)
        && (NULL != hSigResource))
    {

        //
        // Signature in file flag is sufficient.
        //
	
        dwStatus = 0;
        nStatus = RegSetValueEx(
                        hMyCsp,
                        TEXT("SigInFile"),
                        0,
                        REG_DWORD,
                        (LPBYTE)&dwStatus,
                        sizeof(DWORD));
        if (ERROR_SUCCESS != nStatus)
        {
            hReturnStatus = HRESULT_FROM_WIN32(nStatus);
            goto ErrorExit;
        }
    }
    else
    {

        //
        // We have to install a signature entry.
        // Try various techniques until one works.
        //

        for (dwIndex = 0; !fSignatureFound; dwIndex += 1)
        {
            switch (dwIndex)
            {

            //
            // Look for an external *.sig file and load that into the registry.
            //

            case 0:
                _tcscpy(szFileExt, TEXT("sig"));
                hSigFile = CreateFile(
                                szModulePath,
                                GENERIC_READ,
                                FILE_SHARE_READ,
                                NULL,
                                OPEN_EXISTING,
                                FILE_ATTRIBUTE_NORMAL,
                                NULL);
                if (INVALID_HANDLE_VALUE == hSigFile)
                    continue;
                dwSigLength = GetFileSize(hSigFile, NULL);
                if ((dwSigLength > sizeof(pbSignature))
                    || (dwSigLength < 72))      // Accept a 512-bit signature
                {
                    hReturnStatus = NTE_BAD_SIGNATURE;
                    goto ErrorExit;
                }

                fStatus = ReadFile(
                                hSigFile,
                                pbSignature,
                                sizeof(pbSignature),
                                &dwSigLength,
                                NULL);
                if (!fStatus)
                {
                    hReturnStatus = HRESULT_FROM_WIN32(GetLastError());
                    goto ErrorExit;
                }
                fStatus = CloseHandle(hSigFile);
                hSigFile = NULL;
                if (!fStatus)
                {
                    hReturnStatus = HRESULT_FROM_WIN32(GetLastError());
                    goto ErrorExit;
                }
                fSignatureFound = TRUE;
                break;


            //
            // Other cases may be added in the future.
            //

            default:
                hReturnStatus = NTE_BAD_SIGNATURE;
                goto ErrorExit;
            }

            if (fSignatureFound)
            {
                for (dwIndex = 0; dwIndex < dwSigLength; dwIndex += 1)
                {
                    if (0 != pbSignature[dwIndex])
                        break;
                }
                if (dwIndex >= dwSigLength)
                    fSignatureFound = FALSE;
            }
        }


        //
        // We've found a signature somewhere!  Install it.
        //

        nStatus = RegSetValueEx(
                        hMyCsp,
                        TEXT("Signature"),
                        0,
                        REG_BINARY,
                        pbSignature,
                        dwSigLength);
        if (ERROR_SUCCESS != nStatus)
        {
            hReturnStatus = HRESULT_FROM_WIN32(nStatus);
            goto ErrorExit;
        }
    }

    nStatus = RegCloseKey(hMyCsp);
    hMyCsp = NULL;
    if (ERROR_SUCCESS != nStatus)
    {
        hReturnStatus = HRESULT_FROM_WIN32(nStatus);
        goto ErrorExit;
    }




    return hReturnStatus;


    //
    // An error was detected.  Clean up any outstanding resources and
    // return the error.
    //

    ErrorExit:
    if (NULL != hVendor)
        RegCloseKey(hVendor);
    if (INVALID_HANDLE_VALUE != hSigFile)
        CloseHandle(hSigFile);
    if (NULL != hMyCsp)
        RegCloseKey(hMyCsp);
    if (NULL != hProviders)
        RegCloseKey(hProviders);
    DllUnregisterServer();
    return hReturnStatus;
}

/*
%--------------------------------------------------------------------------
% GetInstanceHandle
%
%---------------------------------------------------------------------------
*/


extern "C" HINSTANCE g_hModule;

static HINSTANCE
GetInstanceHandle(
    void)
{
#ifdef _AFXDLL
    return AfxGetInstanceHandle();
#else
    //  ?vendor?
    // Make sure this returns your DLL instance handle.
    return g_hModule;
#endif
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99久久免费精品高清特色大片| a在线欧美一区| 成人免费av网站| 色丁香久综合在线久综合在线观看| 欧美亚洲国产一区二区三区va| 51久久夜色精品国产麻豆| 欧美性生活一区| 久久美女艺术照精彩视频福利播放| 国产婷婷精品av在线| 久久蜜桃av一区二区天堂| 亚洲免费在线观看| 日韩电影在线一区二区| 成人午夜看片网址| 欧美猛男男办公室激情| 国产精品乱码一区二三区小蝌蚪| 亚洲成人7777| www.在线成人| 精品国精品国产| 亚洲va欧美va人人爽| 激情图区综合网| 欧美日韩精品专区| 国产精品国产自产拍高清av王其| 日韩av电影免费观看高清完整版 | 国产亚洲欧美日韩在线一区| 夜夜亚洲天天久久| 成人激情开心网| 日韩欧美国产麻豆| 亚洲国产成人av网| 国产福利一区二区三区| 日韩精品在线网站| 亚洲成人动漫av| av色综合久久天堂av综合| 欧美影院午夜播放| 国产精品不卡在线| 国产不卡视频一区| 欧美一区日韩一区| 日韩成人免费在线| 欧美日韩国产三级| 亚洲国产综合人成综合网站| 成人永久免费视频| 国产亚洲精品aa午夜观看| 久久成人麻豆午夜电影| 欧美一区二区三区四区高清| 中文字幕不卡在线播放| 国产91丝袜在线播放0| 国产亚洲午夜高清国产拍精品| 精品在线免费观看| 欧美亚洲国产bt| 亚洲综合成人网| 色8久久人人97超碰香蕉987| 中文字幕不卡在线| 国产jizzjizz一区二区| 国产欧美一二三区| 国产不卡视频一区| 欧美一区二区三区视频在线| 日韩av中文在线观看| 欧美日韩高清不卡| 亚洲一区二区三区四区中文字幕| 色综合久久88色综合天天| 综合网在线视频| 日本国产一区二区| 天天影视网天天综合色在线播放| 欧美精选在线播放| 精品综合久久久久久8888| 国产欧美日韩在线看| 99久精品国产| 精品一区二区三区香蕉蜜桃| 国产精品进线69影院| 欧美一级日韩免费不卡| 大胆欧美人体老妇| 青草国产精品久久久久久| 国产精品成人免费精品自在线观看| 精品1区2区3区| 国产风韵犹存在线视精品| 天天亚洲美女在线视频| 中文字幕中文在线不卡住| 91麻豆精品91久久久久同性| 99久久免费精品| 国产一区二区三区在线观看精品| 夜夜揉揉日日人人青青一国产精品| 日韩美女一区二区三区四区| 色婷婷av一区二区三区大白胸| 国产精品一级在线| 亚洲h在线观看| 中文字幕亚洲成人| 欧美精品一区二区三区高清aⅴ| 色中色一区二区| 成人永久看片免费视频天堂| 精品一区二区三区久久| 视频一区二区中文字幕| 亚洲男同1069视频| 欧美国产激情一区二区三区蜜月| 制服丝袜中文字幕一区| 欧美日韩中字一区| kk眼镜猥琐国模调教系列一区二区 | 天堂一区二区在线免费观看| 中文字幕在线不卡视频| 国产日韩欧美不卡在线| 精品免费日韩av| 日韩欧美一级二级三级| 91麻豆精品国产| 欧美肥大bbwbbw高潮| 在线观看国产91| 在线观看视频一区二区欧美日韩| av在线不卡网| 色综合欧美在线视频区| 成人在线综合网站| 成人高清伦理免费影院在线观看| 国产在线视视频有精品| 国产在线一区观看| 国产福利精品导航| 成人精品亚洲人成在线| av资源网一区| 色综合天天综合给合国产| 色狠狠av一区二区三区| 欧美亚男人的天堂| 欧美精品久久久久久久久老牛影院| 欧洲视频一区二区| 欧美精品 日韩| 日韩欧美的一区| 久久综合久久久久88| 国产欧美一区二区三区沐欲| 国产精品国产三级国产有无不卡| 自拍偷拍欧美激情| 一区二区三区四区在线播放 | 欧美国产欧美亚州国产日韩mv天天看完整| 久久―日本道色综合久久 | 日韩精品一区二区三区在线观看 | 亚洲免费三区一区二区| 一区二区三区四区在线免费观看 | 成人亚洲一区二区一| 成人性视频免费网站| 91首页免费视频| 欧美美女bb生活片| 欧美成人一区二区三区在线观看| 久久午夜国产精品| 亚洲欧美综合网| 亚洲成人av一区二区| 九九九精品视频| 94-欧美-setu| 7777精品伊人久久久大香线蕉经典版下载 | 国产精品久久久久久福利一牛影视| 国产精品三级av| 亚洲高清视频在线| 国产酒店精品激情| 欧美最新大片在线看| 欧美sm美女调教| 自拍偷拍国产精品| 视频一区视频二区中文字幕| 激情国产一区二区| 99精品视频在线观看| 欧美亚洲动漫精品| 久久九九国产精品| 亚洲成av人片在线| 国产ts人妖一区二区| 欧美主播一区二区三区美女| 亚洲精品一线二线三线无人区| 亚洲视频网在线直播| 国产一区二区福利| 欧美区视频在线观看| 国产精品福利一区二区| 久久精品国产成人一区二区三区| www.亚洲精品| 2020国产成人综合网| 亚洲成人你懂的| 成人涩涩免费视频| 日韩免费观看2025年上映的电影| 亚洲激情图片一区| 高清不卡一二三区| 欧美成人精品二区三区99精品| 一区二区三区四区高清精品免费观看| 寂寞少妇一区二区三区| 欧美色男人天堂| 亚洲你懂的在线视频| 国产成人精品一区二区三区四区 | 欧美在线免费观看视频| 国产精品乱子久久久久| 极品少妇xxxx偷拍精品少妇| 欧美日韩一区久久| 亚洲品质自拍视频| 成人免费电影视频| 国产亚洲短视频| 精品一区二区三区在线观看| 欧美一区二区网站| 天天色图综合网| 欧美日韩中文一区| 一区二区三区在线观看网站| 99视频在线观看一区三区| 国产欧美日韩久久| 国产精品一区二区三区乱码| 日韩免费高清av| 美国三级日本三级久久99| 欧美美女一区二区三区| 婷婷夜色潮精品综合在线| 欧美三级三级三级爽爽爽| 夜夜嗨av一区二区三区| 欧美在线影院一区二区| 亚洲福利电影网| 8x福利精品第一导航| 日本成人在线不卡视频|