📄 wincrypt.pas
字号:
CRYPT_SEC_DESCR = $00000001;
{$EXTERNALSYM CRYPT_SEC_DESCR}
CRYPT_PSTORE = $00000002;
{$EXTERNALSYM CRYPT_PSTORE}
CRYPT_UI_PROMPT = $00000004;
{$EXTERNALSYM CRYPT_UI_PROMPT}
// protocol flags
CRYPT_FLAG_PCT1 = $0001;
{$EXTERNALSYM CRYPT_FLAG_PCT1}
CRYPT_FLAG_SSL2 = $0002;
{$EXTERNALSYM CRYPT_FLAG_SSL2}
CRYPT_FLAG_SSL3 = $0004;
{$EXTERNALSYM CRYPT_FLAG_SSL3}
CRYPT_FLAG_TLS1 = $0008;
{$EXTERNALSYM CRYPT_FLAG_TLS1}
CRYPT_FLAG_IPSEC = $0010;
{$EXTERNALSYM CRYPT_FLAG_IPSEC}
CRYPT_FLAG_SIGNING = $0020;
{$EXTERNALSYM CRYPT_FLAG_SIGNING}
// SGC flags
CRYPT_SGC = $0001;
{$EXTERNALSYM CRYPT_SGC}
CRYPT_FASTSGC = $0002;
{$EXTERNALSYM CRYPT_FASTSGC}
//
// CryptSetProvParam
//
PP_CLIENT_HWND = 1;
{$EXTERNALSYM PP_CLIENT_HWND}
PP_CONTEXT_INFO = 11;
{$EXTERNALSYM PP_CONTEXT_INFO}
PP_KEYEXCHANGE_KEYSIZE = 12;
{$EXTERNALSYM PP_KEYEXCHANGE_KEYSIZE}
PP_SIGNATURE_KEYSIZE = 13;
{$EXTERNALSYM PP_SIGNATURE_KEYSIZE}
PP_KEYEXCHANGE_ALG = 14;
{$EXTERNALSYM PP_KEYEXCHANGE_ALG}
PP_SIGNATURE_ALG = 15;
{$EXTERNALSYM PP_SIGNATURE_ALG}
PP_DELETEKEY = 24;
{$EXTERNALSYM PP_DELETEKEY}
PROV_RSA_FULL = 1;
{$EXTERNALSYM PROV_RSA_FULL}
PROV_RSA_SIG = 2;
{$EXTERNALSYM PROV_RSA_SIG}
PROV_DSS = 3;
{$EXTERNALSYM PROV_DSS}
PROV_FORTEZZA = 4;
{$EXTERNALSYM PROV_FORTEZZA}
PROV_MS_EXCHANGE = 5;
{$EXTERNALSYM PROV_MS_EXCHANGE}
PROV_SSL = 6;
{$EXTERNALSYM PROV_SSL}
PROV_RSA_SCHANNEL = 12;
{$EXTERNALSYM PROV_RSA_SCHANNEL}
PROV_DSS_DH = 13;
{$EXTERNALSYM PROV_DSS_DH}
PROV_EC_ECDSA_SIG = 14;
{$EXTERNALSYM PROV_EC_ECDSA_SIG}
PROV_EC_ECNRA_SIG = 15;
{$EXTERNALSYM PROV_EC_ECNRA_SIG}
PROV_EC_ECDSA_FULL = 16;
{$EXTERNALSYM PROV_EC_ECDSA_FULL}
PROV_EC_ECNRA_FULL = 17;
{$EXTERNALSYM PROV_EC_ECNRA_FULL}
PROV_DH_SCHANNEL = 18;
{$EXTERNALSYM PROV_DH_SCHANNEL}
PROV_SPYRUS_LYNKS = 20;
{$EXTERNALSYM PROV_SPYRUS_LYNKS}
PROV_RNG = 21;
{$EXTERNALSYM PROV_RNG}
PROV_INTEL_SEC = 22;
{$EXTERNALSYM PROV_INTEL_SEC}
//
// STT defined Providers
//
PROV_STT_MER = 7;
{$EXTERNALSYM PROV_STT_MER}
PROV_STT_ACQ = 8;
{$EXTERNALSYM PROV_STT_ACQ}
PROV_STT_BRND = 9;
{$EXTERNALSYM PROV_STT_BRND}
PROV_STT_ROOT = 10;
{$EXTERNALSYM PROV_STT_ROOT}
PROV_STT_ISS = 11;
{$EXTERNALSYM PROV_STT_ISS}
//
// Provider friendly names
//
MS_DEF_PROV_A = 'Microsoft Base Cryptographic Provider v1.0';
{$EXTERNALSYM MS_DEF_PROV_A}
MS_DEF_PROV_W = 'Microsoft Base Cryptographic Provider v1.0';
{$EXTERNALSYM MS_DEF_PROV_W}
{$IFDEF UNICODE}
MS_DEF_PROV = MS_DEF_PROV_W;
{$EXTERNALSYM MS_DEF_PROV}
{$ELSE}
MS_DEF_PROV = MS_DEF_PROV_A;
{$EXTERNALSYM MS_DEF_PROV}
{$ENDIF}
MS_ENHANCED_PROV_A = 'Microsoft Enhanced Cryptographic Provider v1.0';
{$EXTERNALSYM MS_ENHANCED_PROV_A}
MS_ENHANCED_PROV_W = 'Microsoft Enhanced Cryptographic Provider v1.0';
{$EXTERNALSYM MS_ENHANCED_PROV_W}
{$IFDEF UNICODE}
MS_ENHANCED_PROV = MS_ENHANCED_PROV_W;
{$EXTERNALSYM MS_ENHANCED_PROV}
{$ELSE}
MS_ENHANCED_PROV = MS_ENHANCED_PROV_A;
{$EXTERNALSYM MS_ENHANCED_PROV}
{$ENDIF}
MS_STRONG_PROV_A = 'Microsoft Strong Cryptographic Provider';
{$EXTERNALSYM MS_STRONG_PROV_A}
MS_STRONG_PROV_W = 'Microsoft Strong Cryptographic Provider';
{$EXTERNALSYM MS_STRONG_PROV_W}
{$IFDEF UNICODE}
MS_STRONG_PROV = MS_STRONG_PROV_W;
{$EXTERNALSYM MS_STRONG_PROV}
{$ELSE}
MS_STRONG_PROV = MS_STRONG_PROV_A;
{$EXTERNALSYM MS_STRONG_PROV}
{$ENDIF}
MS_DEF_RSA_SIG_PROV_A = 'Microsoft RSA Signature Cryptographic Provider';
{$EXTERNALSYM MS_DEF_RSA_SIG_PROV_A}
MS_DEF_RSA_SIG_PROV_W = 'Microsoft RSA Signature Cryptographic Provider';
{$EXTERNALSYM MS_DEF_RSA_SIG_PROV_W}
{$IFDEF UNICODE}
MS_DEF_RSA_SIG_PROV = MS_DEF_RSA_SIG_PROV_W;
{$EXTERNALSYM MS_DEF_RSA_SIG_PROV}
{$ELSE}
MS_DEF_RSA_SIG_PROV = MS_DEF_RSA_SIG_PROV_A;
{$EXTERNALSYM MS_DEF_RSA_SIG_PROV}
{$ENDIF}
MS_DEF_RSA_SCHANNEL_PROV_A = 'Microsoft RSA SChannel Cryptographic Provider';
{$EXTERNALSYM MS_DEF_RSA_SCHANNEL_PROV_A}
MS_DEF_RSA_SCHANNEL_PROV_W = 'Microsoft RSA SChannel Cryptographic Provider';
{$EXTERNALSYM MS_DEF_RSA_SCHANNEL_PROV_W}
{$IFDEF UNICODE}
MS_DEF_RSA_SCHANNEL_PROV = MS_DEF_RSA_SCHANNEL_PROV_W;
{$EXTERNALSYM MS_DEF_RSA_SCHANNEL_PROV}
{$ELSE}
MS_DEF_RSA_SCHANNEL_PROV = MS_DEF_RSA_SCHANNEL_PROV_A;
{$EXTERNALSYM MS_DEF_RSA_SCHANNEL_PROV}
{$ENDIF}
MS_DEF_DSS_PROV_A = 'Microsoft Base DSS Cryptographic Provider';
{$EXTERNALSYM MS_DEF_DSS_PROV_A}
MS_DEF_DSS_PROV_W = 'Microsoft Base DSS Cryptographic Provider';
{$EXTERNALSYM MS_DEF_DSS_PROV_W}
{$IFDEF UNICODE}
MS_DEF_DSS_PROV = MS_DEF_DSS_PROV_W;
{$EXTERNALSYM MS_DEF_DSS_PROV}
{$ELSE}
MS_DEF_DSS_PROV = MS_DEF_DSS_PROV_A;
{$EXTERNALSYM MS_DEF_DSS_PROV}
{$ENDIF}
MS_DEF_DSS_DH_PROV_A = 'Microsoft Base DSS and Diffie-Hellman Cryptographic Provider';
{$EXTERNALSYM MS_DEF_DSS_DH_PROV_A}
MS_DEF_DSS_DH_PROV_W = 'Microsoft Base DSS and Diffie-Hellman Cryptographic Provider';
{$EXTERNALSYM MS_DEF_DSS_DH_PROV_W}
{$IFDEF UNICODE}
MS_DEF_DSS_DH_PROV = MS_DEF_DSS_DH_PROV_W;
{$EXTERNALSYM MS_DEF_DSS_DH_PROV}
{$ELSE}
MS_DEF_DSS_DH_PROV = MS_DEF_DSS_DH_PROV_A;
{$EXTERNALSYM MS_DEF_DSS_DH_PROV}
{$ENDIF}
MS_ENH_DSS_DH_PROV_A = 'Microsoft Enhanced DSS and Diffie-Hellman Cryptographic Provider';
{$EXTERNALSYM MS_ENH_DSS_DH_PROV_A}
MS_ENH_DSS_DH_PROV_W = 'Microsoft Enhanced DSS and Diffie-Hellman Cryptographic Provider';
{$EXTERNALSYM MS_ENH_DSS_DH_PROV_W}
{$IFDEF UNICODE}
MS_ENH_DSS_DH_PROV = MS_ENH_DSS_DH_PROV_W;
{$EXTERNALSYM MS_ENH_DSS_DH_PROV}
{$ELSE}
MS_ENH_DSS_DH_PROV = MS_ENH_DSS_DH_PROV_A;
{$EXTERNALSYM MS_ENH_DSS_DH_PROV}
{$ENDIF}
MS_DEF_DH_SCHANNEL_PROV_A = 'Microsoft DH SChannel Cryptographic Provider';
{$EXTERNALSYM MS_DEF_DH_SCHANNEL_PROV_A}
MS_DEF_DH_SCHANNEL_PROV_W = 'Microsoft DH SChannel Cryptographic Provider';
{$EXTERNALSYM MS_DEF_DH_SCHANNEL_PROV_W}
{$IFDEF UNICODE}
MS_DEF_DH_SCHANNEL_PROV = MS_DEF_DH_SCHANNEL_PROV_W;
{$EXTERNALSYM MS_DEF_DH_SCHANNEL_PROV}
{$ELSE}
MS_DEF_DH_SCHANNEL_PROV = MS_DEF_DH_SCHANNEL_PROV_A;
{$EXTERNALSYM MS_DEF_DH_SCHANNEL_PROV}
{$ENDIF}
MS_SCARD_PROV_A = 'Microsoft Base Smart Card Crypto Provider';
{$EXTERNALSYM MS_SCARD_PROV_A}
MS_SCARD_PROV_W = 'Microsoft Base Smart Card Crypto Provider';
{$EXTERNALSYM MS_SCARD_PROV_W}
{$IFDEF UNICODE}
MS_SCARD_PROV = MS_SCARD_PROV_W;
{$EXTERNALSYM MS_SCARD_PROV}
{$ELSE}
MS_SCARD_PROV = MS_SCARD_PROV_A;
{$EXTERNALSYM MS_SCARD_PROV}
{$ENDIF}
MAXUIDLEN = 64;
{$EXTERNALSYM MAXUIDLEN}
// Exponentiation Offload Reg Location
EXPO_OFFLOAD_REG_VALUE = 'ExpoOffload';
{$EXTERNALSYM EXPO_OFFLOAD_REG_VALUE}
EXPO_OFFLOAD_FUNC_NAME = 'OffloadModExpo';
{$EXTERNALSYM EXPO_OFFLOAD_FUNC_NAME}
CUR_BLOB_VERSION = 2;
{$EXTERNALSYM CUR_BLOB_VERSION}
// structure for use with CryptSetKeyParam for CMS keys
// DO NOT USE THIS STRUCTURE!!!!!
type
PCMS_KEY_INFO = ^CMS_KEY_INFO;
{$EXTERNALSYM PCMS_KEY_INFO}
_CMS_KEY_INFO = record
dwVersion: DWORD; // sizeof(CMS_KEY_INFO)
Algid: ALG_ID; // algorithmm id for the key to be converted
pbOID: LPBYTE; // pointer to OID to hash in with Z
cbOID: DWORD; // length of OID to hash in with Z
end;
{$EXTERNALSYM _CMS_KEY_INFO}
CMS_KEY_INFO = _CMS_KEY_INFO;
{$EXTERNALSYM CMS_KEY_INFO}
TCmsKeyInfo = CMS_KEY_INFO;
PCmsKeyInfo = PCMS_KEY_INFO;
// structure for use with CryptSetHashParam with CALG_HMAC
PHMAC_Info = ^HMAC_Info;
{$EXTERNALSYM PHMAC_Info}
_HMAC_Info = record
HashAlgid: ALG_ID;
pbInnerString: LPBYTE;
cbInnerString: DWORD;
pbOuterString: LPBYTE;
cbOuterString: DWORD;
end;
{$EXTERNALSYM _HMAC_Info}
HMAC_Info = _HMAC_Info;
{$EXTERNALSYM HMAC_Info}
THMacInfo = HMAC_Info;
PHMacInfo = PHMAC_Info;
// structure for use with CryptSetKeyParam with KP_SCHANNEL_ALG
PSCHANNEL_ALG = ^SCHANNEL_ALG;
{$EXTERNALSYM PSCHANNEL_ALG}
_SCHANNEL_ALG = record
dwUse: DWORD;
Algid: ALG_ID;
cBits: DWORD;
dwFlags: DWORD;
dwReserved: DWORD;
end;
{$EXTERNALSYM _SCHANNEL_ALG}
SCHANNEL_ALG = _SCHANNEL_ALG;
{$EXTERNALSYM SCHANNEL_ALG}
TSChannelAlg = SCHANNEL_ALG;
PSChannelAlg = PSCHANNEL_ALG;
// uses of algortihms for SCHANNEL_ALG structure
const
SCHANNEL_MAC_KEY = $00000000;
{$EXTERNALSYM SCHANNEL_MAC_KEY}
SCHANNEL_ENC_KEY = $00000001;
{$EXTERNALSYM SCHANNEL_ENC_KEY}
// uses of dwFlags SCHANNEL_ALG structure
INTERNATIONAL_USAGE = $00000001;
{$EXTERNALSYM INTERNATIONAL_USAGE}
type
PPROV_ENUMALGS = ^PROV_ENUMALGS;
{$NODEFINE PPROV_ENUMALGS}
_PROV_ENUMALGS = record
aiAlgid: ALG_ID;
dwBitLen: DWORD;
dwNameLen: DWORD;
szName: array [0..19] of CHAR;
end;
{$EXTERNALSYM _PROV_ENUMALGS}
PROV_ENUMALGS = _PROV_ENUMALGS;
{$EXTERNALSYM PROV_ENUMALGS}
TProvEnumAlgs = PROV_ENUMALGS;
PProvEnumAlgs = PPROV_ENUMALGS;
PPROV_ENUMALGS_EX = ^PROV_ENUMALGS_EX;
{$NODEFINE PPROV_ENUMALGS_EX}
_PROV_ENUMALGS_EX = record
aiAlgid: ALG_ID;
dwDefaultLen: DWORD;
dwMinLen: DWORD;
dwMaxLen: DWORD;
dwProtocols: DWORD;
dwNameLen: DWORD;
szName: array [0..19] of CHAR;
dwLongNameLen: DWORD;
szLongName: array [0..39] of CHAR;
end;
{$EXTERNALSYM _PROV_ENUMALGS_EX}
PROV_ENUMALGS_EX = _PROV_ENUMALGS_EX;
{$EXTERNALSYM PROV_ENUMALGS_EX}
TProvEnumAlgsEx = PROV_ENUMALGS_EX;
PProvEnumAlgsEx = PPROV_ENUMALGS_EX;
PPUBLICKEYSTRUC = ^PUBLICKEYSTRUC;
{$NODEFINE PPUBLICKEYSTRUC}
_PUBLICKEYSTRUC = record
bType: BYTE;
bVersion: BYTE;
reserved: WORD;
aiKeyAlg: ALG_ID;
end;
{$EXTERNALSYM _PUBLICKEYSTRUC}
PUBLICKEYSTRUC = _PUBLICKEYSTRUC;
{$EXTERNALSYM PUBLICKEYSTRUC}
BLOBHEADER = _PUBLICKEYSTRUC;
{$EXTERNALSYM BLOBHEADER}
TPublicKeyStruc = PUBLICKEYSTRUC;
PRSAPUBKEY = ^RSAPUBKEY;
{$NODEFINE PRSAPUBKEY}
_RSAPUBKEY = record
magic: DWORD; // Has to be RSA1
bitlen: DWORD; // # of bits in modulus
pubexp: DWORD; // public exponent
// Modulus data follows
end;
{$EXTERNALSYM _RSAPUBKEY}
RSAPUBKEY = _RSAPUBKEY;
{$EXTERNALSYM RSAPUBKEY}
TRsaPubKey = RSAPUBKEY;
_PUBKEY = record
magic: DWORD;
bitlen: DWORD; // # of bits in modulus
end;
{$EXTERNALSYM _PUBKEY}
DHPUBKEY = _PUBKEY;
{$EXTERNALSYM DHPUBKEY}
DSSPUBKEY = _PUBKEY;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -