]> git.saurik.com Git - apple/security.git/blob - cdsa/cdsa/cssmdli.h
6e2d67f9d567e872cc138ec3b1ea6d191858e05d
[apple/security.git] / cdsa / cdsa / cssmdli.h
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 File: cssmdli.h
21
22 Contains: Service Provider Interface for Data Store Modules
23
24 Copyright: (c) 1999-2000 Apple Computer, Inc., all rights reserved.
25 */
26
27 #ifndef _CSSMDLI_H_
28 #define _CSSMDLI_H_ 1
29
30 #include <Security/cssmtype.h>
31
32 #ifdef __cplusplus
33 extern "C" {
34 #endif
35
36 typedef struct cssm_spi_dl_funcs {
37 CSSM_RETURN (CSSMDLI *DbOpen)
38 (CSSM_DL_HANDLE DLHandle,
39 const char *DbName,
40 const CSSM_NET_ADDRESS *DbLocation,
41 CSSM_DB_ACCESS_TYPE AccessRequest,
42 const CSSM_ACCESS_CREDENTIALS *AccessCred,
43 const void *OpenParameters,
44 CSSM_DB_HANDLE *DbHandle);
45 CSSM_RETURN (CSSMDLI *DbClose)
46 (CSSM_DL_DB_HANDLE DLDBHandle);
47 CSSM_RETURN (CSSMDLI *DbCreate)
48 (CSSM_DL_HANDLE DLHandle,
49 const char *DbName,
50 const CSSM_NET_ADDRESS *DbLocation,
51 const CSSM_DBINFO *DBInfo,
52 CSSM_DB_ACCESS_TYPE AccessRequest,
53 const CSSM_RESOURCE_CONTROL_CONTEXT *CredAndAclEntry,
54 const void *OpenParameters,
55 CSSM_DB_HANDLE *DbHandle);
56 CSSM_RETURN (CSSMDLI *DbDelete)
57 (CSSM_DL_HANDLE DLHandle,
58 const char *DbName,
59 const CSSM_NET_ADDRESS *DbLocation,
60 const CSSM_ACCESS_CREDENTIALS *AccessCred);
61 CSSM_RETURN (CSSMDLI *CreateRelation)
62 (CSSM_DL_DB_HANDLE DLDBHandle,
63 CSSM_DB_RECORDTYPE RelationID,
64 const char *RelationName,
65 uint32 NumberOfAttributes,
66 const CSSM_DB_SCHEMA_ATTRIBUTE_INFO *pAttributeInfo,
67 uint32 NumberOfIndexes,
68 const CSSM_DB_SCHEMA_INDEX_INFO *pIndexInfo);
69 CSSM_RETURN (CSSMDLI *DestroyRelation)
70 (CSSM_DL_DB_HANDLE DLDBHandle,
71 CSSM_DB_RECORDTYPE RelationID);
72 CSSM_RETURN (CSSMDLI *Authenticate)
73 (CSSM_DL_DB_HANDLE DLDBHandle,
74 CSSM_DB_ACCESS_TYPE AccessRequest,
75 const CSSM_ACCESS_CREDENTIALS *AccessCred);
76 CSSM_RETURN (CSSMDLI *GetDbAcl)
77 (CSSM_DL_DB_HANDLE DLDBHandle,
78 const CSSM_STRING *SelectionTag,
79 uint32 *NumberOfAclInfos,
80 CSSM_ACL_ENTRY_INFO_PTR *AclInfos);
81 CSSM_RETURN (CSSMDLI *ChangeDbAcl)
82 (CSSM_DL_DB_HANDLE DLDBHandle,
83 const CSSM_ACCESS_CREDENTIALS *AccessCred,
84 const CSSM_ACL_EDIT *AclEdit);
85 CSSM_RETURN (CSSMDLI *GetDbOwner)
86 (CSSM_DL_DB_HANDLE DLDBHandle,
87 CSSM_ACL_OWNER_PROTOTYPE_PTR Owner);
88 CSSM_RETURN (CSSMDLI *ChangeDbOwner)
89 (CSSM_DL_DB_HANDLE DLDBHandle,
90 const CSSM_ACCESS_CREDENTIALS *AccessCred,
91 const CSSM_ACL_OWNER_PROTOTYPE *NewOwner);
92 CSSM_RETURN (CSSMDLI *GetDbNames)
93 (CSSM_DL_HANDLE DLHandle,
94 CSSM_NAME_LIST_PTR *NameList);
95 CSSM_RETURN (CSSMDLI *GetDbNameFromHandle)
96 (CSSM_DL_DB_HANDLE DLDBHandle,
97 char **DbName);
98 CSSM_RETURN (CSSMDLI *FreeNameList)
99 (CSSM_DL_HANDLE DLHandle,
100 CSSM_NAME_LIST_PTR NameList);
101 CSSM_RETURN (CSSMDLI *DataInsert)
102 (CSSM_DL_DB_HANDLE DLDBHandle,
103 CSSM_DB_RECORDTYPE RecordType,
104 const CSSM_DB_RECORD_ATTRIBUTE_DATA *Attributes,
105 const CSSM_DATA *Data,
106 CSSM_DB_UNIQUE_RECORD_PTR *UniqueId);
107 CSSM_RETURN (CSSMDLI *DataDelete)
108 (CSSM_DL_DB_HANDLE DLDBHandle,
109 const CSSM_DB_UNIQUE_RECORD *UniqueRecordIdentifier);
110 CSSM_RETURN (CSSMDLI *DataModify)
111 (CSSM_DL_DB_HANDLE DLDBHandle,
112 CSSM_DB_RECORDTYPE RecordType,
113 CSSM_DB_UNIQUE_RECORD_PTR UniqueRecordIdentifier,
114 const CSSM_DB_RECORD_ATTRIBUTE_DATA *AttributesToBeModified,
115 const CSSM_DATA *DataToBeModified,
116 CSSM_DB_MODIFY_MODE ModifyMode);
117 CSSM_RETURN (CSSMDLI *DataGetFirst)
118 (CSSM_DL_DB_HANDLE DLDBHandle,
119 const CSSM_QUERY *Query,
120 CSSM_HANDLE_PTR ResultsHandle,
121 CSSM_DB_RECORD_ATTRIBUTE_DATA_PTR Attributes,
122 CSSM_DATA_PTR Data,
123 CSSM_DB_UNIQUE_RECORD_PTR *UniqueId);
124 CSSM_RETURN (CSSMDLI *DataGetNext)
125 (CSSM_DL_DB_HANDLE DLDBHandle,
126 CSSM_HANDLE ResultsHandle,
127 CSSM_DB_RECORD_ATTRIBUTE_DATA_PTR Attributes,
128 CSSM_DATA_PTR Data,
129 CSSM_DB_UNIQUE_RECORD_PTR *UniqueId);
130 CSSM_RETURN (CSSMDLI *DataAbortQuery)
131 (CSSM_DL_DB_HANDLE DLDBHandle,
132 CSSM_HANDLE ResultsHandle);
133 CSSM_RETURN (CSSMDLI *DataGetFromUniqueRecordId)
134 (CSSM_DL_DB_HANDLE DLDBHandle,
135 const CSSM_DB_UNIQUE_RECORD *UniqueRecord,
136 CSSM_DB_RECORD_ATTRIBUTE_DATA_PTR Attributes,
137 CSSM_DATA_PTR Data);
138 CSSM_RETURN (CSSMDLI *FreeUniqueRecord)
139 (CSSM_DL_DB_HANDLE DLDBHandle,
140 CSSM_DB_UNIQUE_RECORD_PTR UniqueRecord);
141 CSSM_RETURN (CSSMDLI *PassThrough)
142 (CSSM_DL_DB_HANDLE DLDBHandle,
143 uint32 PassThroughId,
144 const void *InputParams,
145 void **OutputParams);
146 } CSSM_SPI_DL_FUNCS, *CSSM_SPI_DL_FUNCS_PTR;
147
148 #ifdef __cplusplus
149 }
150 #endif
151
152 #endif /* _CSSMDLI_H_ */