📄 wincrypt.pas
字号:
dwFlags: DWORD; var pdwProvType: DWORD; pszTypeName: LPSTR;
var pcbTypeName: DWORD): BOOL; stdcall;
{$EXTERNALSYM CryptEnumProviderTypes}
{$ENDIF}
function CryptEnumProvidersA(dwIndex: DWORD; pdwReserved: LPDWORD; dwFlags: DWORD;
var pdwProvType: DWORD; pszProvName: LPSTR; var pcbProvName: DWORD): BOOL; stdcall;
{$EXTERNALSYM CryptEnumProvidersA}
function CryptEnumProvidersW(dwIndex: DWORD; pdwReserved: LPDWORD; dwFlags: DWORD;
var pdwProvType: DWORD; pszProvName: LPWSTR; var pcbProvName: DWORD): BOOL; stdcall;
{$EXTERNALSYM CryptEnumProvidersW}
{$IFDEF UNICODE}
function CryptEnumProviders(dwIndex: DWORD; pdwReserved: LPDWORD; dwFlags: DWORD;
var pdwProvType: DWORD; pszProvName: LPWSTR; var pcbProvName: DWORD): BOOL; stdcall;
{$EXTERNALSYM CryptEnumProviders}
{$ELSE}
function CryptEnumProviders(dwIndex: DWORD; pdwReserved: LPDWORD; dwFlags: DWORD;
var pdwProvType: DWORD; pszProvName: LPSTR; var pcbProvName: DWORD): BOOL; stdcall;
{$EXTERNALSYM CryptEnumProviders}
{$ENDIF}
function CryptContextAddRef(hProv: HCRYPTPROV; pdwReserved: LPDWORD; dwFlags: DWORD): BOOL; stdcall;
{$EXTERNALSYM CryptContextAddRef}
function CryptDuplicateKey(hKey: HCRYPTKEY; pdwReserved: LPDWORD; dwFlags: DWORD;
var phKey: HCRYPTKEY): BOOL; stdcall;
{$EXTERNALSYM CryptDuplicateKey}
function CryptDuplicateHash(hHash: HCRYPTHASH; pdwReserved: LPDWORD;
dwFlags: DWORD; var phHash: HCRYPTHASH): BOOL; stdcall;
{$EXTERNALSYM CryptDuplicateHash}
//+-------------------------------------------------------------------------
// In a CRYPT_BIT_BLOB the last byte may contain 0-7 unused bits. Therefore, the
// overall bit length is cbData * 8 - cUnusedBits.
//--------------------------------------------------------------------------
type
PCRYPT_BIT_BLOB = ^CRYPT_BIT_BLOB;
{$EXTERNALSYM PCRYPT_BIT_BLOB}
_CRYPT_BIT_BLOB = record
cbData: DWORD;
pbData: LPBYTE;
cUnusedBits: DWORD;
end;
{$EXTERNALSYM _CRYPT_BIT_BLOB}
CRYPT_BIT_BLOB = _CRYPT_BIT_BLOB;
{$EXTERNALSYM CRYPT_BIT_BLOB}
TCryptBitBlob = CRYPT_BIT_BLOB;
PCryptBitBlob = PCRYPT_BIT_BLOB;
//+-------------------------------------------------------------------------
// Type used for any algorithm
//
// Where the Parameters CRYPT_OBJID_BLOB is in its encoded representation. For most
// algorithm types, the Parameters CRYPT_OBJID_BLOB is NULL (Parameters.cbData = 0).
//--------------------------------------------------------------------------
type
PCRYPT_ALGORITHM_IDENTIFIER = ^CRYPT_ALGORITHM_IDENTIFIER;
{$EXTERNALSYM PCRYPT_ALGORITHM_IDENTIFIER}
_CRYPT_ALGORITHM_IDENTIFIER = record
pszObjId: LPSTR;
Parameters: CRYPT_OBJID_BLOB;
end;
{$EXTERNALSYM _CRYPT_ALGORITHM_IDENTIFIER}
CRYPT_ALGORITHM_IDENTIFIER = _CRYPT_ALGORITHM_IDENTIFIER;
{$EXTERNALSYM CRYPT_ALGORITHM_IDENTIFIER}
TCryptAlgorithmIdentifier = CRYPT_ALGORITHM_IDENTIFIER;
PCryptAlgorithmIdentifier = PCRYPT_ALGORITHM_IDENTIFIER;
// Following are the definitions of various algorithm object identifiers
// RSA
const
szOID_RSA = '1.2.840.113549';
{$EXTERNALSYM szOID_RSA}
szOID_PKCS = '1.2.840.113549.1';
{$EXTERNALSYM szOID_PKCS}
szOID_RSA_HASH = '1.2.840.113549.2';
{$EXTERNALSYM szOID_RSA_HASH}
szOID_RSA_ENCRYPT = '1.2.840.113549.3';
{$EXTERNALSYM szOID_RSA_ENCRYPT}
szOID_PKCS_1 = '1.2.840.113549.1.1';
{$EXTERNALSYM szOID_PKCS_1}
szOID_PKCS_2 = '1.2.840.113549.1.2';
{$EXTERNALSYM szOID_PKCS_2}
szOID_PKCS_3 = '1.2.840.113549.1.3';
{$EXTERNALSYM szOID_PKCS_3}
szOID_PKCS_4 = '1.2.840.113549.1.4';
{$EXTERNALSYM szOID_PKCS_4}
szOID_PKCS_5 = '1.2.840.113549.1.5';
{$EXTERNALSYM szOID_PKCS_5}
szOID_PKCS_6 = '1.2.840.113549.1.6';
{$EXTERNALSYM szOID_PKCS_6}
szOID_PKCS_7 = '1.2.840.113549.1.7';
{$EXTERNALSYM szOID_PKCS_7}
szOID_PKCS_8 = '1.2.840.113549.1.8';
{$EXTERNALSYM szOID_PKCS_8}
szOID_PKCS_9 = '1.2.840.113549.1.9';
{$EXTERNALSYM szOID_PKCS_9}
szOID_PKCS_10 = '1.2.840.113549.1.10';
{$EXTERNALSYM szOID_PKCS_10}
szOID_PKCS_12 = '1.2.840.113549.1.12';
{$EXTERNALSYM szOID_PKCS_12}
szOID_RSA_RSA = '1.2.840.113549.1.1.1';
{$EXTERNALSYM szOID_RSA_RSA}
szOID_RSA_MD2RSA = '1.2.840.113549.1.1.2';
{$EXTERNALSYM szOID_RSA_MD2RSA}
szOID_RSA_MD4RSA = '1.2.840.113549.1.1.3';
{$EXTERNALSYM szOID_RSA_MD4RSA}
szOID_RSA_MD5RSA = '1.2.840.113549.1.1.4';
{$EXTERNALSYM szOID_RSA_MD5RSA}
szOID_RSA_SHA1RSA = '1.2.840.113549.1.1.5';
{$EXTERNALSYM szOID_RSA_SHA1RSA}
szOID_RSA_SETOAEP_RSA = '1.2.840.113549.1.1.6';
{$EXTERNALSYM szOID_RSA_SETOAEP_RSA}
szOID_RSA_DH = '1.2.840.113549.1.3.1';
{$EXTERNALSYM szOID_RSA_DH}
szOID_RSA_data = '1.2.840.113549.1.7.1';
{$EXTERNALSYM szOID_RSA_data}
szOID_RSA_signedData = '1.2.840.113549.1.7.2';
{$EXTERNALSYM szOID_RSA_signedData}
szOID_RSA_envelopedData = '1.2.840.113549.1.7.3';
{$EXTERNALSYM szOID_RSA_envelopedData}
szOID_RSA_signEnvData = '1.2.840.113549.1.7.4';
{$EXTERNALSYM szOID_RSA_signEnvData}
szOID_RSA_digestedData = '1.2.840.113549.1.7.5';
{$EXTERNALSYM szOID_RSA_digestedData}
szOID_RSA_hashedData = '1.2.840.113549.1.7.5';
{$EXTERNALSYM szOID_RSA_hashedData}
szOID_RSA_encryptedData = '1.2.840.113549.1.7.6';
{$EXTERNALSYM szOID_RSA_encryptedData}
szOID_RSA_emailAddr = '1.2.840.113549.1.9.1';
{$EXTERNALSYM szOID_RSA_emailAddr}
szOID_RSA_unstructName = '1.2.840.113549.1.9.2';
{$EXTERNALSYM szOID_RSA_unstructName}
szOID_RSA_contentType = '1.2.840.113549.1.9.3';
{$EXTERNALSYM szOID_RSA_contentType}
szOID_RSA_messageDigest = '1.2.840.113549.1.9.4';
{$EXTERNALSYM szOID_RSA_messageDigest}
szOID_RSA_signingTime = '1.2.840.113549.1.9.5';
{$EXTERNALSYM szOID_RSA_signingTime}
szOID_RSA_counterSign = '1.2.840.113549.1.9.6';
{$EXTERNALSYM szOID_RSA_counterSign}
szOID_RSA_challengePwd = '1.2.840.113549.1.9.7';
{$EXTERNALSYM szOID_RSA_challengePwd}
szOID_RSA_unstructAddr = '1.2.840.113549.1.9.8';
{$EXTERNALSYM szOID_RSA_unstructAddr}
szOID_RSA_extCertAttrs = '1.2.840.113549.1.9.9';
{$EXTERNALSYM szOID_RSA_extCertAttrs}
szOID_RSA_certExtensions = '1.2.840.113549.1.9.14';
{$EXTERNALSYM szOID_RSA_certExtensions}
szOID_RSA_SMIMECapabilities = '1.2.840.113549.1.9.15';
{$EXTERNALSYM szOID_RSA_SMIMECapabilities}
szOID_RSA_preferSignedData = '1.2.840.113549.1.9.15.1';
{$EXTERNALSYM szOID_RSA_preferSignedData}
szOID_RSA_SMIMEalg = '1.2.840.113549.1.9.16.3';
{$EXTERNALSYM szOID_RSA_SMIMEalg}
szOID_RSA_SMIMEalgESDH = '1.2.840.113549.1.9.16.3.5';
{$EXTERNALSYM szOID_RSA_SMIMEalgESDH}
szOID_RSA_SMIMEalgCMS3DESwrap = '1.2.840.113549.1.9.16.3.6';
{$EXTERNALSYM szOID_RSA_SMIMEalgCMS3DESwrap}
szOID_RSA_SMIMEalgCMSRC2wrap = '1.2.840.113549.1.9.16.3.7';
{$EXTERNALSYM szOID_RSA_SMIMEalgCMSRC2wrap}
szOID_RSA_MD2 = '1.2.840.113549.2.2';
{$EXTERNALSYM szOID_RSA_MD2}
szOID_RSA_MD4 = '1.2.840.113549.2.4';
{$EXTERNALSYM szOID_RSA_MD4}
szOID_RSA_MD5 = '1.2.840.113549.2.5';
{$EXTERNALSYM szOID_RSA_MD5}
szOID_RSA_RC2CBC = '1.2.840.113549.3.2';
{$EXTERNALSYM szOID_RSA_RC2CBC}
szOID_RSA_RC4 = '1.2.840.113549.3.4';
{$EXTERNALSYM szOID_RSA_RC4}
szOID_RSA_DES_EDE3_CBC = '1.2.840.113549.3.7';
{$EXTERNALSYM szOID_RSA_DES_EDE3_CBC}
szOID_RSA_RC5_CBCPad = '1.2.840.113549.3.9';
{$EXTERNALSYM szOID_RSA_RC5_CBCPad}
szOID_ANSI_X942 = '1.2.840.10046';
{$EXTERNALSYM szOID_ANSI_X942}
szOID_ANSI_X942_DH = '1.2.840.10046.2.1';
{$EXTERNALSYM szOID_ANSI_X942_DH}
szOID_X957 = '1.2.840.10040';
{$EXTERNALSYM szOID_X957}
szOID_X957_DSA = '1.2.840.10040.4.1';
{$EXTERNALSYM szOID_X957_DSA}
szOID_X957_SHA1DSA = '1.2.840.10040.4.3';
{$EXTERNALSYM szOID_X957_SHA1DSA}
// ITU-T UsefulDefinitions
szOID_DS = '2.5';
{$EXTERNALSYM szOID_DS}
szOID_DSALG = '2.5.8';
{$EXTERNALSYM szOID_DSALG}
szOID_DSALG_CRPT = '2.5.8.1';
{$EXTERNALSYM szOID_DSALG_CRPT}
szOID_DSALG_HASH = '2.5.8.2';
{$EXTERNALSYM szOID_DSALG_HASH}
szOID_DSALG_SIGN = '2.5.8.3';
{$EXTERNALSYM szOID_DSALG_SIGN}
szOID_DSALG_RSA = '2.5.8.1.1';
{$EXTERNALSYM szOID_DSALG_RSA}
// NIST OSE Implementors' Workshop (OIW)
// http://nemo.ncsl.nist.gov/oiw/agreements/stable/OSI/12s_9506.w51
// http://nemo.ncsl.nist.gov/oiw/agreements/working/OSI/12w_9503.w51
szOID_OIW = '1.3.14';
{$EXTERNALSYM szOID_OIW}
// NIST OSE Implementors' Workshop (OIW) Security SIG algorithm identifiers
szOID_OIWSEC = '1.3.14.3.2';
{$EXTERNALSYM szOID_OIWSEC}
szOID_OIWSEC_md4RSA = '1.3.14.3.2.2';
{$EXTERNALSYM szOID_OIWSEC_md4RSA}
szOID_OIWSEC_md5RSA = '1.3.14.3.2.3';
{$EXTERNALSYM szOID_OIWSEC_md5RSA}
szOID_OIWSEC_md4RSA2 = '1.3.14.3.2.4';
{$EXTERNALSYM szOID_OIWSEC_md4RSA2}
szOID_OIWSEC_desECB = '1.3.14.3.2.6';
{$EXTERNALSYM szOID_OIWSEC_desECB}
szOID_OIWSEC_desCBC = '1.3.14.3.2.7';
{$EXTERNALSYM szOID_OIWSEC_desCBC}
szOID_OIWSEC_desOFB = '1.3.14.3.2.8';
{$EXTERNALSYM szOID_OIWSEC_desOFB}
szOID_OIWSEC_desCFB = '1.3.14.3.2.9';
{$EXTERNALSYM szOID_OIWSEC_desCFB}
szOID_OIWSEC_desMAC = '1.3.14.3.2.10';
{$EXTERNALSYM szOID_OIWSEC_desMAC}
szOID_OIWSEC_rsaSign = '1.3.14.3.2.11';
{$EXTERNALSYM szOID_OIWSEC_rsaSign}
szOID_OIWSEC_dsa = '1.3.14.3.2.12';
{$EXTERNALSYM szOID_OIWSEC_dsa}
szOID_OIWSEC_shaDSA = '1.3.14.3.2.13';
{$EXTERNALSYM szOID_OIWSEC_shaDSA}
szOID_OIWSEC_mdc2RSA = '1.3.14.3.2.14';
{$EXTERNALSYM szOID_OIWSEC_mdc2RSA}
szOID_OIWSEC_shaRSA = '1.3.14.3.2.15';
{$EXTERNALSYM szOID_OIWSEC_shaRSA}
szOID_OIWSEC_dhCommMod = '1.3.14.3.2.16';
{$EXTERNALSYM szOID_OIWSEC_dhCommMod}
szOID_OIWSEC_desEDE = '1.3.14.3.2.17';
{$EXTERNALSYM szOID_OIWSEC_desEDE}
szOID_OIWSEC_sha = '1.3.14.3.2.18';
{$EXTERNALSYM szOID_OIWSEC_sha}
szOID_OIWSEC_mdc2 = '1.3.14.3.2.19';
{$EXTERNALSYM szOID_OIWSEC_mdc2}
szOID_OIWSEC_dsaComm = '1.3.14.3.2.20';
{$EXTERNALSYM szOID_OIWSEC_dsaComm}
szOID_OIWSEC_dsaCommSHA = '1.3.14.3.2.21';
{$EXTERNALSYM szOID_OIWSEC_dsaCommSHA}
szOID_OIWSEC_rsaXchg = '1.3.14.3.2.22';
{$EXTERNALSYM szOID_OIWSEC_rsaXchg}
szOID_OIWSEC_keyHashSeal = '1.3.14.3.2.23';
{$EXTERNALSYM szOID_OIWSEC_keyHashSeal}
szOID_OIWSEC_md2RSASign = '1.3.14.3.2.24';
{$EXTERNALSYM szOID_OIWSEC_md2RSASign}
szOID_OIWSEC_md5RSASign = '1.3.14.3.2.25';
{$EXTERNALSYM szOID_OIWSEC_md5RSASign}
szOID_OIWSEC_sha1 = '1.3.14.3.2.26';
{$EXTERNALSYM szOID_OIWSEC_sha1}
szOID_OIWSEC_dsaSHA1 = '1.3.14.3.2.27';
{$EXTERNALSYM szOID_OIWSEC_dsaSHA1}
szOID_OIWSEC_dsaCommSHA1 = '1.3.14.3.2.28';
{$EXTERNALSYM szOID_OIWSEC_dsaCommSHA1}
szOID_OIWSEC_sha1RSASign = '1.3.14.3.2.29';
{$EXTERNALSYM szOID_OIWSEC_sha1RSASign}
// NIST OSE Implementors' Workshop (OIW) Directory SIG algorithm identifiers
szOID_OIWDIR = '1.3.14.7.2';
{$EXTERNALSYM szOID_OIWDIR}
szOID_OIWDIR_CRPT = '1.3.14.7.2.1';
{$EXTERNALSYM szOID_OIWDIR_CRPT}
szOID_OIWDIR_HASH = '1.3.14.7.2.2';
{$EXTERNALSYM szOID_OIWDIR_HASH}
szOID_OIWDIR_SIGN = '1.3.14.7.2.3';
{$EXTERNALSYM szOID_OIWDIR_SIGN}
szOID_OIWDIR_md2 = '1.3.14.7.2.2.1';
{$EXTERNALSYM szOID_OIWDIR_md2}
szOID_OIWDIR_md2RSA = '1.3.14.7.2.3.1';
{$EXTERNALSYM szOID_OIWDIR_md2RSA}
// INFOSEC Algorithms
// joint-iso-ccitt(2) country(16) us(840) organization(1) us-government(101) dod(2) id-infosec(1)
szOID_INFOSEC = '2.16.840.1.101.2.1';
{$EXTERNALSYM szOID_INFOSEC}
szOID_INFOSEC_sdnsSignature = '2.16.840.1.101.2.1.1.1';
{$EXTERNALSYM szOID_INFOSEC_sdnsSignature}
szOID_INFOSEC_mosaicSignature = '2.16.840.1.101.2.1.1.2';
{$EXTERNALSYM szOID_INFOSEC_mosaicSignature}
szOID_INFOSEC_sdnsConfidentiality = '2.16.840.1.101.2.1.1.3';
{$EXTERNALSYM szOID_INFOSEC_sdnsConfidentiality}
szOID_INFOSEC_mosaicConfidentiality = '2.16.840.1.101.2.1.1.4';
{$EXTERNALSYM szOID_INFOSEC_mosaicConfidentiality}
szOID_INFOSEC_sdnsIntegrity = '2.16.840.1.101.2.1.1.5';
{$EXTERNALSYM szOID_INFOSEC_sdnsIntegrity}
szOID_INFOSEC_mosaicIntegrity = '2.16.840.1.101.2.1.1.6';
{$EXTERNALSYM szOID_INFOSEC_mosaicIntegrity}
szOID_INFOSEC_sdnsTokenProtection = '2.16.840.1.101.2.1.1.7';
{$EXTERNALSYM szOID_INFOSEC_sdnsTokenProtection}
szOID_INFOSEC_mosaicTokenProtection = '2.16.840.1.101.2.1.1.8';
{$EXTERNALSYM szOID_INFOSEC_mosaicTokenProtection}
szOID_INFOSEC_sdnsKeyManagement = '2.16.840.1.101.2.1.1.9';
{$EXTERNALSYM szOID_INFOSEC_sdnsKeyManagement}
szOID_INFOSEC_mosaicKeyManagement = '2.16.840.1.101.2.1.1.10';
{$EXTERNALSYM szOID_INFOSEC_mosaicKeyManagement}
szOID_INFOSEC_sdnsKMandSig = '2.16.840.1.101.2.1.1.11';
{$EXTERNALSYM szOID_INFOSEC_sdnsKMandSig}
szOID_INFOSEC_mosaicKMandSig = '2.16.840.1.101.2.1.1.12';
{$EXTERNALSYM szOID_INFOSEC_mosaicKMandSig}
szOID_INFOSEC_SuiteASignature = '2.16.840.1.101.2.1.1.13';
{$EXTERNALSYM szOID_INFOSEC_SuiteASignature}
szOID_INFOSEC_SuiteAConfidentiality = '2.16.840.1.101.2.1.1.14';
{$EXTERNALSYM szOID_INFOSEC_SuiteAConfidentiality}
szOID_INFOSEC_SuiteAIntegrity = '2.16.840.1.101.2.1.1.15';
{$EXTERNALSYM szOID_INFOSEC_SuiteAIntegrity}
szOID_INFOSEC_SuiteATokenProtection = '2.16.840.1.101.2.1.1.16';
{$EXTERNALSYM szOID_INFOSEC_SuiteATokenProtection}
szOID_INFOSEC_SuiteAKeyManagement = '2.16.840.1.101.2.1.1.17';
{$EXTERNALSYM szOID_INFOSEC_SuiteAKeyManagement}
szOID_INFOSEC_SuiteAKMandSig = '2.16.840.1.101.2.1.1.18';
{$EXTERNALSYM szOID_INFOSEC_SuiteAKMandSig}
szOID_INFOSEC_mosaicUpdatedSig = '2.16.840.1.101.2.1.1.19';
{$EXTERNALSYM szOID_INFOSEC_mosaicUpdatedSig}
szOID_INFOSEC_mosaicKMandUpdSig = '2.16.840.1.101.2.1.1.20';
{$EXTERNALSYM szOID_INFOSEC_mosaicKMandUpdSig}
szOID_INFOSEC_mosaicUpdatedInteg = '2.16.840.1.101.2.1.1.21';
{$EXTERNALSYM szOID_INFOSEC_mosaicUpdatedInteg}
type
PCRYPT_OBJID_TABLE = ^CRYPT_OBJID_TABLE;
{$EXTERNALSYM PCRYPT_OBJID_TABLE}
_CRYPT_OBJID_TABLE = record
dwAlgId: DWORD;
pszObjId: LPCSTR;
end;
{$EXTERNALSYM _CRYPT_OBJID_TABLE}
CRYPT_OBJID_TABLE = _CRYPT_OBJID_TABLE;
{$EXTERNALSYM CRYPT_OBJID_TABLE}
TCryptObjIdTable = CRYPT_OBJID_TABLE;
PCryptObjIdTable = PCRYPT_OBJID_TABLE;
//+-------------------------------------------------------------------------
// PKCS #1 HashInfo (DigestInfo)
//--------------------------------------------------------------------------
PCRYPT_HASH_INFO = ^CRYPT_HASH_INFO;
{$EXTERNALSYM PCRYPT_HASH_INFO}
_CRYPT_HASH_
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -