]> git.saurik.com Git - apple/security.git/blob - cdsa/cdsa/cssmcli.h
d420715e317c87d8cac7be1dae1eb00033347de2
[apple/security.git] / cdsa / cdsa / cssmcli.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: cssmcli.h
21
22 Contains: Service Provider Interface for Certificate Library Modules
23
24 Copyright: (c) 1999-2000 Apple Computer, Inc., all rights reserved.
25 */
26
27 #ifndef _CSSMCLI_H_
28 #define _CSSMCLI_H_ 1
29
30 #include <Security/cssmtype.h>
31
32 #ifdef __cplusplus
33 extern "C" {
34 #endif
35
36 typedef struct cssm_spi_cl_funcs {
37 CSSM_RETURN (CSSMCLI *CertCreateTemplate)
38 (CSSM_CL_HANDLE CLHandle,
39 uint32 NumberOfFields,
40 const CSSM_FIELD *CertFields,
41 CSSM_DATA_PTR CertTemplate);
42 CSSM_RETURN (CSSMCLI *CertGetAllTemplateFields)
43 (CSSM_CL_HANDLE CLHandle,
44 const CSSM_DATA *CertTemplate,
45 uint32 *NumberOfFields,
46 CSSM_FIELD_PTR *CertFields);
47 CSSM_RETURN (CSSMCLI *CertSign)
48 (CSSM_CL_HANDLE CLHandle,
49 CSSM_CC_HANDLE CCHandle,
50 const CSSM_DATA *CertTemplate,
51 const CSSM_FIELD *SignScope,
52 uint32 ScopeSize,
53 CSSM_DATA_PTR SignedCert);
54 CSSM_RETURN (CSSMCLI *CertVerify)
55 (CSSM_CL_HANDLE CLHandle,
56 CSSM_CC_HANDLE CCHandle,
57 const CSSM_DATA *CertToBeVerified,
58 const CSSM_DATA *SignerCert,
59 const CSSM_FIELD *VerifyScope,
60 uint32 ScopeSize);
61 CSSM_RETURN (CSSMCLI *CertVerifyWithKey)
62 (CSSM_CL_HANDLE CLHandle,
63 CSSM_CC_HANDLE CCHandle,
64 const CSSM_DATA *CertToBeVerified);
65 CSSM_RETURN (CSSMCLI *CertGetFirstFieldValue)
66 (CSSM_CL_HANDLE CLHandle,
67 const CSSM_DATA *Cert,
68 const CSSM_OID *CertField,
69 CSSM_HANDLE_PTR ResultsHandle,
70 uint32 *NumberOfMatchedFields,
71 CSSM_DATA_PTR *Value);
72 CSSM_RETURN (CSSMCLI *CertGetNextFieldValue)
73 (CSSM_CL_HANDLE CLHandle,
74 CSSM_HANDLE ResultsHandle,
75 CSSM_DATA_PTR *Value);
76 CSSM_RETURN (CSSMCLI *CertAbortQuery)
77 (CSSM_CL_HANDLE CLHandle,
78 CSSM_HANDLE ResultsHandle);
79 CSSM_RETURN (CSSMCLI *CertGetKeyInfo)
80 (CSSM_CL_HANDLE CLHandle,
81 const CSSM_DATA *Cert,
82 CSSM_KEY_PTR *Key);
83 CSSM_RETURN (CSSMCLI *CertGetAllFields)
84 (CSSM_CL_HANDLE CLHandle,
85 const CSSM_DATA *Cert,
86 uint32 *NumberOfFields,
87 CSSM_FIELD_PTR *CertFields);
88 CSSM_RETURN (CSSMCLI *FreeFields)
89 (CSSM_CL_HANDLE CLHandle,
90 uint32 NumberOfFields,
91 CSSM_FIELD_PTR *FieldArray);
92 CSSM_RETURN (CSSMCLI *FreeFieldValue)
93 (CSSM_CL_HANDLE CLHandle,
94 const CSSM_OID *CertOrCrlOid,
95 CSSM_DATA_PTR Value);
96 CSSM_RETURN (CSSMCLI *CertCache)
97 (CSSM_CL_HANDLE CLHandle,
98 const CSSM_DATA *Cert,
99 CSSM_HANDLE_PTR CertHandle);
100 CSSM_RETURN (CSSMCLI *CertGetFirstCachedFieldValue)
101 (CSSM_CL_HANDLE CLHandle,
102 CSSM_HANDLE CertHandle,
103 const CSSM_OID *CertField,
104 CSSM_HANDLE_PTR ResultsHandle,
105 uint32 *NumberOfMatchedFields,
106 CSSM_DATA_PTR *Value);
107 CSSM_RETURN (CSSMCLI *CertGetNextCachedFieldValue)
108 (CSSM_CL_HANDLE CLHandle,
109 CSSM_HANDLE ResultsHandle,
110 CSSM_DATA_PTR *Value);
111 CSSM_RETURN (CSSMCLI *CertAbortCache)
112 (CSSM_CL_HANDLE CLHandle,
113 CSSM_HANDLE CertHandle);
114 CSSM_RETURN (CSSMCLI *CertGroupToSignedBundle)
115 (CSSM_CL_HANDLE CLHandle,
116 CSSM_CC_HANDLE CCHandle,
117 const CSSM_CERTGROUP *CertGroupToBundle,
118 const CSSM_CERT_BUNDLE_HEADER *BundleInfo,
119 CSSM_DATA_PTR SignedBundle);
120 CSSM_RETURN (CSSMCLI *CertGroupFromVerifiedBundle)
121 (CSSM_CL_HANDLE CLHandle,
122 CSSM_CC_HANDLE CCHandle,
123 const CSSM_CERT_BUNDLE *CertBundle,
124 const CSSM_DATA *SignerCert,
125 CSSM_CERTGROUP_PTR *CertGroup);
126 CSSM_RETURN (CSSMCLI *CertDescribeFormat)
127 (CSSM_CL_HANDLE CLHandle,
128 uint32 *NumberOfFields,
129 CSSM_OID_PTR *OidList);
130 CSSM_RETURN (CSSMCLI *CrlCreateTemplate)
131 (CSSM_CL_HANDLE CLHandle,
132 uint32 NumberOfFields,
133 const CSSM_FIELD *CrlTemplate,
134 CSSM_DATA_PTR NewCrl);
135 CSSM_RETURN (CSSMCLI *CrlSetFields)
136 (CSSM_CL_HANDLE CLHandle,
137 uint32 NumberOfFields,
138 const CSSM_FIELD *CrlTemplate,
139 const CSSM_DATA *OldCrl,
140 CSSM_DATA_PTR ModifiedCrl);
141 CSSM_RETURN (CSSMCLI *CrlAddCert)
142 (CSSM_CL_HANDLE CLHandle,
143 CSSM_CC_HANDLE CCHandle,
144 const CSSM_DATA *Cert,
145 uint32 NumberOfFields,
146 const CSSM_FIELD *CrlEntryFields,
147 const CSSM_DATA *OldCrl,
148 CSSM_DATA_PTR NewCrl);
149 CSSM_RETURN (CSSMCLI *CrlRemoveCert)
150 (CSSM_CL_HANDLE CLHandle,
151 const CSSM_DATA *Cert,
152 const CSSM_DATA *OldCrl,
153 CSSM_DATA_PTR NewCrl);
154 CSSM_RETURN (CSSMCLI *CrlSign)
155 (CSSM_CL_HANDLE CLHandle,
156 CSSM_CC_HANDLE CCHandle,
157 const CSSM_DATA *UnsignedCrl,
158 const CSSM_FIELD *SignScope,
159 uint32 ScopeSize,
160 CSSM_DATA_PTR SignedCrl);
161 CSSM_RETURN (CSSMCLI *CrlVerify)
162 (CSSM_CL_HANDLE CLHandle,
163 CSSM_CC_HANDLE CCHandle,
164 const CSSM_DATA *CrlToBeVerified,
165 const CSSM_DATA *SignerCert,
166 const CSSM_FIELD *VerifyScope,
167 uint32 ScopeSize);
168 CSSM_RETURN (CSSMCLI *CrlVerifyWithKey)
169 (CSSM_CL_HANDLE CLHandle,
170 CSSM_CC_HANDLE CCHandle,
171 const CSSM_DATA *CrlToBeVerified);
172 CSSM_RETURN (CSSMCLI *IsCertInCrl)
173 (CSSM_CL_HANDLE CLHandle,
174 const CSSM_DATA *Cert,
175 const CSSM_DATA *Crl,
176 CSSM_BOOL *CertFound);
177 CSSM_RETURN (CSSMCLI *CrlGetFirstFieldValue)
178 (CSSM_CL_HANDLE CLHandle,
179 const CSSM_DATA *Crl,
180 const CSSM_OID *CrlField,
181 CSSM_HANDLE_PTR ResultsHandle,
182 uint32 *NumberOfMatchedFields,
183 CSSM_DATA_PTR *Value);
184 CSSM_RETURN (CSSMCLI *CrlGetNextFieldValue)
185 (CSSM_CL_HANDLE CLHandle,
186 CSSM_HANDLE ResultsHandle,
187 CSSM_DATA_PTR *Value);
188 CSSM_RETURN (CSSMCLI *CrlAbortQuery)
189 (CSSM_CL_HANDLE CLHandle,
190 CSSM_HANDLE ResultsHandle);
191 CSSM_RETURN (CSSMCLI *CrlGetAllFields)
192 (CSSM_CL_HANDLE CLHandle,
193 const CSSM_DATA *Crl,
194 uint32 *NumberOfCrlFields,
195 CSSM_FIELD_PTR *CrlFields);
196 CSSM_RETURN (CSSMCLI *CrlCache)
197 (CSSM_CL_HANDLE CLHandle,
198 const CSSM_DATA *Crl,
199 CSSM_HANDLE_PTR CrlHandle);
200 CSSM_RETURN (CSSMCLI *IsCertInCachedCrl)
201 (CSSM_CL_HANDLE CLHandle,
202 const CSSM_DATA *Cert,
203 CSSM_HANDLE CrlHandle,
204 CSSM_BOOL *CertFound,
205 CSSM_DATA_PTR CrlRecordIndex);
206 CSSM_RETURN (CSSMCLI *CrlGetFirstCachedFieldValue)
207 (CSSM_CL_HANDLE CLHandle,
208 CSSM_HANDLE CrlHandle,
209 const CSSM_DATA *CrlRecordIndex,
210 const CSSM_OID *CrlField,
211 CSSM_HANDLE_PTR ResultsHandle,
212 uint32 *NumberOfMatchedFields,
213 CSSM_DATA_PTR *Value);
214 CSSM_RETURN (CSSMCLI *CrlGetNextCachedFieldValue)
215 (CSSM_CL_HANDLE CLHandle,
216 CSSM_HANDLE ResultsHandle,
217 CSSM_DATA_PTR *Value);
218 CSSM_RETURN (CSSMCLI *CrlGetAllCachedRecordFields)
219 (CSSM_CL_HANDLE CLHandle,
220 CSSM_HANDLE CrlHandle,
221 const CSSM_DATA *CrlRecordIndex,
222 uint32 *NumberOfFields,
223 CSSM_FIELD_PTR *CrlFields);
224 CSSM_RETURN (CSSMCLI *CrlAbortCache)
225 (CSSM_CL_HANDLE CLHandle,
226 CSSM_HANDLE CrlHandle);
227 CSSM_RETURN (CSSMCLI *CrlDescribeFormat)
228 (CSSM_CL_HANDLE CLHandle,
229 uint32 *NumberOfFields,
230 CSSM_OID_PTR *OidList);
231 CSSM_RETURN (CSSMCLI *PassThrough)
232 (CSSM_CL_HANDLE CLHandle,
233 CSSM_CC_HANDLE CCHandle,
234 uint32 PassThroughId,
235 const void *InputParams,
236 void **OutputParams);
237 } CSSM_SPI_CL_FUNCS, *CSSM_SPI_CL_FUNCS_PTR;
238
239 #ifdef __cplusplus
240 }
241 #endif
242
243 #endif /* _CSSMCLI_H_ */