cssmtype.h
来自「Next BIOS Source code : Extensible Firmw」· C头文件 代码 · 共 1,558 行 · 第 1/5 页
H
1,558 行
typedef enum cssm_cert_encoding {
CSSM_CERT_ENCODING_UNKNOWN = 0x00,
CSSM_CERT_ENCODING_CUSTOM = 0x01,
CSSM_CERT_ENCODING_BER = 0x02,
CSSM_CERT_ENCODING_DER = 0x03,
CSSM_CERT_ENCODING_NDR = 0x04
} CSSM_CERT_ENCODING, *CSSM_CERT_ENCODING_PTR;
typedef struct cssm_certgroup {
CSSM_CERT_TYPE CertType; /* Certificate domain/type identifier */
CSSM_CERT_ENCODING CertEncoding; /* certificate encoding */
uint32 NumCerts;
CSSM_DATA_PTR CertList;
void* reserved;
} CSSM_CERTGROUP, *CSSM_CERTGROUP_PTR;
/*
* This structure represents the type of format used for revocation lists.
*/
typedef enum cssm_crl_type {
CSSM_CRL_TYPE_UNKNOWN,
CSSM_CRL_TYPE_X_509v1,
CSSM_CRL_TYPE_X_509v2,
} CSSM_CRL_TYPE, *CSSM_CRL_TYPE_PTR;
/*
* This structure represents the encoding format used for revocation lists.
*/
typedef enum cssm_crl_encoding {
CSSM_CRL_ENCODING_UNKNOWN,
CSSM_CRL_ENCODING_CUSTOM,
CSSM_CRL_ENCODING_BER,
CSSM_CRL_ENCODING_DER,
CSSM_CRL_ENCODING_BLOOM
} CSSM_CRL_ENCODING, *CSSM_CRL_ENCODING_PTR;
#define CSSM_EVIDENCE_FORM_UNSPECIFIC 0x0
#define CSSM_EVIDENCE_FORM_CERT 0x1
#define CSSM_EVIDENCE_FORM_CRL 0x2
/*
* This structure contains certificates, CRLs and other information used as
* audit trail evidence.
*/
typedef struct cssm_evidence {
uint32 EvidenceForm; /* CSSM_EVIDENCE_FORM_CERT,CSSM_EVIDENCE_FORM_CRL */
union cssm_format_type {
CSSM_CERT_TYPE CertType;
CSSM_CRL_TYPE CrlType;
} FormatType ;
union cssm_format_encoding {
CSSM_CERT_ENCODING CertEncoding;
CSSM_CRL_ENCODING CrlEncoding;
} FormatEncoding;
CSSM_DATA_PTR Evidence; /* Evidence content */
} CSSM_EVIDENCE, *CSSM_EVIDENCE_PTR;
/*
* This enumerated list defines the application-level protocols that could be
* supported by a Certificate Library Module that communicates with Certification
* Authorities, Registration Authorities and other services, or by a Data Storage
* Library Module that communicates with service-based storage and directory
* services.
*/
typedef enum cssm_net_protocol {
CSSM_NET_PROTO_NONE = 0, /* local */
CSSM_NET_PROTO_CUSTOM = 1, /* proprietary implementation */
CSSM_NET_PROTO_UNSPECIFIED = 2, /* implementation default */
CSSM_NET_PROTO_LDAP = 3, /* light weight directory access protocol */
CSSM_NET_PROTO_LDAPS = 4, /* ldap/ssl where SSL initiates the connection */
CSSM_NET_PROTO_LDAPNS = 5, /* ldap where ldap negotiates an SSL session */
CSSM_NET_PROTO_X500DAP = 6, /* x.500 Directory access protocol */
CSSM_NET_PROTO_FTPDAP = 7, /* file transfer protocol for cert/crl fetch */
CSSM_NET_PROTO_FTPDAPS = 8, /* ftp/ssl where SSL initiates the connection */
CSSM_NET_PROTO_NDS = 9, /* Novell directory services */
CSSM_NET_PROTO_OCSP = 10, /* online certificate status protocol */
CSSM_NET_PROTO_PKIX3 = 11, /* the cert request protocol in PKIX3 */
CSSM_NET_PROTO_PKIX3S = 12, /* The ssl/tls derivative of PKIX3 */
CSSM_NET_PROTO_PKCS_HTTP = 13, /* PKCS client <=> CA protocol over HTTP */
CSSM_NET_PROTO_PKCS_HTTPS = 14, /* PKCS client <=> CA protocol over HTTPS */
} CSSM_NET_PROTOCOL;
typedef struct cssm_dl_db_handle {
CSSM_DL_HANDLE DLHandle;
CSSM_DB_HANDLE DBHandle;
} CSSM_DL_DB_HANDLE, *CSSM_DL_DB_HANDLE_PTR;
typedef struct cssm_dl_db_list {
uint32 NumHandles;
CSSM_DL_DB_HANDLE_PTR DLDBHandle;
} CSSM_DL_DB_LIST, *CSSM_DL_DB_LIST_PTR;
/* CSSM_DB_ATTRIBUTE_NAME_FORMAT */
typedef enum cssm_db_attribute_name_format {
CSSM_DB_ATTRIBUTE_NAME_AS_STRING = 0,
CSSM_DB_ATTRIBUTE_NAME_AS_OID = 1,
CSSM_DB_ATTRIBUTE_NAME_AS_BLOB = 2
} CSSM_DB_ATTRIBUTE_NAME_FORMAT, *CSSM_DB_ATTRIBUTE_NAME_FORMAT_PTR;
typedef enum cssm_db_attribute_format {
CSSM_DB_ATTRIBUTE_FORMAT_STRING = 0,
CSSM_DB_ATTRIBUTE_FORMAT_INTEGER = 1,
CSSM_DB_ATTRIBUTE_FORMAT_REAL = 2,
CSSM_DB_ATTRIBUTE_FORMAT_TIME = 3,
CSSM_DB_ATTRIBUTE_FORMAT_MONEY = 4,
CSSM_DB_ATTRIBUTE_FORMAT_BLOB = 5,
} CSSM_DB_ATTRIBUTE_FORMAT, *CSSM_DB_ATTRIBUTE_FORMAT_PTR;
/* CSSM_DB_ATTRIBUTE_INFO */
typedef struct cssm_db_attribute_info {
CSSM_DB_ATTRIBUTE_NAME_FORMAT AttributeNameFormat;
union cssm_db_attribute_label {
CSSM_DATA Name;
char * AttributeName; /* eg. "record label" */
CSSM_OID AttributeID; /* eg. CSSMOID_RECORDLABEL */
} Label;
CSSM_DB_ATTRIBUTE_FORMAT AttributeFormat;
} CSSM_DB_ATTRIBUTE_INFO, *CSSM_DB_ATTRIBUTE_INFO_PTR;
/* CSSM_DB_ATTRIBUTE_DATA */
typedef struct cssm_db_attribute_data {
CSSM_DB_ATTRIBUTE_INFO Info;
CSSM_DATA Value;
} CSSM_DB_ATTRIBUTE_DATA, *CSSM_DB_ATTRIBUTE_DATA_PTR;
/* ***** Record-related structures ***** */
/* CSSM_DB_RECORDTYPE */
typedef enum cssm_db_recordtype {
CSSM_DL_DB_RECORD_GENERIC = 0,
CSSM_DL_DB_RECORD_CERT = 1,
CSSM_DL_DB_RECORD_CRL = 2,
CSSM_DL_DB_RECORD_KEY = 3,
CSSM_DL_DB_RECORD_POLICY = 4
} CSSM_DB_RECORDTYPE;
/* CSSM_DB_XXXRECORD_SEMANTICS */
/* (XXX can be Cert, CRL, Policy, etc.) */
/* It is expected that there will be certain semantic types associated
with certs, CRLs, policies, etc.
Each type is expected to have a bit mask which is capable of describing
general information about how the record should be used. CRL, KEY,
and POLICY semantic bit masks will be defined as needed . */
/* CSSM_DB_CERTRECORD_SEMANTICS */
/* Optional semantic information associated with certificate records. */
#define CSSM_DB_CERT_USE_TRUSTED 0x00000001 /* application-defined as trusted */
#define CSSM_DB_CERT_USE_SYSTEM 0x00000002 /* the CSSM system cert */
#define CSSM_DB_CERT_USE_OWNER 0x00000004 /* private key owned by system user*/
#define CSSM_DB_CERT_USE_REVOKED 0x00000008 /* revoked cert - used w\ CRL APIs */
#define CSSM_DB_CERT_USE_SIGNING 0x00000010 /* use cert for signing only */
#define CSSM_DB_CERT_USE_PRIVACY 0x00000020 /* use cert for confidentiality only */
/* CSSM_DB_RECORD_ATTRIBUTE_INFO */
typedef struct cssm_db_record_attribute_info {
CSSM_DB_RECORDTYPE DataRecordType;
uint32 NumberOfAttributes;
CSSM_DB_ATTRIBUTE_INFO_PTR AttributeInfo;
} CSSM_DB_RECORD_ATTRIBUTE_INFO, *CSSM_DB_RECORD_ATTRIBUTE_INFO_PTR;
/* CSSM_DB_RECORD_ATTRIBUTE_DATA */
typedef struct cssm_db_record_attribute_data {
CSSM_DB_RECORDTYPE DataRecordType;
uint32 SemanticInformation;
uint32 NumberOfAttributes;
CSSM_DB_ATTRIBUTE_DATA_PTR AttributeData;
} CSSM_DB_RECORD_ATTRIBUTE_DATA, *CSSM_DB_RECORD_ATTRIBUTE_DATA_PTR;
/* CSSM_DB_RECORD_PARSING_FUNCTION_TABLE */
typedef struct cssm_db_record_parsing_fntable {
CSSM_DATA_PTR (CSSMAPI *RecordGetFirstFieldValue)
(CSSM_HANDLE Handle,
const CSSM_DATA_PTR Data,
const CSSM_OID_PTR DataField,
CSSM_HANDLE_PTR ResultsHandle,
uint32 *NumberOfMatchedFields);
CSSM_DATA_PTR (CSSMAPI *RecordGetNextFieldValue)
(CSSM_HANDLE Handle,
CSSM_HANDLE ResultsHandle);
CSSM_RETURN (CSSMAPI *RecordAbortQuery)
(CSSM_HANDLE Handle,
CSSM_HANDLE ResultsHandle);
} CSSM_DB_RECORD_PARSING_FNTABLE, *CSSM_DB_RECORD_PARSING_FNTABLE_PTR;
/* CSSM_DB_PARSING_INFO */
typedef struct cssm_db_parsing_module_info {
CSSM_DB_RECORDTYPE RecordType;
CSSM_SUBSERVICE_UID ModuleSubserviceUid;
} CSSM_DB_PARSING_MODULE_INFO, *CSSM_DB_PARSING_MODULE_INFO_PTR;
/* CSSM_DB_INDEX_TYPE */
typedef enum cssm_db_index_type {
CSSM_DB_INDEX_UNIQUE = 0,
CSSM_DB_INDEX_NONUNIQUE = 1
} CSSM_DB_INDEX_TYPE;
/* CSSM_DB_INDEXED_DATA_LOCATION */
typedef enum cssm_db_indexed_data_location {
CSSM_DB_INDEX_ON_UNKNOWN = 0,
CSSM_DB_INDEX_ON_ATTRIBUTE = 1,
CSSM_DB_INDEX_ON_RECORD = 2
} CSSM_DB_INDEXED_DATA_LOCATION;
/* CSSM_DB_INDEX_INFO */
typedef struct cssm_db_index_info {
CSSM_DB_INDEX_TYPE IndexType;
CSSM_DB_INDEXED_DATA_LOCATION IndexedDataLocation;
CSSM_DB_ATTRIBUTE_INFO Info;
} CSSM_DB_INDEX_INFO, *CSSM_DB_INDEX_INFO_PTR;
/* CSSM_DB_UNIQUE_RECORD */
typedef struct cssm_db_unique_record {
CSSM_DB_INDEX_INFO RecordLocator;
CSSM_DATA RecordIdentifier;
} CSSM_DB_UNIQUE_RECORD, *CSSM_DB_UNIQUE_RECORD_PTR;
/* CSSM_DB_RECORD_INDEX_INFO */
typedef struct cssm_db_record_indexinfo {
CSSM_DB_RECORDTYPE DataRecordType;
uint32 NumberOfIndexes;
CSSM_DB_INDEX_INFO_PTR IndexInfo;
} CSSM_DB_RECORD_INDEX_INFO, *CSSM_DB_RECORD_INDEX_INFO_PTR;
/* CSSM_DB_ACCESS_TYPE */
typedef uint32 CSSM_DB_ACCESS_TYPE, *CSSM_DB_ACCESS_TYPE_PTR;
#define CSSM_DB_ACCESS_READ 0x00001
#define CSSM_DB_ACCESS_WRITE 0x00002
#define CSSM_DB_ACCESS_PRIVILEGED 0x00004 /* versus user mode */
#define CSSM_DB_ACCESS_ASYNCHRONOUS 0x00008 /* versus synchronous */
/* CSSM_DBINFO */
typedef struct cssm_dbInfo {
/* meta information about each record type stored in this data store
including meta information about record attributes and indexes */
uint32 NumberOfRecordTypes;
CSSM_DB_PARSING_MODULE_INFO_PTR DefaultParsingModules;
CSSM_DB_RECORD_ATTRIBUTE_INFO_PTR RecordAttributeNames;
CSSM_DB_RECORD_INDEX_INFO_PTR RecordIndexes;
/* access restrictions for opening this data store */
CSSM_USER_AUTHENTICATION_MECHANISM AuthenticationMechanism;
/* transparent integrity checking options for this data store */
CSSM_BOOL RecordSigningImplemented;
CSSM_DATA SigningCertificate;
CSSM_SUBSERVICE_UID SigningCspSubserviceUid;
/* additional information */
CSSM_BOOL IsLocal;
char *AccessPath; /* URL, dir path, etc */
void *Reserved;
} CSSM_DBINFO, *CSSM_DBINFO_PTR;
/* CSSM_DB_OPERATOR */
typedef enum cssm_db_operator {
CSSM_DB_EQUAL = 0,
CSSM_DB_NOT_EQUAL = 1,
CSSM_DB_APPROX_EQUAL = 2,
CSSM_DB_LESS_THAN = 3,
CSSM_DB_GREATER_THAN = 4,
CSSM_DB_EQUALS_INITIAL_SUBSTRING = 5,
CSSM_DB_EQUALS_ANY_SUBSTRING = 6,
CSSM_DB_EQUALS_FINAL_SUBSTRING = 7,
CSSM_DB_EXISTS = 8
} CSSM_DB_OPERATOR, *CSSM_DB_OPERATOR_PTR;
/* CSSM_DB_CONJUNCTIVE */
typedef enum cssm_db_conjunctive{
CSSM_DB_NONE = 0,
CSSM_DB_AND = 1,
CSSM_DB_OR = 2
} CSSM_DB_CONJUNCTIVE, *CSSM_DB_CONJUNCTIVE_PTR;
/* CSSM_SELECTION_PREDICATE */
typedef struct cssm_selection_predicate {
CSSM_DB_OPERATOR DbOperator;
CSSM_DB_ATTRIBUTE_DATA Attribute;
} CSSM_SELECTION_PREDICATE, *CSSM_SELECTION_PREDICATE_PTR;
#define CSSM_QUERY_TIMELIMIT_NONE 0
#define CSSM_QUERY_SIZELIMIT_NONE 0
/* CSSM_QUERY_LIMITS */
typedef struct cssm_query_limits {
uint32 TimeLimit; /* in seconds */
uint32 SizeLimit; /* max. number of records to return */
} CSSM_QUERY_LIMITS, *CSSM_QUERY_LIMITS_PTR;
typedef uint32 CSSM_QUERY_FLAGS;
#define CSSM_QUERY_RETURN_DATA 0x1 /* On = Output in common data format
Off = Output in DL native format */
/* CSSM_QUERY */
typedef struct cssm_query {
CSSM_DB_RECORDTYPE RecordType;
CSSM_DB_CONJUNCTIVE Conjunctive;
uint32 NumSelectionPredicates;
CSSM_SELECTION_PREDICATE_PTR SelectionPredicate;
CSSM_QUERY_LIMITS QueryLimits;
CSSM_QUERY_FLAGS QueryFlags;
} CSSM_QUERY, *CSSM_QUERY_PTR;
/* CSSM_DLTYPE */
typedef enum cssm_dltype {
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?