cryptlib.h
来自「提供了很多种加密算法和CA认证及相关服务如CMP、OCSP等的开发」· C头文件 代码 · 共 1,540 行 · 第 1/5 页
H
1,540 行
CRYPT_IATTRIBUTE_PKIUSERINFO, /* Cert: Additional user info added to CRMF req.*/
CRYPT_IATTRIBUTE_AUTHCERTID, /* Cert: Authorising cert ID for a CRMF req.*/
CRYPT_IATTRIBUTE_ESSCERTID, /* Cert: ESSCertID */
CRYPT_IATTRIBUTE_RANDOM, /* Dev: Random data */
CRYPT_IATTRIBUTE_RANDOM_NZ, /* Dev: Nonzero random data */
CRYPT_IATTRIBUTE_RANDOM_QUALITY,/* Dev: Quality of random data */
CRYPT_IATTRIBUTE_SELFTEST, /* Dev: Perform self-test */
CRYPT_IATTRIBUTE_INCLUDESIGCERT,/* Env: Whether to include signing cert(s) */
CRYPT_IATTRIBUTE_CONFIGDATA, /* Keyset: Config information */
CRYPT_IATTRIBUTE_USERINDEX, /* Keyset: Index of users */
CRYPT_IATTRIBUTE_USERID, /* Keyset: User ID */
CRYPT_IATTRIBUTE_USERINFO, /* Keyset: User information */
CRYPT_IATTRIBUTE_TRUSTEDCERT, /* Keyset: First trusted cert */
CRYPT_IATTRIBUTE_TRUSTEDCERT_NEXT, /* Keyset: Successive trusted certs */
CRYPT_IATTRIBUTE_ENC_TIMESTAMP, /* Session: Encoded timestamp */
CRYPT_IATTRIBUTE_LAST,
/* Subrange values used internally for range checking. Because there are
so many cert attributes, we break them down into blocks to minimise
the number of values which change if a new one is added halfway
through */
CRYPT_CERTINFO_FIRST_CERTINFO = CRYPT_CERTINFO_SELFSIGNED - 1,
CRYPT_CERTINFO_LAST_CERTINFO = CRYPT_CERTINFO_PKIUSER_REVPASSWORD + 1,
CRYPT_CERTINFO_FIRST_NAME = CRYPT_CERTINFO_COUNTRYNAME - 1,
CRYPT_CERTINFO_LAST_NAME = CRYPT_CERTINFO_REGISTEREDID + 1,
CRYPT_CERTINFO_FIRST_EXTENSION = CRYPT_CERTINFO_AUTHORITYINFOACCESS - 1,
CRYPT_CERTINFO_LAST_EXTENSION = CRYPT_CERTINFO_SET_TUNNELINGALGID + 1,
CRYPT_CERTINFO_FIRST_CMS = CRYPT_CERTINFO_CMS_CONTENTTYPE - 1,
CRYPT_CERTINFO_LAST_CMS = CRYPT_CERTINFO_LAST,
CRYPT_SESSINFO_FIRST_SPECIFIC = CRYPT_SESSINFO_REQUEST,
CRYPT_SESSINFO_LAST_SPECIFIC = CRYPT_SESSINFO_CMP_REQUESTTYPE,
/* Older values used by the cert code - due to be phased out */
CRYPT_FIRST_PSEUDOINFO = CRYPT_CERTINFO_SELFSIGNED,
CRYPT_LAST_PSEUDOINFO = CRYPT_CERTINFO_TRUSTED_IMPLICIT,
CRYPT_FIRST_CERTINFO = CRYPT_CERTINFO_SERIALNUMBER,
CRYPT_LAST_CERTINFO = CRYPT_CERTINFO_REVOCATIONDATE,
CRYPT_FIRST_DN = CRYPT_CERTINFO_COUNTRYNAME,
CRYPT_LAST_DN = CRYPT_CERTINFO_COMMONNAME,
CRYPT_FIRST_GENERALNAME = CRYPT_CERTINFO_OTHERNAME_TYPEID,
CRYPT_LAST_GENERALNAME = CRYPT_CERTINFO_REGISTEREDID,
CRYPT_FIRST_EXTENSION = CRYPT_CERTINFO_AUTHORITYINFOACCESS,
CRYPT_LAST_EXTENSION = CRYPT_CERTINFO_SET_TUNNELINGALGID,
CRYPT_FIRST_CMS = CRYPT_CERTINFO_CMS_CONTENTTYPE,
CRYPT_LAST_CMS = CRYPT_CERTINFO_LAST - 1
#endif /* _CRYPT_DEFINED */
} CRYPT_ATTRIBUTE_TYPE;
/****************************************************************************
* *
* Attribute Subtypes and Related Values *
* *
****************************************************************************/
/* Flags for the X.509v3 keyUsage extension */
#define CRYPT_KEYUSAGE_NONE 0x000
#define CRYPT_KEYUSAGE_DIGITALSIGNATURE 0x001
#define CRYPT_KEYUSAGE_NONREPUDIATION 0x002
#define CRYPT_KEYUSAGE_KEYENCIPHERMENT 0x004
#define CRYPT_KEYUSAGE_DATAENCIPHERMENT 0x008
#define CRYPT_KEYUSAGE_KEYAGREEMENT 0x010
#define CRYPT_KEYUSAGE_KEYCERTSIGN 0x020
#define CRYPT_KEYUSAGE_CRLSIGN 0x040
#define CRYPT_KEYUSAGE_ENCIPHERONLY 0x080
#define CRYPT_KEYUSAGE_DECIPHERONLY 0x100
#define CRYPT_KEYUSAGE_LAST 0x200 /* Last possible value */
/* X.509v3 cRLReason codes */
enum { CRYPT_CRLREASON_UNSPECIFIED, CRYPT_CRLREASON_KEYCOMPROMISE,
CRYPT_CRLREASON_CACOMPROMISE, CRYPT_CRLREASON_AFFILIATIONCHANGED,
CRYPT_CRLREASON_SUPERSEDED, CRYPT_CRLREASON_CESSATIONOFOPERATION,
CRYPT_CRLREASON_CERTIFICATEHOLD, CRYPT_CRLREASON_REMOVEFROMCRL = 8,
CRYPT_CRLREASON_LAST };
/* X.509v3 CRL reason flags. These identify the same thing as the cRLReason
codes but allow for multiple reasons to be specified. Note that these
don't follow the X.509 naming since in that scheme the enumerated types
and bitflags have the same name */
#define CRYPT_CRLREASONFLAG_UNUSED 0x001
#define CRYPT_CRLREASONFLAG_KEYCOMPROMISE 0x002
#define CRYPT_CRLREASONFLAG_CACOMPROMISE 0x004
#define CRYPT_CRLREASONFLAG_AFFILIATIONCHANGED 0x008
#define CRYPT_CRLREASONFLAG_SUPERSEDED 0x010
#define CRYPT_CRLREASONFLAG_CESSATIONOFOPERATION 0x020
#define CRYPT_CRLREASONFLAG_CERTIFICATEHOLD 0x040
#define CRYPT_CRLREASONFLAG_LAST 0x080 /* Last poss.value */
/* X.509v3 CRL holdInstruction codes */
enum { CRYPT_HOLDINSTRUCTION_NONE, CRYPT_HOLDINSTRUCTION_CALLISSUER,
CRYPT_HOLDINSTRUCTION_REJECT, CRYPT_HOLDINSTRUCTION_PICKUPTOKEN,
CRYPT_HOLDINSTRUCTION_LAST };
/* Flags for the Netscape netscape-cert-type extension */
#define CRYPT_NS_CERTTYPE_SSLCLIENT 0x001
#define CRYPT_NS_CERTTYPE_SSLSERVER 0x002
#define CRYPT_NS_CERTTYPE_SMIME 0x004
#define CRYPT_NS_CERTTYPE_OBJECTSIGNING 0x008
#define CRYPT_NS_CERTTYPE_RESERVED 0x010
#define CRYPT_NS_CERTTYPE_SSLCA 0x020
#define CRYPT_NS_CERTTYPE_SMIMECA 0x040
#define CRYPT_NS_CERTTYPE_OBJECTSIGNINGCA 0x080
#define CRYPT_NS_CERTTYPE_LAST 0x100 /* Last possible value */
/* Flags for the SET certificate-type extension */
#define CRYPT_SET_CERTTYPE_CARD 0x001
#define CRYPT_SET_CERTTYPE_MER 0x002
#define CRYPT_SET_CERTTYPE_PGWY 0x004
#define CRYPT_SET_CERTTYPE_CCA 0x008
#define CRYPT_SET_CERTTYPE_MCA 0x010
#define CRYPT_SET_CERTTYPE_PCA 0x020
#define CRYPT_SET_CERTTYPE_GCA 0x040
#define CRYPT_SET_CERTTYPE_BCA 0x080
#define CRYPT_SET_CERTTYPE_RCA 0x100
#define CRYPT_SET_CERTTYPE_ACQ 0x200
#define CRYPT_SET_CERTTYPE_LAST 0x400 /* Last possible value */
/* CMS contentType values */
typedef enum { CRYPT_CONTENT_NONE, CRYPT_CONTENT_DATA,
CRYPT_CONTENT_SIGNEDDATA, CRYPT_CONTENT_ENVELOPEDDATA,
CRYPT_CONTENT_SIGNEDANDENVELOPEDDATA,
CRYPT_CONTENT_DIGESTEDDATA, CRYPT_CONTENT_ENCRYPTEDDATA,
CRYPT_CONTENT_COMPRESSEDDATA, CRYPT_CONTENT_TSTINFO,
CRYPT_CONTENT_SPCINDIRECTDATACONTEXT, CRYPT_CONTENT_LAST
} CRYPT_CONTENT_TYPE;
/* ESS securityClassification codes */
enum { CRYPT_CLASSIFICATION_UNMARKED, CRYPT_CLASSIFICATION_UNCLASSIFIED,
CRYPT_CLASSIFICATION_RESTRICTED, CRYPT_CLASSIFICATION_CONFIDENTIAL,
CRYPT_CLASSIFICATION_SECRET, CRYPT_CLASSIFICATION_TOP_SECRET,
CRYPT_CLASSIFICATION_LAST = 255 };
/* OCSP certificate status */
enum { CRYPT_OCSPSTATUS_NOTREVOKED, CRYPT_OCSPSTATUS_REVOKED,
CRYPT_OCSPSTATUS_UNKNOWN };
/* CMP status and extended status info values */
enum { CRYPT_CMPSTATUS_OK, CRYPT_CMPSTATUS_GRANTED = CRYPT_CMPSTATUS_OK,
CRYPT_CMPSTATUS_GRANTEDWITHMODS, CRYPT_CMPSTATUS_REJECTION,
CRYPT_CMPSTATUS_WAITING, CRYPT_CMPSTATUS_REVOCATIONWARNING,
CRYPT_CMPSTATUS_REVOCATIONNOTIFICATION,
CRYPT_CMPSTATUS_KEYUPDATEWARNING, CRYPT_CMPSTATUS_LAST };
#define CRYPT_CMPSTATUS_EXT_BADALG 0x001
#define CRYPT_CMPSTATUS_EXT_BADMESSAGECHECK 0x002
#define CRYPT_CMPSTATUS_EXT_BADREQUEST 0x004
#define CRYPT_CMPSTATUS_EXT_BADTIME 0x008
#define CRYPT_CMPSTATUS_EXT_BADCERTID 0x010
#define CRYPT_CMPSTATUS_EXT_BADDATAFORMAT 0x020
#define CRYPT_CMPSTATUS_EXT_WRONGAUTHORITY 0x040
#define CRYPT_CMPSTATUS_EXT_INCORRECTDATA 0x080
#define CRYPT_CMPSTATUS_EXT_MISSINGTIMESTAMP 0x100
#define CRYPT_CMPSTATUS_EXT_BADPOP 0x200
#define CRYPT_CMPSTATUS_EXT_LAST 0x400 /* Last possible value */
/* Protocol version information */
#define CRYPT_PROTOCOLVERSION_SSL 0 /* SSL 3.0 */
#define CRYPT_PROTOCOLVERSION_TLS 1 /* SSL/TLS 3.1 */
/* The certificate export format type, which defines the format in which a
certificate object is exported */
typedef enum {
CRYPT_CERTFORMAT_NONE, /* No certificate format */
CRYPT_CERTFORMAT_CERTIFICATE, /* DER-encoded certificate */
CRYPT_CERTFORMAT_CERTCHAIN, /* PKCS #7 certificate chain */
CRYPT_CERTFORMAT_TEXT_CERTIFICATE, /* base-64 wrapped cert */
CRYPT_CERTFORMAT_TEXT_CERTCHAIN, /* base-64 wrapped cert chain */
CRYPT_CERTFORMAT_LAST /* Last possible cert.format type */
#ifdef _CRYPT_DEFINED
/* Used only as an internal format for importing certs since MIME
encoding is an MUA/MTA function */
, CRYPT_ICERTFORMAT_SMIME_CERTIFICATE /* S/MIME cert.request or cert chain */
#endif /* CRYPT_DEFINED */
} CRYPT_CERTFORMAT_TYPE;
/* CMP request types */
typedef enum {
CRYPT_REQUESTTYPE_NONE, /* No request type */
CRYPT_REQUESTTYPE_INITIALISATION, /* Initialisation request */
CRYPT_REQUESTTYPE_INITIALIZATION = CRYPT_REQUESTTYPE_INITIALISATION,
CRYPT_REQUESTTYPE_CERTIFICATE, /* Certification request */
CRYPT_REQUESTTYPE_KEYUPDATE, /* Key update request */
CRYPT_REQUESTTYPE_REVOCATION, /* Cert revocation request */
CRYPT_REQUESTTYPE_LAST /* Last possible request type */
} CRYPT_REQUESTTYPE_TYPE;
/* Key ID types */
typedef enum {
CRYPT_KEYID_NONE, /* No key ID type */
CRYPT_KEYID_NAME, /* Key owner name */
CRYPT_KEYID_EMAIL, /* Key owner email address */
#ifdef _CRYPT_DEFINED
/* Internal key ID types */
CRYPT_IKEYID_ID, /* Internal ID (PKCS #11/15) */
CRYPT_IKEYID_KEYID, /* SubjectKeyIdentifier */
CRYPT_IKEYID_PGPKEYID, /* PGP key ID */
CRYPT_IKEYID_CERTID, /* Certificate hash */
CRYPT_IKEYID_ISSUERID, /* Hashed issuerAndSerialNumber */
CRYPT_IKEYID_ISSUERANDSERIALNUMBER, /* X.509 issuer and serial number */
#endif /* _CRYPT_DEFINED */
CRYPT_KEYID_LAST /* Last possible key ID type */
#ifdef _CRYPT_DEFINED
, CRYPT_KEYID_LAST_EXTERNAL = CRYPT_IKEYID_KEYID/* Last external key ID */
#endif /* _CRYPT_DEFINED */
} CRYPT_KEYID_TYPE;
/* The encryption object types */
typedef enum {
CRYPT_OBJECT_NONE, /* No object type */
CRYPT_OBJECT_ENCRYPTED_KEY, /* Conventionally encrypted key */
CRYPT_OBJECT_PKCENCRYPTED_KEY, /* PKC-encrypted key */
CRYPT_OBJECT_KEYAGREEMENT, /* Key agreement information */
CRYPT_OBJECT_SIGNATURE, /* Signature */
CRYPT_OBJECT_LAST /* Last possible object type */
} CRYPT_OBJECT_TYPE;
/* Object/attribute error type information */
typedef enum {
CRYPT_ERRTYPE_NONE, /* No error information */
CRYPT_ERRTYPE_ATTR_SIZE, /* Attribute data too small or large */
CRYPT_ERRTYPE_ATTR_VALUE, /* Attribute value is invalid */
CRYPT_ERRTYPE_ATTR_ABSENT, /* Required attribute missing */
CRYPT_ERRTYPE_ATTR_PRESENT, /* Non-allowed attribute present */
CRYPT_ERRTYPE_CONSTRAINT, /* Cert: Constraint violation in object */
CRYPT_ERRTYPE_ISSUERCONSTRAINT, /* Cert: Constraint viol.in issuing cert */
CRYPT_ERRTYPE_LAST /* Last possible error info type */
} CRYPT_ERRTYPE_TYPE;
/* Cert store management action type */
typedef enum {
CRYPT_CERTACTION_NONE, /* No log action */
CRYPT_CERTACTION_CREATE, /* Create cert store */
CRYPT_CERTACTION_CONNECT, /* Connect to cert store */
CRYPT_CERTACTION_DISCONNECT, /* Disconnect from cert store */
CRYPT_CERTACTION_ERROR, /* Error information */
CRYPT_CERTACTION_ADDUSER, /* Add PKI user */
CRYPT_CERTACTION_REQUEST_CERT, /* Cert request */
CRYPT_CERTACTION_REQUEST_RENEWAL,/* Cert renewal request */
CRYPT_CERTACTION_REQUEST_REVOCATION,/* Cert revocation request */
CRYPT_CERTACTION_CERT_CREATION, /* Cert creation */
CRYPT_CERTACTION_CERT_CREATION_COMPLETE,/* Confirmation of cert creation */
CRYPT_CERTACTION_CERT_CREATION_DROP, /* Cancellation of cert creation */
CRYPT_CERTACTION_CERT_CREATION_REVERSE, /* Cancel of creation w.revocation */
CRYPT_CERTACTION_RESTART_CLEANUP, /* Delete reqs after restart */
CRYPT_CERTACTION_RESTART_REVOKE_CERT, /* Complete revocation after restart */
CRYPT_CERTACTION_ISSUE_CERT, /* Cert issue */
CRYPT_CERTACTION_ISSUE_CRL, /* CRL issue */
CRYPT_CERTACTION_REVOKE_CERT, /* Cert revocation */
CRYPT_CERTACTION_EXPIRE_CERT, /* Cert expiry */
CRYPT_CERTACTION_CLEANUP, /* Clean up on restart */
CRYPT_CERTACTION_LAST /* Last possible cert store log action */
#ifdef _CRYPT_DEFINED
/* User-settable action types for cert mgmt.actions */
, CRYPT_CERTACTION_FIRST_USER = CRYPT_CERTACTION_ISSUE_CERT,
CRYPT_CERTACTION_LAST_USER = CRYPT_CERTACTION_LAST - 1
#endif /* _CRYPT_DEFINED */
} CRYPT_CERTACTION_TYPE;
/****************************************************************************
* *
* General Constants *
* *
****************************************************************************/
/* The maximum user key size - 2048 bits */
#define CRYPT_MAX_KEYSIZE 256
/* The maximum IV size - 256 bits */
#define CRYPT_MAX_IVSIZE 32
/* The maximum public-key component size - 4096 bits */
#define CRYPT_MAX_PKCSIZE 512
/* The maximum hash size - 256 bits */
#define CRYPT_MAX_HASHSIZE 32
/* The maximum size of a text string (eg key owner name) */
#define CRYPT_MAX_TEXTSIZE 64
/* A magic value indicating that the default setting for this parameter
should be used */
#define CRYPT_USE_DEFAULT -10
/* A magic value for unused parameters */
#define CRYPT_UNUSED -11
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?