📄 wcrypt2.pas
字号:
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).
//
// For CertDecodeName, two 0 bytes are always appended to the end of the
// string (ensures a CHAR or WCHAR string is null terminated).
// These added 0 bytes are't included in the BLOB.cbData.
//--------------------------------------------------------------------------
const
CERT_RDN_ANY_TYPE = 0;
CERT_RDN_ENCODED_BLOB = 1;
CERT_RDN_OCTET_STRING = 2;
CERT_RDN_NUMERIC_STRING = 3;
CERT_RDN_PRINTABLE_STRING = 4;
CERT_RDN_TELETEX_STRING = 5;
CERT_RDN_T61_STRING = 5;
CERT_RDN_VIDEOTEX_STRING = 6;
CERT_RDN_IA5_STRING = 7;
CERT_RDN_GRAPHIC_STRING = 8;
CERT_RDN_VISIBLE_STRING = 9;
CERT_RDN_ISO646_STRING = 9;
CERT_RDN_GENERAL_STRING = 10;
CERT_RDN_UNIVERSAL_STRING = 11;
CERT_RDN_INT4_STRING = 11;
CERT_RDN_BMP_STRING = 12;
CERT_RDN_UNICODE_STRING = 12;
// Macro to check that the dwValueType is a character string and not an
// encoded blob or octet string
function IS_CERT_RDN_CHAR_STRING(X :DWORD) :BOOL;
//+-------------------------------------------------------------------------
// A CERT_RDN consists of an array of the above attributes
//--------------------------------------------------------------------------
type
PCERT_RDN = ^CERT_RDN;
CERT_RDN = record
cRDNAttr :DWORD;
rgRDNAttr :PCERT_RDN_ATTR;
end;
//+-------------------------------------------------------------------------
// Information stored in a subject's or issuer's name. The information
// is represented as an array of the above RDNs.
//--------------------------------------------------------------------------
type
PCERT_NAME_INFO = ^CERT_NAME_INFO;
CERT_NAME_INFO = record
cRDN :DWORD;
rgRDN :PCERT_RDN;
end;
//+-------------------------------------------------------------------------
// Name attribute value without the Object Identifier
//
// The interpretation of the Value depends on the dwValueType.
// See above for a list of the types.
//--------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -