]> git.saurik.com Git - apple/security.git/blob - cdsa/cdsa/cssmtpi.h
6065c5a35d4a856e26f02d6b6560fda7a689a3c4
[apple/security.git] / cdsa / cdsa / cssmtpi.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: cssmtpi.h
21
22 Contains: Service Provider Interface for Trust Policy Modules
23
24 Copyright: (c) 1999-2000 Apple Computer, Inc., all rights reserved.
25 */
26
27 #ifndef _CSSMTPI_H_
28 #define _CSSMTPI_H_ 1
29
30 #include <Security/cssmtype.h>
31
32 #ifdef __cplusplus
33 extern "C" {
34 #endif
35
36 typedef struct cssm_spi_tp_funcs {
37 CSSM_RETURN (CSSMTPI *SubmitCredRequest)
38 (CSSM_TP_HANDLE TPHandle,
39 const CSSM_TP_AUTHORITY_ID *PreferredAuthority,
40 CSSM_TP_AUTHORITY_REQUEST_TYPE RequestType,
41 const CSSM_TP_REQUEST_SET *RequestInput,
42 const CSSM_TP_CALLERAUTH_CONTEXT *CallerAuthContext,
43 sint32 *EstimatedTime,
44 CSSM_DATA_PTR ReferenceIdentifier);
45 CSSM_RETURN (CSSMTPI *RetrieveCredResult)
46 (CSSM_TP_HANDLE TPHandle,
47 const CSSM_DATA *ReferenceIdentifier,
48 const CSSM_TP_CALLERAUTH_CONTEXT *CallerAuthCredentials,
49 sint32 *EstimatedTime,
50 CSSM_BOOL *ConfirmationRequired,
51 CSSM_TP_RESULT_SET_PTR *RetrieveOutput);
52 CSSM_RETURN (CSSMTPI *ConfirmCredResult)
53 (CSSM_TP_HANDLE TPHandle,
54 const CSSM_DATA *ReferenceIdentifier,
55 const CSSM_TP_CALLERAUTH_CONTEXT *CallerAuthCredentials,
56 const CSSM_TP_CONFIRM_RESPONSE *Responses,
57 const CSSM_TP_AUTHORITY_ID *PreferredAuthority);
58 CSSM_RETURN (CSSMTPI *ReceiveConfirmation)
59 (CSSM_TP_HANDLE TPHandle,
60 const CSSM_DATA *ReferenceIdentifier,
61 CSSM_TP_CONFIRM_RESPONSE_PTR *Responses,
62 sint32 *ElapsedTime);
63 CSSM_RETURN (CSSMTPI *CertReclaimKey)
64 (CSSM_TP_HANDLE TPHandle,
65 const CSSM_CERTGROUP *CertGroup,
66 uint32 CertIndex,
67 CSSM_LONG_HANDLE KeyCacheHandle,
68 CSSM_CSP_HANDLE CSPHandle,
69 const CSSM_RESOURCE_CONTROL_CONTEXT *CredAndAclEntry);
70 CSSM_RETURN (CSSMTPI *CertReclaimAbort)
71 (CSSM_TP_HANDLE TPHandle,
72 CSSM_LONG_HANDLE KeyCacheHandle);
73 CSSM_RETURN (CSSMTPI *FormRequest)
74 (CSSM_TP_HANDLE TPHandle,
75 const CSSM_TP_AUTHORITY_ID *PreferredAuthority,
76 CSSM_TP_FORM_TYPE FormType,
77 CSSM_DATA_PTR BlankForm);
78 CSSM_RETURN (CSSMTPI *FormSubmit)
79 (CSSM_TP_HANDLE TPHandle,
80 CSSM_TP_FORM_TYPE FormType,
81 const CSSM_DATA *Form,
82 const CSSM_TP_AUTHORITY_ID *ClearanceAuthority,
83 const CSSM_TP_AUTHORITY_ID *RepresentedAuthority,
84 CSSM_ACCESS_CREDENTIALS_PTR Credentials);
85 CSSM_RETURN (CSSMTPI *CertGroupVerify)
86 (CSSM_TP_HANDLE TPHandle,
87 CSSM_CL_HANDLE CLHandle,
88 CSSM_CSP_HANDLE CSPHandle,
89 const CSSM_CERTGROUP *CertGroupToBeVerified,
90 const CSSM_TP_VERIFY_CONTEXT *VerifyContext,
91 CSSM_TP_VERIFY_CONTEXT_RESULT_PTR VerifyContextResult);
92 CSSM_RETURN (CSSMTPI *CertCreateTemplate)
93 (CSSM_TP_HANDLE TPHandle,
94 CSSM_CL_HANDLE CLHandle,
95 uint32 NumberOfFields,
96 const CSSM_FIELD *CertFields,
97 CSSM_DATA_PTR CertTemplate);
98 CSSM_RETURN (CSSMTPI *CertGetAllTemplateFields)
99 (CSSM_TP_HANDLE TPHandle,
100 CSSM_CL_HANDLE CLHandle,
101 const CSSM_DATA *CertTemplate,
102 uint32 *NumberOfFields,
103 CSSM_FIELD_PTR *CertFields);
104 CSSM_RETURN (CSSMTPI *CertSign)
105 (CSSM_TP_HANDLE TPHandle,
106 CSSM_CL_HANDLE CLHandle,
107 CSSM_CC_HANDLE CCHandle,
108 const CSSM_DATA *CertTemplateToBeSigned,
109 const CSSM_CERTGROUP *SignerCertGroup,
110 const CSSM_TP_VERIFY_CONTEXT *SignerVerifyContext,
111 CSSM_TP_VERIFY_CONTEXT_RESULT_PTR SignerVerifyResult,
112 CSSM_DATA_PTR SignedCert);
113 CSSM_RETURN (CSSMTPI *CrlVerify)
114 (CSSM_TP_HANDLE TPHandle,
115 CSSM_CL_HANDLE CLHandle,
116 CSSM_CSP_HANDLE CSPHandle,
117 const CSSM_ENCODED_CRL *CrlToBeVerified,
118 const CSSM_CERTGROUP *SignerCertGroup,
119 const CSSM_TP_VERIFY_CONTEXT *VerifyContext,
120 CSSM_TP_VERIFY_CONTEXT_RESULT_PTR RevokerVerifyResult);
121 CSSM_RETURN (CSSMTPI *CrlCreateTemplate)
122 (CSSM_TP_HANDLE TPHandle,
123 CSSM_CL_HANDLE CLHandle,
124 uint32 NumberOfFields,
125 const CSSM_FIELD *CrlFields,
126 CSSM_DATA_PTR NewCrlTemplate);
127 CSSM_RETURN (CSSMTPI *CertRevoke)
128 (CSSM_TP_HANDLE TPHandle,
129 CSSM_CL_HANDLE CLHandle,
130 CSSM_CSP_HANDLE CSPHandle,
131 const CSSM_DATA *OldCrlTemplate,
132 const CSSM_CERTGROUP *CertGroupToBeRevoked,
133 const CSSM_CERTGROUP *RevokerCertGroup,
134 const CSSM_TP_VERIFY_CONTEXT *RevokerVerifyContext,
135 CSSM_TP_VERIFY_CONTEXT_RESULT_PTR RevokerVerifyResult,
136 CSSM_TP_CERTCHANGE_REASON Reason,
137 CSSM_DATA_PTR NewCrlTemplate);
138 CSSM_RETURN (CSSMTPI *CertRemoveFromCrlTemplate)
139 (CSSM_TP_HANDLE TPHandle,
140 CSSM_CL_HANDLE CLHandle,
141 CSSM_CSP_HANDLE CSPHandle,
142 const CSSM_DATA *OldCrlTemplate,
143 const CSSM_CERTGROUP *CertGroupToBeRemoved,
144 const CSSM_CERTGROUP *RevokerCertGroup,
145 const CSSM_TP_VERIFY_CONTEXT *RevokerVerifyContext,
146 CSSM_TP_VERIFY_CONTEXT_RESULT_PTR RevokerVerifyResult,
147 CSSM_DATA_PTR NewCrlTemplate);
148 CSSM_RETURN (CSSMTPI *CrlSign)
149 (CSSM_TP_HANDLE TPHandle,
150 CSSM_CL_HANDLE CLHandle,
151 CSSM_CC_HANDLE CCHandle,
152 const CSSM_ENCODED_CRL *CrlToBeSigned,
153 const CSSM_CERTGROUP *SignerCertGroup,
154 const CSSM_TP_VERIFY_CONTEXT *SignerVerifyContext,
155 CSSM_TP_VERIFY_CONTEXT_RESULT_PTR SignerVerifyResult,
156 CSSM_DATA_PTR SignedCrl);
157 CSSM_RETURN (CSSMTPI *ApplyCrlToDb)
158 (CSSM_TP_HANDLE TPHandle,
159 CSSM_CL_HANDLE CLHandle,
160 CSSM_CSP_HANDLE CSPHandle,
161 const CSSM_ENCODED_CRL *CrlToBeApplied,
162 const CSSM_CERTGROUP *SignerCertGroup,
163 const CSSM_TP_VERIFY_CONTEXT *ApplyCrlVerifyContext,
164 CSSM_TP_VERIFY_CONTEXT_RESULT_PTR ApplyCrlVerifyResult);
165 CSSM_RETURN (CSSMTPI *CertGroupConstruct)
166 (CSSM_TP_HANDLE TPHandle,
167 CSSM_CL_HANDLE CLHandle,
168 CSSM_CSP_HANDLE CSPHandle,
169 const CSSM_DL_DB_LIST *DBList,
170 const void *ConstructParams,
171 const CSSM_CERTGROUP *CertGroupFrag,
172 CSSM_CERTGROUP_PTR *CertGroup);
173 CSSM_RETURN (CSSMTPI *CertGroupPrune)
174 (CSSM_TP_HANDLE TPHandle,
175 CSSM_CL_HANDLE CLHandle,
176 const CSSM_DL_DB_LIST *DBList,
177 const CSSM_CERTGROUP *OrderedCertGroup,
178 CSSM_CERTGROUP_PTR *PrunedCertGroup);
179 CSSM_RETURN (CSSMTPI *CertGroupToTupleGroup)
180 (CSSM_TP_HANDLE TPHandle,
181 CSSM_CL_HANDLE CLHandle,
182 const CSSM_CERTGROUP *CertGroup,
183 CSSM_TUPLEGROUP_PTR *TupleGroup);
184 CSSM_RETURN (CSSMTPI *TupleGroupToCertGroup)
185 (CSSM_TP_HANDLE TPHandle,
186 CSSM_CL_HANDLE CLHandle,
187 const CSSM_TUPLEGROUP *TupleGroup,
188 CSSM_CERTGROUP_PTR *CertTemplates);
189 CSSM_RETURN (CSSMTPI *PassThrough)
190 (CSSM_TP_HANDLE TPHandle,
191 CSSM_CL_HANDLE CLHandle,
192 CSSM_CC_HANDLE CCHandle,
193 const CSSM_DL_DB_LIST *DBList,
194 uint32 PassThroughId,
195 const void *InputParams,
196 void **OutputParams);
197 } CSSM_SPI_TP_FUNCS, *CSSM_SPI_TP_FUNCS_PTR;
198
199 #ifdef __cplusplus
200 }
201 #endif
202
203 #endif /* _CSSMTPI_H_ */