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 Trust Policy Modules
24 Copyright: (c) 1999-2000 Apple Computer, Inc., all rights reserved.
30 #include <Security/cssmtype.h>
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
,
63 CSSM_RETURN (CSSMTPI
*CertReclaimKey
)
64 (CSSM_TP_HANDLE TPHandle
,
65 const CSSM_CERTGROUP
*CertGroup
,
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
;
203 #endif /* _CSSMTPI_H_ */