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

📄 clcryptapi.pas

📁 Clever_Internet_Suite_6.2的代码 Clever_Internet_Suite_6.2的代码 Clever_Internet_Suite_6.2的代码
💻 PAS
📖 第 1 页 / 共 5 页
字号:
  PCRYPTOAPI_BLOB = ^CRYPTOAPI_BLOB;
  CRYPTOAPI_BLOB = record
    cbData :DWORD;
    pbData :PBYTE;
  end;

type
  CRYPT_INTEGER_BLOB            = CRYPTOAPI_BLOB;
  PCRYPT_INTEGER_BLOB           = ^CRYPT_INTEGER_BLOB;
  CRYPT_UINT_BLOB               = CRYPTOAPI_BLOB;
  PCRYPT_UINT_BLOB              = ^CRYPT_UINT_BLOB;
  CRYPT_OBJID_BLOB              = CRYPTOAPI_BLOB;
  PCRYPT_OBJID_BLOB             = ^CRYPT_OBJID_BLOB;
  CERT_NAME_BLOB                = CRYPTOAPI_BLOB;
  PCERT_NAME_BLOB               = ^CERT_NAME_BLOB;
  CERT_RDN_VALUE_BLOB           = CRYPTOAPI_BLOB;
  PCERT_RDN_VALUE_BLOB          = ^CERT_RDN_VALUE_BLOB;
  CERT_BLOB                     = CRYPTOAPI_BLOB;
  PCERT_BLOB                    = ^CERT_BLOB;
  CRL_BLOB                      = CRYPTOAPI_BLOB;
  PCRL_BLOB                     = ^CRL_BLOB;
  DATA_BLOB                     = CRYPTOAPI_BLOB;
  PDATA_BLOB                    = ^DATA_BLOB;     // JEFFJEFF temporary (too generic)
  CRYPT_DATA_BLOB               = CRYPTOAPI_BLOB;
  PCRYPT_DATA_BLOB              = ^CRYPT_DATA_BLOB;
  CRYPT_HASH_BLOB               = CRYPTOAPI_BLOB;
  PCRYPT_HASH_BLOB              = ^CRYPT_HASH_BLOB;
  CRYPT_DIGEST_BLOB             = CRYPTOAPI_BLOB;
  PCRYPT_DIGEST_BLOB            = ^CRYPT_DIGEST_BLOB;
  CRYPT_DER_BLOB                = CRYPTOAPI_BLOB;
  PCRYPT_DER_BLOB               = ^CRYPT_DER_BLOB;
  CRYPT_ATTR_BLOB               = CRYPTOAPI_BLOB;
  PCRYPT_ATTR_BLOB              = ^CRYPT_ATTR_BLOB;

//+-------------------------------------------------------------------------
//  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;
  CRYPT_BIT_BLOB = record
    cbData      :DWORD;
    pbData      :PBYTE;
    cUnusedBits :DWORD;
  end;

//+-------------------------------------------------------------------------
//  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;
  CRYPT_ALGORITHM_IDENTIFIER = record
    pszObjId   :LPSTR;
    Parameters :CRYPT_OBJID_BLOB;
  end;

// Following are the definitions of various algorithm object identifiers
// RSA
const 
  szOID_RSA         = '1.2.840.113549';
  szOID_PKCS        = '1.2.840.113549.1';
  szOID_RSA_HASH    = '1.2.840.113549.2';
  szOID_RSA_ENCRYPT = '1.2.840.113549.3';

  szOID_PKCS_1      = '1.2.840.113549.1.1';
  szOID_PKCS_2      = '1.2.840.113549.1.2';
  szOID_PKCS_3      = '1.2.840.113549.1.3';
  szOID_PKCS_4      = '1.2.840.113549.1.4';
  szOID_PKCS_5      = '1.2.840.113549.1.5';
  szOID_PKCS_6      = '1.2.840.113549.1.6';
  szOID_PKCS_7      = '1.2.840.113549.1.7';
  szOID_PKCS_8      = '1.2.840.113549.1.8';
  szOID_PKCS_9      = '1.2.840.113549.1.9';
  szOID_PKCS_10     = '1.2.840.113549.1.10';

  szOID_RSA_RSA     = '1.2.840.113549.1.1.1';
  szOID_RSA_MD2RSA  = '1.2.840.113549.1.1.2';
  szOID_RSA_MD4RSA  = '1.2.840.113549.1.1.3';
  szOID_RSA_MD5RSA  = '1.2.840.113549.1.1.4';
  szOID_RSA_SHA1RSA = '1.2.840.113549.1.1.5';
  szOID_RSA_SETOAEP_RSA  = '1.2.840.113549.1.1.6';
  
  szOID_RSA_data             = '1.2.840.113549.1.7.1';
  szOID_RSA_signedData       = '1.2.840.113549.1.7.2';
  szOID_RSA_envelopedData    = '1.2.840.113549.1.7.3';
  szOID_RSA_signEnvData      = '1.2.840.113549.1.7.4';
  szOID_RSA_digestedData     = '1.2.840.113549.1.7.5';
  szOID_RSA_hashedData       = '1.2.840.113549.1.7.5';
  szOID_RSA_encryptedData    = '1.2.840.113549.1.7.6';

  szOID_RSA_emailAddr           = '1.2.840.113549.1.9.1';
  szOID_RSA_unstructName        = '1.2.840.113549.1.9.2';
  szOID_RSA_contentType         = '1.2.840.113549.1.9.3';
  szOID_RSA_messageDigest       = '1.2.840.113549.1.9.4';
  szOID_RSA_signingTime         = '1.2.840.113549.1.9.5';
  szOID_RSA_counterSign         = '1.2.840.113549.1.9.6';
  szOID_RSA_challengePwd        = '1.2.840.113549.1.9.7';
  szOID_RSA_unstructAddr        = '1.2.840.113549.1.9.8';
  szOID_RSA_extCertAttrs        = '1.2.840.113549.1.9.9';
  szOID_RSA_SMIMECapabilities   = '1.2.840.113549.1.9.15';
  szOID_RSA_preferSignedData    = '1.2.840.113549.1.9.15.1';

  szOID_RSA_MD2 = '1.2.840.113549.2.2';
  szOID_RSA_MD4 = '1.2.840.113549.2.4';
  szOID_RSA_MD5 = '1.2.840.113549.2.5';

  szOID_RSA_RC2CBC        = '1.2.840.113549.3.2';
  szOID_RSA_RC4           = '1.2.840.113549.3.4';
  szOID_RSA_DES_EDE3_CBC  = '1.2.840.113549.3.7';
  szOID_RSA_RC5_CBCPad    = '1.2.840.113549.3.9';

// ITU-T UsefulDefinitions
  szOID_DS          = '2.5';
  szOID_DSALG       = '2.5.8';
  szOID_DSALG_CRPT  = '2.5.8.1';
  szOID_DSALG_HASH  = '2.5.8.2';
  szOID_DSALG_SIGN  = '2.5.8.3';
  szOID_DSALG_RSA   = '2.5.8.1.1';

// 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';
// NIST OSE Implementors' Workshop (OIW) Security SIG algorithm identifiers
  szOID_OIWSEC         = '1.3.14.3.2';
  szOID_OIWSEC_md4RSA  = '1.3.14.3.2.2';
  szOID_OIWSEC_md5RSA  = '1.3.14.3.2.3';
  szOID_OIWSEC_md4RSA2 = '1.3.14.3.2.4';
  szOID_OIWSEC_desECB  = '1.3.14.3.2.6';
  szOID_OIWSEC_desCBC  = '1.3.14.3.2.7';
  szOID_OIWSEC_desOFB  = '1.3.14.3.2.8';
  szOID_OIWSEC_desCFB  = '1.3.14.3.2.9';
  szOID_OIWSEC_desMAC  = '1.3.14.3.2.10';
  szOID_OIWSEC_rsaSign = '1.3.14.3.2.11';
  szOID_OIWSEC_dsa     = '1.3.14.3.2.12';
  szOID_OIWSEC_shaDSA  = '1.3.14.3.2.13';
  szOID_OIWSEC_mdc2RSA = '1.3.14.3.2.14';
  szOID_OIWSEC_shaRSA  = '1.3.14.3.2.15';
  szOID_OIWSEC_dhCommMod = '1.3.14.3.2.16';
  szOID_OIWSEC_desEDE    = '1.3.14.3.2.17';
  szOID_OIWSEC_sha       = '1.3.14.3.2.18';
  szOID_OIWSEC_mdc2      = '1.3.14.3.2.19';
  szOID_OIWSEC_dsaComm   = '1.3.14.3.2.20';
  szOID_OIWSEC_dsaCommSHA  = '1.3.14.3.2.21';
  szOID_OIWSEC_rsaXchg     = '1.3.14.3.2.22';
  szOID_OIWSEC_keyHashSeal = '1.3.14.3.2.23';
  szOID_OIWSEC_md2RSASign  = '1.3.14.3.2.24';
  szOID_OIWSEC_md5RSASign  = '1.3.14.3.2.25';
  szOID_OIWSEC_sha1        = '1.3.14.3.2.26';
  szOID_OIWSEC_dsaSHA1     = '1.3.14.3.2.27';
  szOID_OIWSEC_dsaCommSHA1 =  '1.3.14.3.2.28';
  szOID_OIWSEC_sha1RSASign =  '1.3.14.3.2.29';
// NIST OSE Implementors' Workshop (OIW) Directory SIG algorithm identifiers
  szOID_OIWDIR             = '1.3.14.7.2';
  szOID_OIWDIR_CRPT        = '1.3.14.7.2.1';
  szOID_OIWDIR_HASH        = '1.3.14.7.2.2';
  szOID_OIWDIR_SIGN        = '1.3.14.7.2.3';
  szOID_OIWDIR_md2         = '1.3.14.7.2.2.1';
  szOID_OIWDIR_md2RSA      = '1.3.14.7.2.3.1';


// 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';
  szOID_INFOSEC_sdnsSignature         = '2.16.840.1.101.2.1.1.1';
  szOID_INFOSEC_mosaicSignature       = '2.16.840.1.101.2.1.1.2';
  szOID_INFOSEC_sdnsConfidentiality   = '2.16.840.1.101.2.1.1.3';
  szOID_INFOSEC_mosaicConfidentiality = '2.16.840.1.101.2.1.1.4';
  szOID_INFOSEC_sdnsIntegrity         = '2.16.840.1.101.2.1.1.5';
  szOID_INFOSEC_mosaicIntegrity       = '2.16.840.1.101.2.1.1.6';
  szOID_INFOSEC_sdnsTokenProtection   = '2.16.840.1.101.2.1.1.7';
  szOID_INFOSEC_mosaicTokenProtection = '2.16.840.1.101.2.1.1.8';
  szOID_INFOSEC_sdnsKeyManagement     = '2.16.840.1.101.2.1.1.9';
  szOID_INFOSEC_mosaicKeyManagement   = '2.16.840.1.101.2.1.1.10';
  szOID_INFOSEC_sdnsKMandSig          = '2.16.840.1.101.2.1.1.11';
  szOID_INFOSEC_mosaicKMandSig        = '2.16.840.1.101.2.1.1.12';
  szOID_INFOSEC_SuiteASignature       = '2.16.840.1.101.2.1.1.13';
  szOID_INFOSEC_SuiteAConfidentiality = '2.16.840.1.101.2.1.1.14';
  szOID_INFOSEC_SuiteAIntegrity       = '2.16.840.1.101.2.1.1.15';
  szOID_INFOSEC_SuiteATokenProtection = '2.16.840.1.101.2.1.1.16';
  szOID_INFOSEC_SuiteAKeyManagement   = '2.16.840.1.101.2.1.1.17';
  szOID_INFOSEC_SuiteAKMandSig        = '2.16.840.1.101.2.1.1.18';
  szOID_INFOSEC_mosaicUpdatedSig      = '2.16.840.1.101.2.1.1.19';
  szOID_INFOSEC_mosaicKMandUpdSig     = '2.16.840.1.101.2.1.1.20';
  szOID_INFOSEC_mosaicUpdatedInteg    = '2.16.840.1.101.2.1.1.21';

type
  PCRYPT_OBJID_TABLE = ^CRYPT_OBJID_TABLE;
  CRYPT_OBJID_TABLE = record
    dwAlgId  :DWORD;
    pszObjId :LPCSTR;
  end;

//+-------------------------------------------------------------------------
//  PKCS #1 HashInfo (DigestInfo)
//--------------------------------------------------------------------------

type
  PCRYPT_HASH_INFO = ^CRYPT_HASH_INFO;
  CRYPT_HASH_INFO = record
    HashAlgorithm :CRYPT_ALGORITHM_IDENTIFIER;
    Hash :CRYPT_HASH_BLOB;
  end;

//+-------------------------------------------------------------------------
//  Type used for an extension to an encoded content
//
//  Where the Value's CRYPT_OBJID_BLOB is in its encoded representation.
//--------------------------------------------------------------------------

type
  PCERT_EXTENSION = ^CERT_EXTENSION;
  CERT_EXTENSION = record
    pszObjId :LPSTR;
    fCritical :BOOL;
    Value :CRYPT_OBJID_BLOB;
  end;

//+-------------------------------------------------------------------------
//  AttributeTypeValue
//
//  Where the Value's CRYPT_OBJID_BLOB is in its encoded representation.
//--------------------------------------------------------------------------

type
  PCRYPT_ATTRIBUTE_TYPE_VALUE =^CRYPT_ATTRIBUTE_TYPE_VALUE;
  CRYPT_ATTRIBUTE_TYPE_VALUE = record
    pszObjId :LPSTR;
    Value :CRYPT_OBJID_BLOB;
  end;

//+-------------------------------------------------------------------------
//  Attributes
//
//  Where the Value's PATTR_BLOBs are in their encoded representation.
//--------------------------------------------------------------------------

type
  PCRYPT_ATTRIBUTE = ^CRYPT_ATTRIBUTE;
  CRYPT_ATTRIBUTE = record
     pszObjId :LPSTR;
     cValue :DWORD;
     rgValue :PCRYPT_ATTR_BLOB;
  end;

type
  PCRYPT_ATTRIBUTES =^CRYPT_ATTRIBUTES;
  CRYPT_ATTRIBUTES = record
    cAttr  :DWORD; {IN}
    rgAttr :PCRYPT_ATTRIBUTE; {IN}
  end;

//+-------------------------------------------------------------------------
//  Attributes making up a Relative Distinguished Name (CERT_RDN)
//
//  The interpretation of the Value depends on the dwValueType.
//  See below for a list of the types.
//--------------------------------------------------------------------------

type
  PCERT_RDN_ATTR = ^CERT_RDN_ATTR;
  CERT_RDN_ATTR = record
    pszObjId :LPSTR;
    dwValueType :DWORD;
    Value :CERT_RDN_VALUE_BLOB;
  end;

//+-------------------------------------------------------------------------
//  CERT_RDN attribute Object Identifiers
//--------------------------------------------------------------------------
// Labeling attribute types:
const 
  szOID_COMMON_NAME          = '2.5.4.3';  // case-ignore string
  szOID_SUR_NAME             = '2.5.4.4';  // case-ignore string
  szOID_DEVICE_SERIAL_NUMBER = '2.5.4.5';  // printable string

// Geographic attribute types:
  szOID_COUNTRY_NAME            = '2.5.4.6';  // printable 2char string
  szOID_LOCALITY_NAME           = '2.5.4.7';  // case-ignore string
  szOID_STATE_OR_PROVINCE_NAME  = '2.5.4.8';  // case-ignore string
  szOID_STREET_ADDRESS          = '2.5.4.9';  // case-ignore string

// Organizational attribute types:
  szOID_ORGANIZATION_NAME          = '2.5.4.10';// case-ignore string
  szOID_ORGANIZATIONAL_UNIT_NAME   = '2.5.4.11'; // case-ignore string
  szOID_TITLE                      = '2.5.4.12'; // case-ignore string

// Explanatory attribute types:
  szOID_DESCRIPTION          = '2.5.4.13'; // case-ignore string
  szOID_SEARCH_GUIDE         = '2.5.4.14';
  szOID_BUSINESS_CATEGORY    = '2.5.4.15'; // case-ignore string

// Postal addressing attribute types:
  szOID_POSTAL_ADDRESS       = '2.5.4.16';
  szOID_POSTAL_CODE          = '2.5.4.17'; // case-ignore string
  szOID_POST_OFFICE_BOX      = '2.5.4.18'; // case-ignore string
  szOID_PHYSICAL_DELIVERY_OFFICE_NAME = '2.5.4.19'; // case-ignore string

// Telecommunications addressing attribute types:
  szOID_TELEPHONE_NUMBER              = '2.5.4.20'; // telephone number
  szOID_TELEX_NUMBER                  = '2.5.4.21';
  szOID_TELETEXT_TERMINAL_IDENTIFIER  = '2.5.4.22';
  szOID_FACSIMILE_TELEPHONE_NUMBER    = '2.5.4.23';
  szOID_X21_ADDRESS                   = '2.5.4.24'; // numeric string
  szOID_INTERNATIONAL_ISDN_NUMBER     = '2.5.4.25'; // numeric string
  szOID_REGISTERED_ADDRESS            = '2.5.4.26';
  szOID_DESTINATION_INDICATOR         = '2.5.4.27'; // printable string

// Preference attribute types:
  szOID_PREFERRED_DELIVERY_METHOD     = '2.5.4.28';

// OSI application attribute types:
  szOID_PRESENTATION_ADDRESS          = '2.5.4.29';
  szOID_SUPPORTED_APPLICATION_CONTEXT = '2.5.4.30';

// Relational application attribute types:
  szOID_MEMBER                        = '2.5.4.31';
  szOID_OWNER                         = '2.5.4.32';
  szOID_ROLE_OCCUPANT                 = '2.5.4.33';
  szOID_SEE_ALSO                      = '2.5.4.34';

// Security attribute types:
  szOID_USER_PASSWORD                 = '2.5.4.35';
  szOID_USER_CERTIFICATE              = '2.5.4.36';
  szOID_CA_CERTIFICATE                = '2.5.4.37';
  szOID_AUTHORITY_REVOCATION_LIST     = '2.5.4.38';
  szOID_CERTIFICATE_REVOCATION_LIST   = '2.5.4.39';
  szOID_CROSS_CERTIFICATE_PAIR        = '2.5.4.40';

// Undocumented attribute types???
//#define szOID_???                         '2.5.4.41'
  szOID_GIVEN_NAME                    = '2.5.4.42'; // case-ignore string
  szOID_INITIALS                      = '2.5.4.43'; // case-ignore string

// Pilot user attribute types:
  szOID_DOMAIN_COMPONENT      = '0.9.2342.19200300.100.1.25'; // IA5 string

//+-------------------------------------------------------------------------
//  CERT_RDN Attribute Value Types
//
//  For RDN_ENCODED_BLOB, the Value's CERT_RDN_VALUE_BLOB is in its encoded
//  representation. Otherwise, its an array of bytes.
//
//  For all CERT_RDN types, Value.cbData is always the number of bytes, not
//  necessarily the number of elements in the string. For instance,
//  RDN_UNIVERSAL_STRING is an array of ints (cbData == intCnt * 4) and
//  RDN_BMP_STRING is an array of unsigned shorts (cbData == ushortCnt * 2).
//

⌨️ 快捷键说明

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