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