⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 wincrypt.pas

📁 1. 发卡服务端:Server 项目文件:autojet.prj 2. 计费客户端:Client 项目文件:internet.prj Explorer.prj 先启动Exp
💻 PAS
📖 第 1 页 / 共 2 页
字号:
        KP_SCHANNEL_ALG	      =  20;      // for setting the Secure Channel algorithms
        KP_CLIENT_RANDOM      =		21;      // for setting the Secure Channel client random data
        KP_SERVER_RANDOM      =		22;      // for setting the Secure Channel server random data
       	KP_RP		      =		23;
       	KP_PRECOMP_MD5	      =		24;
       	KP_PRECOMP_SHA	      =		25;
        KP_CERTIFICATE        =  26;      // for setting Secure Channel certificate data (PCT1)
        KP_CLEAR_KEY          =  27;      // for setting Secure Channel clear key data (PCT1)
        KP_PUB_EX_LEN         =  28;
        KP_PUB_EX_VAL         =  29;

// KP_PADDING
        PKCS5_PADDING         =  1;       // PKCS 5 (sec 6.2) padding method
        RANDOM_PADDING	      = 	2;
       	ZERO_PADDING	      = 	3;

// KP_MODE
        CRYPT_MODE_CBC        =  1;       // Cipher block chaining
        CRYPT_MODE_ECB        =  2;       // Electronic code book
        CRYPT_MODE_OFB        =  3;       // Output feedback mode
        CRYPT_MODE_CFB        =  4;       // Cipher feedback mode
        CRYPT_MODE_CTS        =  5;       // Ciphertext stealing mode

// KP_PERMISSIONS
        CRYPT_ENCRYPT         =  $0001;  // Allow encryption
        CRYPT_DECRYPT         =  $0002;  // Allow decryption
        CRYPT_EXPORT          =  $0004;  // Allow key to be exported
        CRYPT_READ            =  $0008;  // Allow parameters to be read
        CRYPT_WRITE           =  $0010;  // Allow parameters to be set
        CRYPT_MAC             =  $0020;  // Allow MACs to be used with key
        CRYPT_EXPORT_KEY      =  $0040;  // Allow key to be used for exporting keys
        CRYPT_IMPORT_KEY      =  $0080;  // Allow key to be used for importing keys

        HP_ALGID              =  $0001;  // Hash algorithm
        HP_HASHVAL            =  $0002;  // Hash value
        HP_HASHSIZE           =  $0004;  // Hash value size
        HP_HMAC_INFO          =  $0005;  // information for creating an HMAC

        CRYPT_FAILED          =  FALSE;
        CRYPT_SUCCEED         =  TRUE ;

        //RCRYPT_SUCCEEDED(rt)  =   ((rt) = CRYPT_SUCCEED);
        //RCRYPT_FAILED(rt)     =   ((rt) = CRYPT_FAILED);

//
// CryptGetProvParam
//
        PP_ENUMALGS         =    1;
        PP_ENUMCONTAINERS   =    2;
        PP_IMPTYPE          =    3;
        PP_NAME             =    4;
        PP_VERSION          =    5;
        PP_CONTAINER        =    6;
        PP_CHANGE_PASSWORD  =    7;
        PP_KEYSET_SEC_DESCR =    8;       // get/set security descriptor of keyset
        PP_CERTCHAIN        =    9;       // for retrieving certificates from tokens
        PP_KEY_TYPE_SUBTYPE =    10;
        PP_PROVTYPE         =    16;
        PP_KEYSTORAGE       =    17;
        PP_APPLI_CERT       =    18;
        PP_SYM_KEYSIZE      =    19;
        PP_SESSION_KEYSIZE  =    20;
        PP_UI_PROMPT        =    21;
        PP_ENUMALGS_EX      =    22;

        CRYPT_FIRST         =    1;
        CRYPT_NEXT          =    2;

        CRYPT_IMPL_HARDWARE =    1;
        CRYPT_IMPL_SOFTWARE =    2;
        CRYPT_IMPL_MIXED    =    3;
        CRYPT_IMPL_UNKNOWN  =    4;

// key storage flags
        CRYPT_SEC_DESCR     =    $00000001;
        CRYPT_PSTORE        =    $00000002;
        CRYPT_UI_PROMPT     =    $00000004;

// protocol flags
        CRYPT_FLAG_PCT1     =    $0001;
        CRYPT_FLAG_SSL2     =    $0002;
        CRYPT_FLAG_SSL3     =    $0004;
        CRYPT_FLAG_TLS1     =    $0008;

//
// CryptSetProvParam
//
        PP_CLIENT_HWND      =    1;
        PP_CONTEXT_INFO	    =  	11;
       	PP_KEYEXCHANGE_KEYSIZE =	12;
       	PP_SIGNATURE_KEYSIZE   = 13;
        PP_KEYEXCHANGE_ALG     = 14;
        PP_SIGNATURE_ALG       = 15;
        PP_DELETEKEY           = 24;

        PROV_RSA_FULL      =     1;
        PROV_RSA_SIG       =     2;
        PROV_DSS           =     3;
        PROV_FORTEZZA      =     4;
        PROV_MS_EXCHANGE   =     5;
        PROV_SSL           =     6;
        PROV_RSA_SCHANNEL  =     12;
        PROV_DSS_DH        =     13;
        PROV_EC_ECDSA_SIG  =     14;
        PROV_EC_ECNRA_SIG  =     15;
        PROV_EC_ECDSA_FULL =     16;
        PROV_EC_ECNRA_FULL =    17;
        PROV_SPYRUS_LYNKS  =     20;

//
// STT defined Providers
//
        PROV_STT_MER      =              7;
        PROV_STT_ACQ      =              8;
        PROV_STT_BRND     =              9;
        PROV_STT_ROOT     =              10;
        PROV_STT_ISS      =             11;

//
// Provider friendly names
//
        MS_DEF_PROV_A    =   'Microsoft Base Cryptographic Provider v1.0';
        MS_DEF_PROV_W    =   'Microsoft Base Cryptographic Provider v1.0';
        MS_DEF_PROV      =   MS_DEF_PROV_W;

        MS_ENHANCED_PROV_A  =     'Microsoft Enhanced Cryptographic Provider v1.0';
        MS_ENHANCED_PROV_W  =     'Microsoft Enhanced Cryptographic Provider v1.0';
        MS_ENHANCED_PROV    =     MS_ENHANCED_PROV_W;

        MS_DEF_RSA_SIG_PROV_A =   'Microsoft RSA Signature Cryptographic Provider';
        MS_DEF_RSA_SIG_PROV_W =   'Microsoft RSA Signature Cryptographic Provider';
        MS_DEF_RSA_SIG_PROV   =   MS_DEF_RSA_SIG_PROV_W;
        MS_DEF_RSA_SCHANNEL_PROV_A = 'Microsoft Base RSA SChannel Cryptographic Provider' ;
        MS_DEF_RSA_SCHANNEL_PROV_W = 'Microsoft Base RSA SChannel Cryptographic Provider';
        MS_DEF_RSA_SCHANNEL_PROV   =      MS_DEF_RSA_SCHANNEL_PROV_W ;

        MS_ENHANCED_RSA_SCHANNEL_PROV_A = 'Microsoft Enhanced RSA SChannel Cryptographic Provider';
        MS_ENHANCED_RSA_SCHANNEL_PROV_W ='Microsoft Enhanced RSA SChannel Cryptographic Provider';
        MS_ENHANCED_RSA_SCHANNEL_PROV  =  MS_ENHANCED_RSA_SCHANNEL_PROV_W;

        MS_DEF_DSS_PROV_A   =     'Microsoft Base DSS Cryptographic Provider' ;
        MS_DEF_DSS_PROV_W   =     'Microsoft Base DSS Cryptographic Provider';
        MS_DEF_DSS_PROV     =     MS_DEF_DSS_PROV_W;
        MS_DEF_DSS_DH_PROV_A  =  'Microsoft Base DSS and Diffie-Hellman Cryptographic Provider' ;
        MS_DEF_DSS_DH_PROV_W  =  'Microsoft Base DSS and Diffie-Hellman Cryptographic Provider';
        MS_DEF_DSS_DH_PROV    =  MS_DEF_DSS_DH_PROV_W ;


        MAXUIDLEN         =      64;

        CUR_BLOB_VERSION  =      2;

//FUNCTIONS
const
  advapi32  = 'advapi32.dll';
  cryptapi  = 'crypt32.dll';

FUNCTION CryptAcquireContext(phProv:PHCRYPTPROV;pszContainer:LPCSTR;pszProvider:LPCSTR;
         dwProvType,dwFlags:DWORD):BOOLEAN;STDCALL;external advapi32 name 'CryptAcquireContextA';

FUNCTION CryptReleaseContext(hProv:HCRYPTPROV;dwFlags:DWORD):BOOLEAN;STDCALL;external advapi32;

FUNCTION CryptGenKey(hProv:HCRYPTPROV;Algid:ALG_ID;dwFlags:DWORD;
         phKey:PHCRYPTKEY):BOOLEAN;STDCALL;external advapi32;

FUNCTION CryptDeriveKey(hProv:HCRYPTPROV;Algid:ALG_ID;hBaseData:HCRYPTHASH;
         dwFlags:DWORD;phKey:PHCRYPTKEY):BOOLEAN;STDCALL;external advapi32;

FUNCTION CryptDestroyKey(hKey:HCRYPTKEY):BOOLEAN;STDCALL;external advapi32;

FUNCTION CryptSetKeyParam(hKey:HCRYPTKEY;dwParam:DWORD;pbData:BYTE;dwFlags:DWORD)
         :BOOLEAN;STDCALL;external cryptapi;

FUNCTION CryptGetKeyParam(hKey:HCRYPTKEY;dwParam:DWORD;pbData:byte;pdwDataLen:DWORD;
         dwFlags:DWORD):BOOLEAN;STDCALL;external cryptapi;

FUNCTION CryptExportKey(hKey:HCRYPTKEY;hExpKey:HCRYPTKEY;dwBlobType:DWORD;dwFlags:DWORD;
         pbData:BYTE;pdwDataLen:DWORD):BOOLEAN;STDCALL;external cryptapi;

FUNCTION CryptImportKey(hProv:HCRYPTPROV;CONST pbData:BYTE;dwDataLen:DWORD;hPubKey:HCRYPTKEY;
         dwFlags:DWORD;phKey:HCRYPTKEY):BOOLEAN;STDCALL;external cryptapi;

FUNCTION CryptEncrypt(hKey:HCRYPTKEY;hHash:HCRYPTHASH;Final:BOOLEAN;dwFlags:DWORD;
         pbData:PBYTE;pdwDataLen:PDWORD;dwBufLen:DWORD):BOOLEAN;STDCALL;external advapi32;

FUNCTION CryptDecrypt(hKey:HCRYPTKEY;hHash:HCRYPTHASH;Final:BOOLEAN;dwFlags:DWORD;
         pbData:PByte;pdwDataLen:pDWORD):BOOLEAN;STDCALL;external advapi32;

FUNCTION CryptCreateHash(hProv:HCRYPTPROV;Algid:ALG_ID;hKey:HCRYPTKEY;dwFlags:DWORD;
         phHash:PHCRYPTHASH):BOOLEAN;STDCALL;external advapi32;

FUNCTION CryptHashData(hHash:HCRYPTHASH;CONST pbData:PBYTE;dwDataLen:DWORD;
         dwFlags:DWORD):BOOLEAN;STDCALL;external advapi32;

FUNCTION CryptHashSessionKey(hHash:HCRYPTHASH;hKey:HCRYPTKEY;dwFlags:DWORD)
         :BOOLEAN;STDCALL;external cryptapi;

FUNCTION CryptDestroyHash(hHash:HCRYPTHASH):BOOLEAN;STDCALL;external advapi32;

FUNCTION CryptSignHash(hHash:HCRYPTHASH;dwKeySpec:DWORD;sDescription:LPCSTR;dwFlags:DWORD;
         pbSignature:PBYTE;pdwSigLen:PDWORD):BOOLEAN;STDCALL;external advapi32 NAME 'CryptSignHashA';

implementation

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -