📄 cryptlib.h
字号:
CRYPT_CRLREASON_CERTIFICATEHOLD, CRYPT_CRLREASON_REMOVEFROMCRL = 8,
CRYPT_CRLREASON_PRIVILEGEWITHDRAWN, CRYPT_CRLREASON_AACOMPROMISE,
CRYPT_CRLREASON_LAST, /* End of standard CRL reasons */
CRYPT_CRLREASON_NEVERVALID = 20, CRYPT_CRLEXTREASON_LAST };
/* X.509 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 names */
#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.509 CRL holdInstruction codes */
enum { CRYPT_HOLDINSTRUCTION_NONE, CRYPT_HOLDINSTRUCTION_CALLISSUER,
CRYPT_HOLDINSTRUCTION_REJECT, CRYPT_HOLDINSTRUCTION_PICKUPTOKEN,
CRYPT_HOLDINSTRUCTION_LAST };
/* Certificate checking compliance levels */
enum { CRYPT_COMPLIANCELEVEL_OBLIVIOUS, CRYPT_COMPLIANCELEVEL_REDUCED,
CRYPT_COMPLIANCELEVEL_STANDARD, CRYPT_COMPLIANCELEVEL_PKIX_PARTIAL,
CRYPT_COMPLIANCELEVEL_PKIX_FULL, CRYPT_COMPLIANCELEVEL_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_RTCSREQUEST, CRYPT_CONTENT_RTCSRESPONSE,
CRYPT_CONTENT_RTCSRESPONSE_EXT, 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 };
/* RTCS certificate status */
enum { CRYPT_CERTSTATUS_VALID, CRYPT_CERTSTATUS_NOTVALID,
CRYPT_CERTSTATUS_NONAUTHORITATIVE, CRYPT_CERTSTATUS_UNKNOWN };
/* OCSP revocation status */
enum { CRYPT_OCSPSTATUS_NOTREVOKED, CRYPT_OCSPSTATUS_REVOKED,
CRYPT_OCSPSTATUS_UNKNOWN };
/* The amount of detail to include in signatures when signing certificate
objects */
typedef enum {
CRYPT_SIGNATURELEVEL_NONE, /* Include only signature */
CRYPT_SIGNATURELEVEL_SIGNERCERT,/* Include signer cert */
CRYPT_SIGNATURELEVEL_ALL, /* Include all relevant info */
CRYPT_SIGNATURELEVEL_LAST /* Last possible sig.level type */
} CRYPT_SIGNATURELEVEL_TYPE;
/* 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_XML_CERTIFICATE, /* XML wrapped cert */
CRYPT_CERTFORMAT_XML_CERTCHAIN, /* XML wrapped cert chain */
#ifdef _CRYPT_DEFINED
CRYPT_ICERTFORMAT_CERTSET, /* SET OF Certificate */
CRYPT_ICERTFORMAT_CERTSEQUENCE, /* SEQUENCE OF Certificate */
CRYPT_ICERTFORMAT_SSL_CERTCHAIN,/* SSL certificate chain */
CRYPT_ICERTFORMAT_DATA, /* Non-signed object data */
#endif /* CRYPT_DEFINED */
CRYPT_CERTFORMAT_LAST /* Last possible cert.format type */
#ifdef _CRYPT_DEFINED
/* The following is used as an internal format specifier when the format
is autodetected, to tell the base64 decoding code to strip MIME
headers before the base64 data */
, CRYPT_ICERTFORMAT_SMIME_CERTIFICATE,/* S/MIME cert.request or cert chain */
CRYPT_CERTFORMAT_LAST_EXTERNAL = CRYPT_CERTFORMAT_XML_CERTCHAIN + 1
#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_PKIBOOT, /* PKIBoot 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_URI, /* Key owner URI */
CRYPT_KEYID_EMAIL = CRYPT_KEYID_URI, /* Synonym: owner email addr.*/
#ifdef _CRYPT_DEFINED
/* Internal key ID types */
CRYPT_IKEYID_KEYID, /* SubjectKeyIdentifier/internal ID */
CRYPT_IKEYID_PGPKEYID, /* PGP/OpenPGP key ID */
CRYPT_IKEYID_CERTID, /* Certificate hash */
CRYPT_IKEYID_ISSUERID, /* Hashed issuerAndSerialNumber */
CRYPT_IKEYID_ISSUERANDSERIALNUMBER, /* issuerAndSerialNumber */
#endif /* _CRYPT_DEFINED */
CRYPT_KEYID_LAST /* Last possible key ID type */
#ifdef _CRYPT_DEFINED
, CRYPT_KEYID_LAST_EXTERNAL = CRYPT_KEYID_URI + 1/* 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 cert management 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_DELETEUSER, /* Delete 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_CLEANUP
#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 (e.g.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
/* Whether the PKC key is a public or private key */
#define CRYPT_KEYTYPE_PRIVATE 0
#define CRYPT_KEYTYPE_PUBLIC 1
/* The type of information polling to perform to get random seed information */
#define CRYPT_RANDOM_FASTPOLL -10
#define CRYPT_RANDOM_SLOWPOLL -11
/* Cursor positioning codes for certificate/CRL extensions */
#define CRYPT_CURSOR_FIRST -20
#define CRYPT_CURSOR_PREVIOUS -21
#define CRYPT_CURSOR_NEXT -22
#define CRYPT_CURSOR_LAST -23
/* Keyset open options */
typedef enum {
CRYPT_KEYOPT_NONE, /* No options */
CRYPT_KEYOPT_READONLY, /* Open keyset in read-only mode */
CRYPT_KEYOPT_CREATE, /* Create a new keyset */
#ifdef _CRYPT_DEFINED
/* Internal keyset options */
CRYPT_IKEYOPT_EXCLUSIVEACCESS, /* As _NONE but open for exclusive access */
#endif /* _CRYPT_DEFINED */
CRYPT_KEYOPT_LAST /* Last possible key option type */
#ifdef _CRYPT_DEFINED
, CRYPT_KEYOPT_LAST_EXTERNAL = CRYPT_KEYOPT_CREATE + 1
/* Last external keyset option */
#endif /* _CRYPT_DEFINED */
} CRYPT_KEYOPT_TYPE;
/* The various cryptlib objects - these are just integer handles */
typedef int CRYPT_CERTIFICATE;
typedef int CRYPT_CONTEXT;
typedef int CRYPT_DEVICE;
typedef int CRYPT_ENVELOPE;
typedef int CRYPT_KEYSET;
typedef int CRYPT_SESSION;
typedef int CRYPT_USER;
/* Sometimes we don't know the exact type of a cryptlib object, so we use a
generic handle type to identify it */
typedef int CRYPT_HANDLE;
/****************************************
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -