]> git.saurik.com Git - apple/security.git/blob - OSX/libsecurity_cssm/lib/cssmcli.h
Security-58286.1.32.tar.gz
[apple/security.git] / OSX / libsecurity_cssm / lib / cssmcli.h
1 /*
2 * Copyright (c) 1999-2001,2004,2011,2014 Apple Inc. All Rights Reserved.
3 *
4 * @APPLE_LICENSE_HEADER_START@
5 *
6 * This file contains Original Code and/or Modifications of Original Code
7 * as defined in and that are subject to the Apple Public Source License
8 * Version 2.0 (the 'License'). You may not use this file except in
9 * compliance with the License. Please obtain a copy of the License at
10 * http://www.opensource.apple.com/apsl/ and read it before using this
11 * file.
12 *
13 * The Original Code and all software distributed under the License are
14 * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
15 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
16 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
17 * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
18 * Please see the License for the specific language governing rights and
19 * limitations under the License.
20 *
21 * @APPLE_LICENSE_HEADER_END@
22 *
23 * cssmcli.h -- Service Provider Interface for Certificate Library Modules
24 */
25
26 #ifndef _CSSMCLI_H_
27 #define _CSSMCLI_H_ 1
28
29 #include <Security/cssmtype.h>
30
31 #ifdef __cplusplus
32 extern "C" {
33 #endif
34
35 #pragma clang diagnostic push
36 #pragma clang diagnostic ignored "-Wdeprecated-declarations"
37
38 typedef struct cssm_spi_cl_funcs {
39 CSSM_RETURN (CSSMCLI *CertCreateTemplate)
40 (CSSM_CL_HANDLE CLHandle,
41 uint32 NumberOfFields,
42 const CSSM_FIELD *CertFields,
43 CSSM_DATA_PTR CertTemplate);
44 CSSM_RETURN (CSSMCLI *CertGetAllTemplateFields)
45 (CSSM_CL_HANDLE CLHandle,
46 const CSSM_DATA *CertTemplate,
47 uint32 *NumberOfFields,
48 CSSM_FIELD_PTR *CertFields);
49 CSSM_RETURN (CSSMCLI *CertSign)
50 (CSSM_CL_HANDLE CLHandle,
51 CSSM_CC_HANDLE CCHandle,
52 const CSSM_DATA *CertTemplate,
53 const CSSM_FIELD *SignScope,
54 uint32 ScopeSize,
55 CSSM_DATA_PTR SignedCert);
56 CSSM_RETURN (CSSMCLI *CertVerify)
57 (CSSM_CL_HANDLE CLHandle,
58 CSSM_CC_HANDLE CCHandle,
59 const CSSM_DATA *CertToBeVerified,
60 const CSSM_DATA *SignerCert,
61 const CSSM_FIELD *VerifyScope,
62 uint32 ScopeSize);
63 CSSM_RETURN (CSSMCLI *CertVerifyWithKey)
64 (CSSM_CL_HANDLE CLHandle,
65 CSSM_CC_HANDLE CCHandle,
66 const CSSM_DATA *CertToBeVerified);
67 CSSM_RETURN (CSSMCLI *CertGetFirstFieldValue)
68 (CSSM_CL_HANDLE CLHandle,
69 const CSSM_DATA *Cert,
70 const CSSM_OID *CertField,
71 CSSM_HANDLE_PTR ResultsHandle,
72 uint32 *NumberOfMatchedFields,
73 CSSM_DATA_PTR *Value);
74 CSSM_RETURN (CSSMCLI *CertGetNextFieldValue)
75 (CSSM_CL_HANDLE CLHandle,
76 CSSM_HANDLE ResultsHandle,
77 CSSM_DATA_PTR *Value);
78 CSSM_RETURN (CSSMCLI *CertAbortQuery)
79 (CSSM_CL_HANDLE CLHandle,
80 CSSM_HANDLE ResultsHandle);
81 CSSM_RETURN (CSSMCLI *CertGetKeyInfo)
82 (CSSM_CL_HANDLE CLHandle,
83 const CSSM_DATA *Cert,
84 CSSM_KEY_PTR *Key);
85 CSSM_RETURN (CSSMCLI *CertGetAllFields)
86 (CSSM_CL_HANDLE CLHandle,
87 const CSSM_DATA *Cert,
88 uint32 *NumberOfFields,
89 CSSM_FIELD_PTR *CertFields);
90 CSSM_RETURN (CSSMCLI *FreeFields)
91 (CSSM_CL_HANDLE CLHandle,
92 uint32 NumberOfFields,
93 CSSM_FIELD_PTR *FieldArray);
94 CSSM_RETURN (CSSMCLI *FreeFieldValue)
95 (CSSM_CL_HANDLE CLHandle,
96 const CSSM_OID *CertOrCrlOid,
97 CSSM_DATA_PTR Value);
98 CSSM_RETURN (CSSMCLI *CertCache)
99 (CSSM_CL_HANDLE CLHandle,
100 const CSSM_DATA *Cert,
101 CSSM_HANDLE_PTR CertHandle);
102 CSSM_RETURN (CSSMCLI *CertGetFirstCachedFieldValue)
103 (CSSM_CL_HANDLE CLHandle,
104 CSSM_HANDLE CertHandle,
105 const CSSM_OID *CertField,
106 CSSM_HANDLE_PTR ResultsHandle,
107 uint32 *NumberOfMatchedFields,
108 CSSM_DATA_PTR *Value);
109 CSSM_RETURN (CSSMCLI *CertGetNextCachedFieldValue)
110 (CSSM_CL_HANDLE CLHandle,
111 CSSM_HANDLE ResultsHandle,
112 CSSM_DATA_PTR *Value);
113 CSSM_RETURN (CSSMCLI *CertAbortCache)
114 (CSSM_CL_HANDLE CLHandle,
115 CSSM_HANDLE CertHandle);
116 CSSM_RETURN (CSSMCLI *CertGroupToSignedBundle)
117 (CSSM_CL_HANDLE CLHandle,
118 CSSM_CC_HANDLE CCHandle,
119 const CSSM_CERTGROUP *CertGroupToBundle,
120 const CSSM_CERT_BUNDLE_HEADER *BundleInfo,
121 CSSM_DATA_PTR SignedBundle);
122 CSSM_RETURN (CSSMCLI *CertGroupFromVerifiedBundle)
123 (CSSM_CL_HANDLE CLHandle,
124 CSSM_CC_HANDLE CCHandle,
125 const CSSM_CERT_BUNDLE *CertBundle,
126 const CSSM_DATA *SignerCert,
127 CSSM_CERTGROUP_PTR *CertGroup);
128 CSSM_RETURN (CSSMCLI *CertDescribeFormat)
129 (CSSM_CL_HANDLE CLHandle,
130 uint32 *NumberOfFields,
131 CSSM_OID_PTR *OidList);
132 CSSM_RETURN (CSSMCLI *CrlCreateTemplate)
133 (CSSM_CL_HANDLE CLHandle,
134 uint32 NumberOfFields,
135 const CSSM_FIELD *CrlTemplate,
136 CSSM_DATA_PTR NewCrl);
137 CSSM_RETURN (CSSMCLI *CrlSetFields)
138 (CSSM_CL_HANDLE CLHandle,
139 uint32 NumberOfFields,
140 const CSSM_FIELD *CrlTemplate,
141 const CSSM_DATA *OldCrl,
142 CSSM_DATA_PTR ModifiedCrl);
143 CSSM_RETURN (CSSMCLI *CrlAddCert)
144 (CSSM_CL_HANDLE CLHandle,
145 CSSM_CC_HANDLE CCHandle,
146 const CSSM_DATA *Cert,
147 uint32 NumberOfFields,
148 const CSSM_FIELD *CrlEntryFields,
149 const CSSM_DATA *OldCrl,
150 CSSM_DATA_PTR NewCrl);
151 CSSM_RETURN (CSSMCLI *CrlRemoveCert)
152 (CSSM_CL_HANDLE CLHandle,
153 const CSSM_DATA *Cert,
154 const CSSM_DATA *OldCrl,
155 CSSM_DATA_PTR NewCrl);
156 CSSM_RETURN (CSSMCLI *CrlSign)
157 (CSSM_CL_HANDLE CLHandle,
158 CSSM_CC_HANDLE CCHandle,
159 const CSSM_DATA *UnsignedCrl,
160 const CSSM_FIELD *SignScope,
161 uint32 ScopeSize,
162 CSSM_DATA_PTR SignedCrl);
163 CSSM_RETURN (CSSMCLI *CrlVerify)
164 (CSSM_CL_HANDLE CLHandle,
165 CSSM_CC_HANDLE CCHandle,
166 const CSSM_DATA *CrlToBeVerified,
167 const CSSM_DATA *SignerCert,
168 const CSSM_FIELD *VerifyScope,
169 uint32 ScopeSize);
170 CSSM_RETURN (CSSMCLI *CrlVerifyWithKey)
171 (CSSM_CL_HANDLE CLHandle,
172 CSSM_CC_HANDLE CCHandle,
173 const CSSM_DATA *CrlToBeVerified);
174 CSSM_RETURN (CSSMCLI *IsCertInCrl)
175 (CSSM_CL_HANDLE CLHandle,
176 const CSSM_DATA *Cert,
177 const CSSM_DATA *Crl,
178 CSSM_BOOL *CertFound);
179 CSSM_RETURN (CSSMCLI *CrlGetFirstFieldValue)
180 (CSSM_CL_HANDLE CLHandle,
181 const CSSM_DATA *Crl,
182 const CSSM_OID *CrlField,
183 CSSM_HANDLE_PTR ResultsHandle,
184 uint32 *NumberOfMatchedFields,
185 CSSM_DATA_PTR *Value);
186 CSSM_RETURN (CSSMCLI *CrlGetNextFieldValue)
187 (CSSM_CL_HANDLE CLHandle,
188 CSSM_HANDLE ResultsHandle,
189 CSSM_DATA_PTR *Value);
190 CSSM_RETURN (CSSMCLI *CrlAbortQuery)
191 (CSSM_CL_HANDLE CLHandle,
192 CSSM_HANDLE ResultsHandle);
193 CSSM_RETURN (CSSMCLI *CrlGetAllFields)
194 (CSSM_CL_HANDLE CLHandle,
195 const CSSM_DATA *Crl,
196 uint32 *NumberOfCrlFields,
197 CSSM_FIELD_PTR *CrlFields);
198 CSSM_RETURN (CSSMCLI *CrlCache)
199 (CSSM_CL_HANDLE CLHandle,
200 const CSSM_DATA *Crl,
201 CSSM_HANDLE_PTR CrlHandle);
202 CSSM_RETURN (CSSMCLI *IsCertInCachedCrl)
203 (CSSM_CL_HANDLE CLHandle,
204 const CSSM_DATA *Cert,
205 CSSM_HANDLE CrlHandle,
206 CSSM_BOOL *CertFound,
207 CSSM_DATA_PTR CrlRecordIndex);
208 CSSM_RETURN (CSSMCLI *CrlGetFirstCachedFieldValue)
209 (CSSM_CL_HANDLE CLHandle,
210 CSSM_HANDLE CrlHandle,
211 const CSSM_DATA *CrlRecordIndex,
212 const CSSM_OID *CrlField,
213 CSSM_HANDLE_PTR ResultsHandle,
214 uint32 *NumberOfMatchedFields,
215 CSSM_DATA_PTR *Value);
216 CSSM_RETURN (CSSMCLI *CrlGetNextCachedFieldValue)
217 (CSSM_CL_HANDLE CLHandle,
218 CSSM_HANDLE ResultsHandle,
219 CSSM_DATA_PTR *Value);
220 CSSM_RETURN (CSSMCLI *CrlGetAllCachedRecordFields)
221 (CSSM_CL_HANDLE CLHandle,
222 CSSM_HANDLE CrlHandle,
223 const CSSM_DATA *CrlRecordIndex,
224 uint32 *NumberOfFields,
225 CSSM_FIELD_PTR *CrlFields);
226 CSSM_RETURN (CSSMCLI *CrlAbortCache)
227 (CSSM_CL_HANDLE CLHandle,
228 CSSM_HANDLE CrlHandle);
229 CSSM_RETURN (CSSMCLI *CrlDescribeFormat)
230 (CSSM_CL_HANDLE CLHandle,
231 uint32 *NumberOfFields,
232 CSSM_OID_PTR *OidList);
233 CSSM_RETURN (CSSMCLI *PassThrough)
234 (CSSM_CL_HANDLE CLHandle,
235 CSSM_CC_HANDLE CCHandle,
236 uint32 PassThroughId,
237 const void *InputParams,
238 void **OutputParams);
239 } CSSM_SPI_CL_FUNCS DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER, *CSSM_SPI_CL_FUNCS_PTR DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER;
240
241 #pragma clang diagnostic pop
242
243 #ifdef __cplusplus
244 }
245 #endif
246
247 #endif /* _CSSMCLI_H_ */