📄 cryptlib.bas
字号:
Attribute VB_Name = "CRYPTLIB"Option Explicit'*****************************************************************************'* *'* cryptlib External API Interface *'* Copyright Peter Gutmann 1997-2005 *'* *'* adapted for Visual Basic Version 6 by W. Gothier *'*****************************************************************************'-----------------------------------------------------------------------------'This file has been created automatically by a perl script from the file:''"cryptlib.h" dated Mon Jul 18 02:47:56 2005, filesize = 82445.''Please check twice that the file matches the version of cryptlib.h'in your cryptlib source! If this is not the right version, try to download an'update from "http://www.sogot.de/cryptlib/". If the filesize or file creation'date do not match, then please do not complain about problems.''Examples using Visual Basic are available on the same web address.''Published by W. Gothier, 'mailto: cryptlib@gothier.net if you find errors in this file.'-----------------------------------------------------------------------------'****************************************************************************'* *'* Algorithm and Object Types *'* *'****************************************************************************' Algorithm and mode types Public Enum CRYPT_ALGO_TYPE ' Algorithms ' No encryption CRYPT_ALGO_NONE ' No encryption ' Conventional encryption CRYPT_ALGO_DES ' DES CRYPT_ALGO_3DES ' Triple DES CRYPT_ALGO_IDEA ' IDEA CRYPT_ALGO_CAST ' CAST-128 CRYPT_ALGO_RC2 ' RC2 CRYPT_ALGO_RC4 ' RC4 CRYPT_ALGO_RC5 ' RC5 CRYPT_ALGO_AES ' AES CRYPT_ALGO_BLOWFISH ' Blowfish CRYPT_ALGO_SKIPJACK ' Skipjack ' Public-key encryption CRYPT_ALGO_DH = 100 ' Diffie-Hellman CRYPT_ALGO_RSA ' RSA CRYPT_ALGO_DSA ' DSA CRYPT_ALGO_ELGAMAL ' ElGamal CRYPT_ALGO_KEA ' KEA ' Hash algorithms CRYPT_ALGO_MD2 = 200 ' MD2 CRYPT_ALGO_MD4 ' MD4 CRYPT_ALGO_MD5 ' MD5 CRYPT_ALGO_SHA ' SHA/SHA1 CRYPT_ALGO_RIPEMD160 ' RIPE-MD 160 CRYPT_ALGO_SHA2 ' SHA2 (SHA-256/384/512) ' MAC's CRYPT_ALGO_HMAC_MD5 = 300 ' HMAC-MD5 CRYPT_ALGO_HMAC_SHA ' HMAC-SHA CRYPT_ALGO_HMAC_RIPEMD160 ' HMAC-RIPEMD-160 ' Vendors may want to use their own algorithms that aren't part of the' general cryptlib suite. The following values are for vendor-defined' algorithms, and can be used just like the named algorithm types (it's' up to the vendor to keep track of what _VENDOR1 actually corresponds' to) CRYPT_ALGO_LAST ' Last possible crypt algo value ' In order that we can scan through a range of algorithms with' cryptQueryCapability(), we define the following boundary points for' each algorithm class CRYPT_ALGO_FIRST_CONVENTIONAL = CRYPT_ALGO_DES CRYPT_ALGO_LAST_CONVENTIONAL = CRYPT_ALGO_DH - 1 CRYPT_ALGO_FIRST_PKC = CRYPT_ALGO_DH CRYPT_ALGO_LAST_PKC = CRYPT_ALGO_MD2 - 1 CRYPT_ALGO_FIRST_HASH = CRYPT_ALGO_MD2 CRYPT_ALGO_LAST_HASH = CRYPT_ALGO_HMAC_MD5 - 1 CRYPT_ALGO_FIRST_MAC = CRYPT_ALGO_HMAC_MD5 CRYPT_ALGO_LAST_MAC = CRYPT_ALGO_HMAC_MD5 + 99 ' End of mac algo.range End EnumPublic Enum CRYPT_MODE_TYPE ' Block cipher modes CRYPT_MODE_NONE ' No encryption mode CRYPT_MODE_ECB ' ECB CRYPT_MODE_CBC ' CBC CRYPT_MODE_CFB ' CFB CRYPT_MODE_OFB ' OFB CRYPT_MODE_LAST ' Last possible crypt mode value End Enum' Keyset subtypes Public Enum CRYPT_KEYSET_TYPE ' Keyset types CRYPT_KEYSET_NONE ' No keyset type CRYPT_KEYSET_FILE ' Generic flat file keyset CRYPT_KEYSET_HTTP ' Web page containing cert/CRL CRYPT_KEYSET_LDAP ' LDAP directory service CRYPT_KEYSET_ODBC ' Generic ODBC interface CRYPT_KEYSET_DATABASE ' Generic RDBMS interface CRYPT_KEYSET_PLUGIN ' Generic database plugin CRYPT_KEYSET_ODBC_STORE ' ODBC certificate store CRYPT_KEYSET_DATABASE_STORE ' Database certificate store CRYPT_KEYSET_PLUGIN_STORE ' Database plugin certificate store CRYPT_KEYSET_LAST ' Last possible keyset type End Enum' Device subtypes Public Enum CRYPT_DEVICE_TYPE ' Crypto device types CRYPT_DEVICE_NONE ' No crypto device CRYPT_DEVICE_FORTEZZA ' Fortezza card CRYPT_DEVICE_PKCS11 ' PKCS #11 crypto token CRYPT_DEVICE_CRYPTOAPI ' Microsoft CryptoAPI CRYPT_DEVICE_LAST ' Last possible crypto device type End Enum' Certificate subtypes Public Enum CRYPT_CERTTYPE_TYPE ' Certificate object types CRYPT_CERTTYPE_NONE ' No certificate type CRYPT_CERTTYPE_CERTIFICATE ' Certificate CRYPT_CERTTYPE_ATTRIBUTE_CERT ' Attribute certificate CRYPT_CERTTYPE_CERTCHAIN ' PKCS #7 certificate chain CRYPT_CERTTYPE_CERTREQUEST ' PKCS #10 certification request CRYPT_CERTTYPE_REQUEST_CERT ' CRMF certification request CRYPT_CERTTYPE_REQUEST_REVOCATION ' CRMF revocation request CRYPT_CERTTYPE_CRL ' CRL CRYPT_CERTTYPE_CMS_ATTRIBUTES ' CMS attributes CRYPT_CERTTYPE_RTCS_REQUEST ' RTCS request CRYPT_CERTTYPE_RTCS_RESPONSE ' RTCS response CRYPT_CERTTYPE_OCSP_REQUEST ' OCSP request CRYPT_CERTTYPE_OCSP_RESPONSE ' OCSP response CRYPT_CERTTYPE_PKIUSER ' PKI user information CRYPT_CERTTYPE_LAST ' Last possible cert.type End Enum' Envelope/data format subtypes Public Enum CRYPT_FORMAT_TYPE CRYPT_FORMAT_NONE ' No format type CRYPT_FORMAT_AUTO ' Deenv, auto-determine type CRYPT_FORMAT_CRYPTLIB ' cryptlib native format CRYPT_FORMAT_CMS ' PKCS #7 / CMS / S/MIME fmt. CRYPT_FORMAT_PKCS7 = CRYPT_FORMAT_CMS CRYPT_FORMAT_SMIME ' As CMS with MSG-style behaviour CRYPT_FORMAT_PGP ' PGP format CRYPT_FORMAT_LAST ' Last possible format type End Enum' Session subtypes Public Enum CRYPT_SESSION_TYPE CRYPT_SESSION_NONE ' No session type CRYPT_SESSION_SSH ' SSH CRYPT_SESSION_SSH_SERVER ' SSH server CRYPT_SESSION_SSL ' SSL/TLS CRYPT_SESSION_SSL_SERVER ' SSL/TLS server CRYPT_SESSION_RTCS ' RTCS CRYPT_SESSION_RTCS_SERVER ' RTCS server CRYPT_SESSION_OCSP ' OCSP CRYPT_SESSION_OCSP_SERVER ' OCSP server CRYPT_SESSION_TSP ' TSP CRYPT_SESSION_TSP_SERVER ' TSP server CRYPT_SESSION_CMP ' CMP CRYPT_SESSION_CMP_SERVER ' CMP server CRYPT_SESSION_SCEP ' SCEP CRYPT_SESSION_SCEP_SERVER ' SCEP server CRYPT_SESSION_CERTSTORE_SERVER ' HTTP cert store interface CRYPT_SESSION_LAST ' Last possible session type End Enum' User subtypes Public Enum CRYPT_USER_TYPE CRYPT_USER_NONE ' No user type CRYPT_USER_NORMAL ' Normal user CRYPT_USER_SO ' Security officer CRYPT_USER_CA ' CA user CRYPT_USER_LAST ' Last possible user type End Enum'****************************************************************************'* *'* Attribute Types *'* *'****************************************************************************' Attribute types. These are arranged in the following order:'' PROPERTY - Object property' ATTRIBUTE - Generic attributes' OPTION - Global or object-specific config.option' CTXINFO - Context-specific attribute' CERTINFO - Certificate-specific attribute' KEYINFO - Keyset-specific attribute' DEVINFO - Device-specific attribute' ENVINFO - Envelope-specific attribute' SESSINFO - Session-specific attribute' USERINFO - User-specific attribute Public Enum CRYPT_ATTRIBUTE_TYPE CRYPT_ATTRIBUTE_NONE ' Non-value ' Used internally CRYPT_PROPERTY_FIRST '******************* ' Object attributes '******************* ' Object properties CRYPT_PROPERTY_HIGHSECURITY ' Owned+non-forwardcount+locked CRYPT_PROPERTY_OWNER ' Object owner CRYPT_PROPERTY_FORWARDCOUNT ' No.of times object can be forwarded CRYPT_PROPERTY_LOCKED ' Whether properties can be chged/read CRYPT_PROPERTY_USAGECOUNT ' Usage count before object expires CRYPT_PROPERTY_NONEXPORTABLE ' Whether key is nonexp.from context ' Used internally CRYPT_PROPERTY_LAST CRYPT_GENERIC_FIRST ' Extended error information CRYPT_ATTRIBUTE_ERRORTYPE ' Type of last error CRYPT_ATTRIBUTE_ERRORLOCUS ' Locus of last error CRYPT_ATTRIBUTE_INT_ERRORCODE ' Low-level software-specific CRYPT_ATTRIBUTE_INT_ERRORMESSAGE ' error code and message ' Generic information CRYPT_ATTRIBUTE_CURRENT_GROUP ' Cursor mgt: Group in attribute list CRYPT_ATTRIBUTE_CURRENT ' Cursor mgt: Entry in attribute list CRYPT_ATTRIBUTE_CURRENT_INSTANCE ' Cursor mgt: Instance in attribute list CRYPT_ATTRIBUTE_BUFFERSIZE ' Internal data buffer size ' User internally CRYPT_GENERIC_LAST CRYPT_OPTION_FIRST = 100 '************************** ' Configuration attributes '************************** ' cryptlib information (read-only) CRYPT_OPTION_INFO_DESCRIPTION ' Text description CRYPT_OPTION_INFO_COPYRIGHT ' Copyright notice CRYPT_OPTION_INFO_MAJORVERSION ' Major release version CRYPT_OPTION_INFO_MINORVERSION ' Minor release version CRYPT_OPTION_INFO_STEPPING ' Release stepping ' Encryption options CRYPT_OPTION_ENCR_ALGO ' Encryption algorithm CRYPT_OPTION_ENCR_HASH ' Hash algorithm CRYPT_OPTION_ENCR_MAC ' MAC algorithm ' PKC options CRYPT_OPTION_PKC_ALGO ' Public-key encryption algorithm CRYPT_OPTION_PKC_KEYSIZE ' Public-key encryption key size ' Signature options CRYPT_OPTION_SIG_ALGO ' Signature algorithm CRYPT_OPTION_SIG_KEYSIZE ' Signature keysize ' Keying options CRYPT_OPTION_KEYING_ALGO ' Key processing algorithm CRYPT_OPTION_KEYING_ITERATIONS ' Key processing iterations ' Certificate options CRYPT_OPTION_CERT_SIGNUNRECOGNISEDATTRIBUTES ' Whether to sign unrecog.attrs CRYPT_OPTION_CERT_VALIDITY ' Certificate validity period
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -