2 * Copyright (c) 2000-2001 Apple Computer, Inc. All Rights Reserved.
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
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.
22 Contains: Service Provider Interface for Certificate Library Modules
24 Copyright: (c) 1999-2000 Apple Computer, Inc., all rights reserved.
30 #include <Security/cssmtype.h>
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
,
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
,
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
,
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
,
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
,
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
,
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
;
243 #endif /* _CSSMCLI_H_ */