#include "MDSSchema.h"
#include <Security/mds_schema.h>
#include <cstring>
namespace Security
{
#define DEFINE_META_TABLES 0
#define NO_NVP NULL
static const CSSM_DB_ATTRIBUTE_INFO objectAttrs[] = {
DB_ATTRIBUTE(ModuleID, STRING),
DB_ATTRIBUTE(Manifest, BLOB),
DB_ATTRIBUTE(ModuleName, STRING),
DB_ATTRIBUTE(Path, STRING),
DB_ATTRIBUTE(ProductVersion, STRING),
DB_ATTRIBUTE(BuiltIn, UINT32),
};
static const CSSM_DB_INDEX_INFO objectIndex[] = {
UNIQUE_INDEX_ATTRIBUTE(ModuleID, STRING)
};
const RelationInfo kObjectRelation =
RELATION_INFO(MDS_OBJECT_RECORDTYPE,
objectAttrs,
NO_NVP, objectIndex);
static const CSSM_DB_ATTRIBUTE_INFO cssmAttrs[] =
{
DB_ATTRIBUTE(ModuleID, STRING),
DB_ATTRIBUTE(CDSAVersion, STRING),
DB_ATTRIBUTE(Vendor, STRING),
DB_ATTRIBUTE(Desc, STRING),
DB_ATTRIBUTE(NativeServices, UINT32),
};
static const MDSNameValuePair *cssmNvp[] = {
NULL, NULL, NULL, NULL,
MDSServiceNames
};
static const CSSM_DB_INDEX_INFO cssmIndex[] =
{
UNIQUE_INDEX_ATTRIBUTE(ModuleID, STRING)
};
static const CSSM_DB_ATTRIBUTE_INFO krmmAttrs[] =
{
DB_ATTRIBUTE(CSSMGuid, STRING),
DB_ATTRIBUTE(PolicyType, UINT32),
DB_ATTRIBUTE(PolicyName, STRING),
DB_ATTRIBUTE(PolicyPath, STRING),
DB_ATTRIBUTE(PolicyInfo, BLOB),
DB_ATTRIBUTE(PolicyManifest, BLOB),
DB_ATTRIBUTE(ModuleID, STRING),
};
static const MDSNameValuePair *krmmNvp[] = {
NULL, MDSKrPolicyTypeNames, NULL, NULL,
NULL, NULL,
};
static const CSSM_DB_INDEX_INFO krmmIndex[] =
{
UNIQUE_INDEX_ATTRIBUTE(CSSMGuid, STRING),
UNIQUE_INDEX_ATTRIBUTE(PolicyType, UINT32)
};
static const CSSM_DB_ATTRIBUTE_INFO emmAttrs[] =
{
DB_ATTRIBUTE(ModuleID, STRING),
DB_ATTRIBUTE(Manifest, BLOB),
DB_ATTRIBUTE(ModuleName, STRING),
DB_ATTRIBUTE(Path, STRING),
DB_ATTRIBUTE(CDSAVersion, STRING),
DB_ATTRIBUTE(EMMSpecVersion, STRING),
DB_ATTRIBUTE(Desc, STRING),
DB_ATTRIBUTE(PolicyStmt, BLOB),
DB_ATTRIBUTE(EmmVersion, STRING),
DB_ATTRIBUTE(EmmVendor, STRING),
DB_ATTRIBUTE(EmmType, UINT32), };
static const CSSM_DB_INDEX_INFO emmIndex[] =
{
UNIQUE_INDEX_ATTRIBUTE(ModuleID, STRING)
};
static const CSSM_DB_ATTRIBUTE_INFO emmPrimaryAttrs[] =
{
DB_ATTRIBUTE(ModuleID, STRING),
DB_ATTRIBUTE(SSID, UINT32),
DB_ATTRIBUTE(ServiceType, UINT32),
DB_ATTRIBUTE(Manifest, BLOB),
DB_ATTRIBUTE(ModuleName, STRING),
DB_ATTRIBUTE(ProductVersion, STRING),
DB_ATTRIBUTE(Vendor, STRING),
DB_ATTRIBUTE(SampleTypes, MULTI_UINT32),
DB_ATTRIBUTE(AclSubjectTypes, MULTI_UINT32),
DB_ATTRIBUTE(AuthTags, MULTI_UINT32),
DB_ATTRIBUTE(EmmSpecVersion, STRING),
};
static const MDSNameValuePair *emmPrimaryNvp[] = {
NULL, NULL, NULL, NULL,
NULL, NULL, NULL, MDSSampleTypeNames,
MDSAclSubjectTypeNames,
MDSAclAuthTagNames,
NULL
};
static const CSSM_DB_INDEX_INFO emmPrimaryIndex[] =
{
UNIQUE_INDEX_ATTRIBUTE(ModuleID, STRING),
UNIQUE_INDEX_ATTRIBUTE(SSID, UINT32),
UNIQUE_INDEX_ATTRIBUTE(ServiceType, UINT32)
};
static const CSSM_DB_ATTRIBUTE_INFO commonAttrs[] =
{
DB_ATTRIBUTE(ModuleID, STRING),
DB_ATTRIBUTE(Manifest, BLOB),
DB_ATTRIBUTE(ModuleName, STRING),
DB_ATTRIBUTE(Path, STRING),
DB_ATTRIBUTE(CDSAVersion, STRING),
DB_ATTRIBUTE(Desc, STRING),
DB_ATTRIBUTE(DynamicFlag, UINT32),
DB_ATTRIBUTE(MultiThreadFlag, UINT32),
DB_ATTRIBUTE(ServiceMask, UINT32),
};
static const MDSNameValuePair *commonNvp[] = {
NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL,
MDSServiceNames
};
static const CSSM_DB_INDEX_INFO commonIndex[] =
{
UNIQUE_INDEX_ATTRIBUTE(ModuleID, STRING)
};
static const CSSM_DB_ATTRIBUTE_INFO cspPrimaryAttrs[] =
{
DB_ATTRIBUTE(ModuleID, STRING),
DB_ATTRIBUTE(SSID, UINT32),
DB_ATTRIBUTE(Manifest, BLOB),
DB_ATTRIBUTE(ModuleName, STRING),
DB_ATTRIBUTE(ProductVersion, STRING),
DB_ATTRIBUTE(Vendor, STRING),
DB_ATTRIBUTE(CspType, UINT32),
DB_ATTRIBUTE(CspFlags, UINT32),
DB_ATTRIBUTE(CspCustomFlags, UINT32),
DB_ATTRIBUTE(UseeTags, MULTI_UINT32),
DB_ATTRIBUTE(SampleTypes, MULTI_UINT32),
DB_ATTRIBUTE(AclSubjectTypes, MULTI_UINT32),
DB_ATTRIBUTE(AuthTags, MULTI_UINT32),
};
static const MDSNameValuePair *cspPrimaryNvp[] = {
NULL, NULL, NULL, NULL,
NULL, NULL,
MDSCspTypeNames,
MDSCspFlagsNames,
NULL,
MDSUseeTagsNames,
MDSSampleTypeNames,
MDSAclSubjectTypeNames,
MDSAclAuthTagNames
};
static const CSSM_DB_INDEX_INFO cspPrimaryIndex[] =
{
UNIQUE_INDEX_ATTRIBUTE(ModuleID, STRING),
UNIQUE_INDEX_ATTRIBUTE(SSID, UINT32)
};
static const CSSM_DB_ATTRIBUTE_INFO cspCapabilitiesAttrs[] =
{
DB_ATTRIBUTE(ModuleID, STRING),
DB_ATTRIBUTE(SSID, UINT32),
DB_ATTRIBUTE(UseeTag, UINT32),
DB_ATTRIBUTE(ContextType, UINT32),
DB_ATTRIBUTE(AlgType, UINT32),
DB_ATTRIBUTE(GroupId, UINT32),
DB_ATTRIBUTE(AttributeType, UINT32),
DB_ATTRIBUTE(AttributeValue, MULTI_UINT32),
DB_ATTRIBUTE(Description, STRING),
};
static const MDSNameValuePair *cspCapabilitiesNvp[] = {
NULL,
NULL,
MDSUseeTagsNames,
MDSContextTypeNames,
MDSAlgorithmNames,
NULL,
MDSAttributeTypeNames,
NULL,
NULL
};
static const CSSM_DB_INDEX_INFO cspCapabilitiesIndex[] =
{
UNIQUE_INDEX_ATTRIBUTE(ModuleID, STRING),
UNIQUE_INDEX_ATTRIBUTE(SSID, UINT32),
UNIQUE_INDEX_ATTRIBUTE(UseeTag, UINT32),
UNIQUE_INDEX_ATTRIBUTE(ContextType, UINT32),
UNIQUE_INDEX_ATTRIBUTE(AlgType, UINT32),
UNIQUE_INDEX_ATTRIBUTE(GroupId, UINT32),
UNIQUE_INDEX_ATTRIBUTE(AttributeType, STRING)
};
static const CSSM_DB_ATTRIBUTE_INFO kAttributesCSPCapabilitiesDict1[] =
{
DB_ATTRIBUTE(ModuleID, STRING),
DB_ATTRIBUTE(SSID, UINT32),
};
const RelationInfo CSPCapabilitiesDict1RelInfo =
RELATION_INFO(
MDS_CDSADIR_CSP_CAPABILITY_RECORDTYPE, kAttributesCSPCapabilitiesDict1,
NULL, NULL);
static const CSSM_DB_ATTRIBUTE_INFO kAttributesCSPCapabilitiesDict2[] =
{
DB_ATTRIBUTE(AlgType, UINT32),
DB_ATTRIBUTE(ContextType, UINT32),
DB_ATTRIBUTE(UseeTag, UINT32),
DB_ATTRIBUTE(Description, STRING),
};
static const MDSNameValuePair *CSPCapabilitiesDict2Nvp[] = {
MDSAlgorithmNames,
MDSContextTypeNames,
MDSUseeTagsNames,
NULL
};
const RelationInfo CSPCapabilitiesDict2RelInfo =
RELATION_INFO(
MDS_CDSADIR_CSP_CAPABILITY_RECORDTYPE, kAttributesCSPCapabilitiesDict2,
CSPCapabilitiesDict2Nvp,
NULL);
static const CSSM_DB_ATTRIBUTE_INFO kAttributesCSPCapabilitiesDict3[] =
{
DB_ATTRIBUTE(AttributeType, UINT32),
DB_ATTRIBUTE(AttributeValue, MULTI_UINT32),
};
static const MDSNameValuePair *CSPCapabilitiesDict3Nvp[] = {
MDSAttributeTypeNames,
NULL
};
const RelationInfo CSPCapabilitiesDict3RelInfo =
RELATION_INFO(
MDS_CDSADIR_CSP_CAPABILITY_RECORDTYPE, kAttributesCSPCapabilitiesDict3,
CSPCapabilitiesDict3Nvp,
NULL);
static const CSSM_DB_ATTRIBUTE_INFO cspEncapsulatedAttrs[] =
{
DB_ATTRIBUTE(ModuleID, STRING),
DB_ATTRIBUTE(SSID, UINT32),
DB_ATTRIBUTE(ProductDesc, STRING),
DB_ATTRIBUTE(ProductVendor, STRING),
DB_ATTRIBUTE(ProductVersion, STRING),
DB_ATTRIBUTE(ProductFlags, UINT32),
DB_ATTRIBUTE(CustomFlags, UINT32),
DB_ATTRIBUTE(StandardDesc, STRING),
DB_ATTRIBUTE(StandardVersion, STRING),
DB_ATTRIBUTE(ReaderDesc, STRING),
DB_ATTRIBUTE(ReaderVendor, STRING),
DB_ATTRIBUTE(ReaderVersion, STRING),
DB_ATTRIBUTE(ReaderFirmwareVersion, STRING),
DB_ATTRIBUTE(ReaderFlags, UINT32),
DB_ATTRIBUTE(ReaderCustomFlags, UINT32),
DB_ATTRIBUTE(ReaderSerialNumber, STRING),
};
static const MDSNameValuePair *cspEncapsulatedNvp[] = {
NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL,
NULL, MDSCspReaderFlagsNames, NULL, NULL
};
static const CSSM_DB_INDEX_INFO cspEncapsulatedIndex[] =
{
UNIQUE_INDEX_ATTRIBUTE(ModuleID, STRING),
UNIQUE_INDEX_ATTRIBUTE(SSID, UINT32)
};
static const CSSM_DB_ATTRIBUTE_INFO cspSmartCardAttrs[] =
{
DB_ATTRIBUTE(ModuleID, STRING),
DB_ATTRIBUTE(SSID, UINT32),
DB_ATTRIBUTE(ScDesc, STRING),
DB_ATTRIBUTE(ScVendor, STRING),
DB_ATTRIBUTE(ScVersion, STRING),
DB_ATTRIBUTE(ScFirmwareVersion, STRING),
DB_ATTRIBUTE(ScFlags, UINT32),
DB_ATTRIBUTE(ScCustomFlags, UINT32),
DB_ATTRIBUTE(ScSerialNumber, STRING),
};
static const MDSNameValuePair *cspSmartCardNvp[] = {
NULL, NULL, NULL, NULL,
NULL, NULL, MDSCspScFlagsNames, NULL,
NULL,
};
static const CSSM_DB_INDEX_INFO cspSmartCardIndex[] =
{
UNIQUE_INDEX_ATTRIBUTE(ModuleID, STRING),
UNIQUE_INDEX_ATTRIBUTE(SSID, UINT32),
UNIQUE_INDEX_ATTRIBUTE(ScDesc, STRING),
UNIQUE_INDEX_ATTRIBUTE(ScVendor, STRING),
UNIQUE_INDEX_ATTRIBUTE(ScVersion, STRING),
UNIQUE_INDEX_ATTRIBUTE(ScFirmwareVersion, STRING),
UNIQUE_INDEX_ATTRIBUTE(ScFlags, UINT32)
};
static const CSSM_DB_ATTRIBUTE_INFO dlPrimaryAttrs[] =
{
DB_ATTRIBUTE(ModuleID, STRING),
DB_ATTRIBUTE(SSID, UINT32),
DB_ATTRIBUTE(Manifest, BLOB),
DB_ATTRIBUTE(ModuleName, STRING),
DB_ATTRIBUTE(ProductVersion, STRING),
DB_ATTRIBUTE(Vendor, STRING),
DB_ATTRIBUTE(DLType, UINT32),
DB_ATTRIBUTE(QueryLimitsFlag, UINT32), DB_ATTRIBUTE(SampleTypes, MULTI_UINT32),
DB_ATTRIBUTE(AclSubjectTypes, MULTI_UINT32),
DB_ATTRIBUTE(AuthTags, MULTI_UINT32),
DB_ATTRIBUTE(ConjunctiveOps, MULTI_UINT32),
DB_ATTRIBUTE(RelationalOps, MULTI_UINT32),
};
static const MDSNameValuePair *dlPrimaryNvp[] = {
NULL, NULL, NULL, NULL,
NULL, NULL, MDSDlTypeNames, NULL,
MDSSampleTypeNames,
MDSAclSubjectTypeNames,
MDSAclAuthTagNames,
MDSDbConjunctiveNames,
MDSDbOperatorNames
};
static const CSSM_DB_INDEX_INFO dlPrimaryIndex[] =
{
UNIQUE_INDEX_ATTRIBUTE(ModuleID, STRING),
UNIQUE_INDEX_ATTRIBUTE(SSID, UINT32)
};
static const CSSM_DB_ATTRIBUTE_INFO dlEncapsulatedAttrs[] =
{
DB_ATTRIBUTE(ModuleID, STRING),
DB_ATTRIBUTE(SSID, UINT32),
DB_ATTRIBUTE(ProductDesc, STRING),
DB_ATTRIBUTE(ProductVendor, STRING),
DB_ATTRIBUTE(ProductVersion, STRING),
DB_ATTRIBUTE(ProductFlags, UINT32),
DB_ATTRIBUTE(StandardDesc, STRING),
DB_ATTRIBUTE(StandardVersion, STRING),
DB_ATTRIBUTE(Protocol, UINT32),
DB_ATTRIBUTE(RetrievalMode, UINT32),
};
static const MDSNameValuePair *dlEncapsulatedNvp[] = {
NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL,
MDSNetProtocolNames,
MDSDbRetrievalModeNames
};
static const CSSM_DB_INDEX_INFO dlEncapsulatedIndex[] =
{
UNIQUE_INDEX_ATTRIBUTE(ModuleID, STRING),
UNIQUE_INDEX_ATTRIBUTE(SSID, UINT32)
};
static const CSSM_DB_ATTRIBUTE_INFO clPrimaryAttrs[] =
{
DB_ATTRIBUTE(ModuleID, STRING),
DB_ATTRIBUTE(SSID, UINT32),
DB_ATTRIBUTE(Manifest, BLOB),
DB_ATTRIBUTE(ModuleName, STRING),
DB_ATTRIBUTE(ProductVersion, STRING),
DB_ATTRIBUTE(Vendor, STRING),
DB_ATTRIBUTE(CertTypeFormat, UINT32),
DB_ATTRIBUTE(CrlTypeFormat, UINT32),
DB_ATTRIBUTE(CertFieldNames, BLOB),
DB_ATTRIBUTE(BundleTypeFormat, MULTI_UINT32),
DB_ATTRIBUTE(XlationTypeFormat, MULTI_UINT32),
DB_ATTRIBUTE(TemplateFieldNames, BLOB),
};
static const MDSNameValuePair *clPrimaryNvp[] = {
NULL, NULL, NULL, NULL,
NULL, NULL, MDSCertTypeNames, MDSCrlTypeNames,
NULL,
MDSCertBundleTypeNames,
MDSCertTypeNames, NULL
};
static const CSSM_DB_INDEX_INFO clPrimaryIndex[] =
{
UNIQUE_INDEX_ATTRIBUTE(ModuleID, STRING),
UNIQUE_INDEX_ATTRIBUTE(SSID, UINT32)
};
static const CSSM_DB_ATTRIBUTE_INFO clEncapsulatedAttrs[] =
{
DB_ATTRIBUTE(ModuleID, STRING),
DB_ATTRIBUTE(SSID, UINT32),
DB_ATTRIBUTE(ProductDesc, STRING),
DB_ATTRIBUTE(ProductVendor, STRING),
DB_ATTRIBUTE(ProductVersion, STRING),
DB_ATTRIBUTE(ProductFlags, UINT32),
DB_ATTRIBUTE(StandardDesc, STRING),
DB_ATTRIBUTE(StandardVersion, STRING),
};
static const CSSM_DB_INDEX_INFO clEncapsulatedIndex[] =
{
UNIQUE_INDEX_ATTRIBUTE(ModuleID, STRING),
UNIQUE_INDEX_ATTRIBUTE(SSID, UINT32)
};
static const CSSM_DB_ATTRIBUTE_INFO tpPrimaryAttrs[] =
{
DB_ATTRIBUTE(ModuleID, STRING),
DB_ATTRIBUTE(SSID, UINT32),
DB_ATTRIBUTE(Manifest, BLOB),
DB_ATTRIBUTE(ModuleName, STRING),
DB_ATTRIBUTE(ProductVersion, STRING),
DB_ATTRIBUTE(Vendor, STRING),
DB_ATTRIBUTE(CertTypeFormat, UINT32),
DB_ATTRIBUTE(SampleTypes, MULTI_UINT32),
DB_ATTRIBUTE(AclSubjectTypes, MULTI_UINT32),
DB_ATTRIBUTE(AuthTags, MULTI_UINT32),
};
static const MDSNameValuePair *tpPrimaryNvp[] = {
NULL, NULL, NULL, NULL,
NULL, NULL,
MDSCertTypeNames,
MDSSampleTypeNames,
MDSAclSubjectTypeNames,
MDSAclAuthTagNames,
};
static const CSSM_DB_INDEX_INFO tpPrimaryIndex[] =
{
UNIQUE_INDEX_ATTRIBUTE(ModuleID, STRING),
UNIQUE_INDEX_ATTRIBUTE(SSID, UINT32)
};
static const CSSM_DB_ATTRIBUTE_INFO tpPolicyOidsAttrs[] =
{
DB_ATTRIBUTE(ModuleID, STRING),
DB_ATTRIBUTE(SSID, UINT32),
DB_ATTRIBUTE(OID, BLOB),
DB_ATTRIBUTE(Value, BLOB),
};
static const CSSM_DB_INDEX_INFO tpPolicyOidsIndex[] =
{
UNIQUE_INDEX_ATTRIBUTE(ModuleID, STRING),
UNIQUE_INDEX_ATTRIBUTE(SSID, UINT32),
UNIQUE_INDEX_ATTRIBUTE(OID, BLOB)
};
static const CSSM_DB_ATTRIBUTE_INFO tpPolicyOidsDict1[] =
{
DB_ATTRIBUTE(ModuleID, STRING),
DB_ATTRIBUTE(SSID, UINT32),
};
const RelationInfo TpPolicyOidsDict1RelInfo =
RELATION_INFO(
MDS_CDSADIR_TP_OIDS_RECORDTYPE, tpPolicyOidsDict1,
NULL, NULL);
static const CSSM_DB_ATTRIBUTE_INFO tpPolicyOidsDict2[] =
{
DB_ATTRIBUTE(OID, BLOB),
DB_ATTRIBUTE(Value, BLOB),
};
const RelationInfo TpPolicyOidsDict2RelInfo =
RELATION_INFO(
MDS_CDSADIR_TP_OIDS_RECORDTYPE, tpPolicyOidsDict2,
NULL, NULL);
static const CSSM_DB_ATTRIBUTE_INFO tpEncapsulatedAttrs[] =
{
DB_ATTRIBUTE(ModuleID, STRING),
DB_ATTRIBUTE(SSID, UINT32),
DB_ATTRIBUTE(ProductDesc, STRING),
DB_ATTRIBUTE(ProductVendor, STRING),
DB_ATTRIBUTE(ProductVersion, STRING),
DB_ATTRIBUTE(ProductFlags, UINT32), DB_ATTRIBUTE(AuthorityRequestType, MULTI_UINT32),
DB_ATTRIBUTE(StandardDesc, STRING),
DB_ATTRIBUTE(StandardVersion, STRING),
DB_ATTRIBUTE(ProtocolDesc, STRING),
DB_ATTRIBUTE(ProtocolFlags, UINT32),
DB_ATTRIBUTE(CertClassName, STRING),
DB_ATTRIBUTE(RootCertificate, BLOB),
DB_ATTRIBUTE(RootCertTypeFormat, UINT32),
};
static const MDSNameValuePair *tpEncapsulatedNvp[] = {
NULL, NULL, NULL, NULL,
NULL, NULL, MDSTpAuthRequestNames, NULL,
NULL, NULL, NULL, NULL,
NULL, MDSCertTypeNames
};
static const CSSM_DB_INDEX_INFO tpEncapsulatedIndex[] =
{
UNIQUE_INDEX_ATTRIBUTE(ModuleID, STRING),
UNIQUE_INDEX_ATTRIBUTE(SSID, UINT32)
};
#if DEFINE_META_TABLES
static const CSSM_DB_ATTRIBUTE_INFO mdsSchemaRelationsAttrs[] =
{
DB_ATTRIBUTE(RelationID, UINT32),
DB_ATTRIBUTE(RelationName, STRING),
};
static const CSSM_DB_INDEX_INFO mdsSchemaRelationsIndex[] =
{
UNIQUE_INDEX_ATTRIBUTE(RelationID, UINT32),
};
static const CSSM_DB_ATTRIBUTE_INFO mdsSchemaAttributesAttrs[] =
{
DB_ATTRIBUTE(RelationID, UINT32),
DB_ATTRIBUTE(AttributeID, UINT32),
DB_ATTRIBUTE(AttributeNameFormat, UINT32),
DB_ATTRIBUTE(AttributeName, STRING),
DB_ATTRIBUTE(AttributeNameID, BLOB),
DB_ATTRIBUTE(AttributeFormat, UINT32),
};
static const CSSM_DB_INDEX_INFO mdsSchemaAttributesIndex[] =
{
UNIQUE_INDEX_ATTRIBUTE(RelationID, UINT32),
UNIQUE_INDEX_ATTRIBUTE(AttributeID, UINT32)
};
static const CSSM_DB_ATTRIBUTE_INFO mdsSchemaIndexesAttrs[] =
{
DB_ATTRIBUTE(RelationID, UINT32),
DB_ATTRIBUTE(IndexID, UINT32),
DB_ATTRIBUTE(AttributeID, UINT32),
DB_ATTRIBUTE(IndexType, UINT32),
DB_ATTRIBUTE(IndexedDataLocation, UINT32),
};
static const CSSM_DB_INDEX_INFO mdsSchemaIndexesIndex[] =
{
UNIQUE_INDEX_ATTRIBUTE(RelationID, UINT32),
UNIQUE_INDEX_ATTRIBUTE(IndexID, UINT32)
};
#endif
static const CSSM_DB_ATTRIBUTE_INFO acPrimaryAttrs[] =
{
DB_ATTRIBUTE(ModuleID, STRING),
DB_ATTRIBUTE(SSID, UINT32),
DB_ATTRIBUTE(Manifest, BLOB),
DB_ATTRIBUTE(ModuleName, STRING),
DB_ATTRIBUTE(ProductVersion, STRING),
DB_ATTRIBUTE(Vendor, STRING),
};
static const CSSM_DB_INDEX_INFO acPrimaryIndex[] =
{
UNIQUE_INDEX_ATTRIBUTE(ModuleID, STRING),
UNIQUE_INDEX_ATTRIBUTE(SSID, UINT32)
};
static const CSSM_DB_ATTRIBUTE_INFO krPrimaryAttrs[] =
{
DB_ATTRIBUTE(ModuleID, STRING),
DB_ATTRIBUTE(SSID, UINT32),
DB_ATTRIBUTE(Manifest, BLOB),
DB_ATTRIBUTE(ModuleName, STRING),
DB_ATTRIBUTE(CompatCSSMVersion, STRING),
DB_ATTRIBUTE(Version, STRING),
DB_ATTRIBUTE(Vendor, STRING),
DB_ATTRIBUTE(Description, STRING),
DB_ATTRIBUTE(ConfigFileLocation, STRING),
};
static const CSSM_DB_INDEX_INFO krPrimaryIndex[] =
{
UNIQUE_INDEX_ATTRIBUTE(ModuleID, STRING),
UNIQUE_INDEX_ATTRIBUTE(SSID, UINT32)
};
const RelationInfo kMDSRelationInfo[] =
{
RELATION_INFO(MDS_CDSADIR_CSSM_RECORDTYPE,
cssmAttrs,
cssmNvp,
cssmIndex),
RELATION_INFO(MDS_CDSADIR_KRMM_RECORDTYPE,
krmmAttrs,
krmmNvp,
krmmIndex),
RELATION_INFO(MDS_CDSADIR_EMM_RECORDTYPE,
emmAttrs,
NO_NVP, emmIndex),
RELATION_INFO(MDS_CDSADIR_EMM_PRIMARY_RECORDTYPE,
emmPrimaryAttrs,
emmPrimaryNvp,
emmPrimaryIndex),
RELATION_INFO(MDS_CDSADIR_COMMON_RECORDTYPE,
commonAttrs,
commonNvp,
commonIndex),
RELATION_INFO(MDS_CDSADIR_CSP_PRIMARY_RECORDTYPE,
cspPrimaryAttrs,
cspPrimaryNvp,
cspPrimaryIndex),
RELATION_INFO(MDS_CDSADIR_CSP_CAPABILITY_RECORDTYPE,
cspCapabilitiesAttrs,
cspCapabilitiesNvp,
cspCapabilitiesIndex),
RELATION_INFO(MDS_CDSADIR_CSP_ENCAPSULATED_PRODUCT_RECORDTYPE,
cspEncapsulatedAttrs,
cspEncapsulatedNvp,
cspEncapsulatedIndex),
RELATION_INFO(MDS_CDSADIR_CSP_SC_INFO_RECORDTYPE,
cspSmartCardAttrs,
cspSmartCardNvp,
cspSmartCardIndex),
RELATION_INFO(MDS_CDSADIR_DL_PRIMARY_RECORDTYPE,
dlPrimaryAttrs,
dlPrimaryNvp,
dlPrimaryIndex),
RELATION_INFO(MDS_CDSADIR_DL_ENCAPSULATED_PRODUCT_RECORDTYPE,
dlEncapsulatedAttrs,
dlEncapsulatedNvp,
dlEncapsulatedIndex),
RELATION_INFO(MDS_CDSADIR_CL_PRIMARY_RECORDTYPE,
clPrimaryAttrs,
clPrimaryNvp,
clPrimaryIndex),
RELATION_INFO(MDS_CDSADIR_CL_ENCAPSULATED_PRODUCT_RECORDTYPE,
clEncapsulatedAttrs,
NO_NVP, clEncapsulatedIndex),
RELATION_INFO(MDS_CDSADIR_TP_PRIMARY_RECORDTYPE,
tpPrimaryAttrs,
tpPrimaryNvp,
tpPrimaryIndex),
RELATION_INFO(MDS_CDSADIR_TP_OIDS_RECORDTYPE,
tpPolicyOidsAttrs,
NO_NVP, tpPolicyOidsIndex),
RELATION_INFO(MDS_CDSADIR_TP_ENCAPSULATED_PRODUCT_RECORDTYPE,
tpEncapsulatedAttrs,
tpEncapsulatedNvp,
tpEncapsulatedIndex),
#if DEFINE_META_TABLES
RELATION_INFO(MDS_CDSADIR_MDS_SCHEMA_RELATIONS,
mdsSchemaRelationsAttrs,
NO_NVP,
mdsSchemaRelationsIndex),
RELATION_INFO(MDS_CDSADIR_MDS_SCHEMA_ATTRIBUTES,
mdsSchemaAttributesAttrs,
NO_NVP,
mdsSchemaAttributesIndex),
RELATION_INFO(MDS_CDSADIR_MDS_SCHEMA_INDEXES,
mdsSchemaIndexesAttrs,
NO_NVP,
mdsSchemaIndexesIndex),
#endif
RELATION_INFO(MDS_CDSADIR_AC_PRIMARY_RECORDTYPE,
acPrimaryAttrs,
NO_NVP, acPrimaryIndex),
RELATION_INFO(MDS_CDSADIR_KR_PRIMARY_RECORDTYPE,
krPrimaryAttrs,
NO_NVP, krPrimaryIndex)
};
const unsigned kNumMdsRelations = sizeof(kMDSRelationInfo) / sizeof(RelationInfo);
extern const RelationInfo *MDSRecordTypeToRelation(
CSSM_DB_RECORDTYPE recordType)
{
const RelationInfo *relInfo = kMDSRelationInfo;
unsigned dex;
for(dex=0; dex<kNumMdsRelations; dex++) {
if(relInfo->DataRecordType == recordType) {
return relInfo;
}
relInfo++;
}
if(recordType == MDS_OBJECT_RECORDTYPE) {
return &kObjectRelation;
}
return NULL;
}
extern const RelationInfo *MDSRecordTypeNameToRelation(
const char *recordTypeName)
{
const RelationInfo *relInfo = kMDSRelationInfo;
unsigned dex;
for(dex=0; dex<kNumMdsRelations; dex++) {
if(!strcmp(recordTypeName, relInfo->relationName)) {
return relInfo;
}
relInfo++;
}
return NULL;
}
}