]> git.saurik.com Git - apple/security.git/blob - cdsa/mds/MDSSchema.cpp
Security-30.1.tar.gz
[apple/security.git] / cdsa / mds / MDSSchema.cpp
1 /*
2 * Copyright (c) 2000-2001 Apple Computer, Inc. All Rights Reserved.
3 *
4 * The contents of this file constitute Original Code as defined in and are
5 * subject to the Apple Public Source License Version 1.2 (the 'License').
6 * You may not use this file except in compliance with the License. Please obtain
7 * a copy of the License at http://www.apple.com/publicsource and read it before
8 * using this file.
9 *
10 * This Original Code and all software distributed under the License are
11 * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS
12 * OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, INCLUDING WITHOUT
13 * LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
14 * PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. Please see the License for the
15 * specific language governing rights and limitations under the License.
16 */
17
18
19 //
20 // MDSSchema.cpp
21 //
22 // Definitions of structures which define the schema, including attributes
23 // and indexes, for the standard tables that are part of the MDS database.
24 //
25
26 #include "MDSSchema.h"
27 #include <Security/mds_schema.h>
28
29 //
30 // Schema for the lone table in the Object Directory Database.
31 //
32
33 static const CSSM_DB_SCHEMA_ATTRIBUTE_INFO kAttributesObjectRelation[] = {
34 SCHEMA_ATTRIBUTE(0, ModuleId, STRING),
35 SCHEMA_ATTRIBUTE(1, Manifest, BLOB),
36 SCHEMA_ATTRIBUTE(2, ModuleName, STRING),
37 SCHEMA_ATTRIBUTE(3, Path, STRING),
38 SCHEMA_ATTRIBUTE(4, ProductVersion, STRING)
39 };
40
41 static const CSSM_DB_SCHEMA_INDEX_INFO kIndexObjectRelation[] = {
42 UNIQUE_INDEX_ATTRIBUTE(0)
43 };
44
45 const RelationInfo kObjectRelation =
46 RELATION_INFO(MDS_OBJECT_RECORDTYPE, kAttributesObjectRelation, kIndexObjectRelation);
47
48 //
49 // Schema for the various tables in the CDSA Directory Database.
50 //
51
52 // CSSM Relation.
53
54 static const CSSM_DB_SCHEMA_ATTRIBUTE_INFO kAttributesCSSMRelation[] =
55 {
56 SCHEMA_ATTRIBUTE(0, ModuleID, STRING),
57 SCHEMA_ATTRIBUTE(1, CDSAVersion, STRING),
58 SCHEMA_ATTRIBUTE(2, Vendor, STRING),
59 SCHEMA_ATTRIBUTE(3, Desc, STRING),
60 SCHEMA_ATTRIBUTE(4, NativeServices, UINT32)
61 };
62
63 static const CSSM_DB_SCHEMA_INDEX_INFO kIndexCSSMRelation[] =
64 {
65 UNIQUE_INDEX_ATTRIBUTE(0)
66 };
67
68 const RelationInfo kCSSMRelation =
69 RELATION_INFO(MDS_CDSADIR_CSSM_RECORDTYPE, kAttributesCSSMRelation, kIndexCSSMRelation);
70
71 // KRMM Relation.
72
73 static const CSSM_DB_SCHEMA_ATTRIBUTE_INFO kAttributesKRMMRelation[] =
74 {
75 SCHEMA_ATTRIBUTE(0, CSSMGuid, STRING),
76 SCHEMA_ATTRIBUTE(1, PolicyType, UINT32),
77 SCHEMA_ATTRIBUTE(2, PolicyName, STRING),
78 SCHEMA_ATTRIBUTE(3, PolicyPath, STRING),
79 SCHEMA_ATTRIBUTE(4, PolicyInfo, BLOB),
80 SCHEMA_ATTRIBUTE(5, PolicyManifest, BLOB)
81 };
82
83 static const CSSM_DB_SCHEMA_INDEX_INFO kIndexKRMMRelation[] =
84 {
85 UNIQUE_INDEX_ATTRIBUTE(0),
86 UNIQUE_INDEX_ATTRIBUTE(1)
87 };
88
89 const RelationInfo kKRMMRelation =
90 RELATION_INFO(MDS_CDSADIR_KRMM_RECORDTYPE, kAttributesKRMMRelation, kIndexKRMMRelation);
91
92 // Common Relation.
93
94 static const CSSM_DB_SCHEMA_ATTRIBUTE_INFO kAttributesCommonRelation[] =
95 {
96 SCHEMA_ATTRIBUTE(0, ModuleID, STRING),
97 SCHEMA_ATTRIBUTE(1, Manifest, BLOB),
98 SCHEMA_ATTRIBUTE(2, ModuleName, STRING),
99 SCHEMA_ATTRIBUTE(3, Path, STRING),
100 SCHEMA_ATTRIBUTE(4, CDSAVersion, STRING),
101 SCHEMA_ATTRIBUTE(5, Desc, STRING),
102 SCHEMA_ATTRIBUTE(6, DynamicFlag, UINT32),
103 SCHEMA_ATTRIBUTE(7, MultiThreadFlag, UINT32),
104 SCHEMA_ATTRIBUTE(8, ServiceMask, UINT32)
105 };
106
107 static const CSSM_DB_SCHEMA_INDEX_INFO kIndexCommonRelation[] =
108 {
109 UNIQUE_INDEX_ATTRIBUTE(0)
110 };
111
112 const RelationInfo kCommonRelation =
113 RELATION_INFO(MDS_CDSADIR_COMMON_RECORDTYPE, kAttributesCommonRelation, kIndexCommonRelation);
114