1/* 2 * Copyright (c) 2004 Apple Computer, 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 24 25/* 26 * AppleDotMacTPSession.h - .mac TP session functions. 27 * 28 * Created 4/7/2004 by Doug Mitchell. 29 */ 30 31#ifndef _APPLE_DOT_MAC_TP_SESSION_H 32#define _APPLE_DOT_MAC_TP_SESSION_H 33 34#include <security_cdsa_plugin/TPsession.h> 35#include "dotMacTpRpcGlue.h" 36 37class AppleDotMacTPSession : public TPPluginSession { 38 39public: 40 41 AppleDotMacTPSession( 42 CSSM_MODULE_HANDLE theHandle, 43 CssmPlugin &plug, 44 const CSSM_VERSION &version, 45 uint32 subserviceId, 46 CSSM_SERVICE_TYPE subserviceType, 47 CSSM_ATTACH_FLAGS attachFlags, 48 const CSSM_UPCALLS &upcalls); 49 50 ~AppleDotMacTPSession(); 51 52 /* methods declared in TPabstractSession.h */ 53 void CertCreateTemplate(CSSM_CL_HANDLE CLHandle, 54 uint32 NumberOfFields, 55 const CSSM_FIELD CertFields[], 56 CssmData &CertTemplate); 57 void CrlVerify(CSSM_CL_HANDLE CLHandle, 58 CSSM_CSP_HANDLE CSPHandle, 59 const CSSM_ENCODED_CRL &CrlToBeVerified, 60 const CSSM_CERTGROUP &SignerCertGroup, 61 const CSSM_TP_VERIFY_CONTEXT *VerifyContext, 62 CSSM_TP_VERIFY_CONTEXT_RESULT *RevokerVerifyResult); 63 void CertReclaimKey(const CSSM_CERTGROUP &CertGroup, 64 uint32 CertIndex, 65 CSSM_LONG_HANDLE KeyCacheHandle, 66 CSSM_CSP_HANDLE CSPHandle, 67 const CSSM_RESOURCE_CONTROL_CONTEXT *CredAndAclEntry); 68 void CertGroupVerify(CSSM_CL_HANDLE CLHandle, 69 CSSM_CSP_HANDLE CSPHandle, 70 const CSSM_CERTGROUP &CertGroupToBeVerified, 71 const CSSM_TP_VERIFY_CONTEXT *VerifyContext, 72 CSSM_TP_VERIFY_CONTEXT_RESULT_PTR VerifyContextResult); 73 void CertGroupConstruct(CSSM_CL_HANDLE CLHandle, 74 CSSM_CSP_HANDLE CSPHandle, 75 const CSSM_DL_DB_LIST &DBList, 76 const void *ConstructParams, 77 const CSSM_CERTGROUP &CertGroupFrag, 78 CSSM_CERTGROUP_PTR &CertGroup); 79 void CertSign(CSSM_CL_HANDLE CLHandle, 80 CSSM_CC_HANDLE CCHandle, 81 const CssmData &CertTemplateToBeSigned, 82 const CSSM_CERTGROUP &SignerCertGroup, 83 const CSSM_TP_VERIFY_CONTEXT *SignerVerifyContext, 84 CSSM_TP_VERIFY_CONTEXT_RESULT *SignerVerifyResult, 85 CssmData &SignedCert); 86 void TupleGroupToCertGroup(CSSM_CL_HANDLE CLHandle, 87 const CSSM_TUPLEGROUP &TupleGroup, 88 CSSM_CERTGROUP_PTR &CertTemplates); 89 void ReceiveConfirmation(const CssmData &ReferenceIdentifier, 90 CSSM_TP_CONFIRM_RESPONSE_PTR &Responses, 91 sint32 &ElapsedTime); 92 void PassThrough(CSSM_CL_HANDLE CLHandle, 93 CSSM_CC_HANDLE CCHandle, 94 const CSSM_DL_DB_LIST *DBList, 95 uint32 PassThroughId, 96 const void *InputParams, 97 void **OutputParams); 98 void CertRemoveFromCrlTemplate(CSSM_CL_HANDLE CLHandle, 99 CSSM_CSP_HANDLE CSPHandle, 100 const CssmData *OldCrlTemplate, 101 const CSSM_CERTGROUP &CertGroupToBeRemoved, 102 const CSSM_CERTGROUP &RevokerCertGroup, 103 const CSSM_TP_VERIFY_CONTEXT &RevokerVerifyContext, 104 CSSM_TP_VERIFY_CONTEXT_RESULT &RevokerVerifyResult, 105 CssmData &NewCrlTemplate); 106 void CertRevoke(CSSM_CL_HANDLE CLHandle, 107 CSSM_CSP_HANDLE CSPHandle, 108 const CssmData *OldCrlTemplate, 109 const CSSM_CERTGROUP &CertGroupToBeRevoked, 110 const CSSM_CERTGROUP &RevokerCertGroup, 111 const CSSM_TP_VERIFY_CONTEXT &RevokerVerifyContext, 112 CSSM_TP_VERIFY_CONTEXT_RESULT &RevokerVerifyResult, 113 CSSM_TP_CERTCHANGE_REASON Reason, 114 CssmData &NewCrlTemplate); 115 void CertReclaimAbort(CSSM_LONG_HANDLE KeyCacheHandle); 116 void CrlCreateTemplate(CSSM_CL_HANDLE CLHandle, 117 uint32 NumberOfFields, 118 const CSSM_FIELD CrlFields[], 119 CssmData &NewCrlTemplate); 120 void CertGroupToTupleGroup(CSSM_CL_HANDLE CLHandle, 121 const CSSM_CERTGROUP &CertGroup, 122 CSSM_TUPLEGROUP_PTR &TupleGroup); 123 void SubmitArchiveRequest( 124 DotMacArchiveType archiveType, // OID preparsed 125 const CSSM_DATA &hostName, // required 126 CSSM_TP_AUTHORITY_REQUEST_TYPE RequestType, 127 const CSSM_TP_REQUEST_SET &RequestInput, 128 const CSSM_TP_CALLERAUTH_CONTEXT *CallerAuthContext, 129 sint32 &EstimatedTime, 130 CssmData &ReferenceIdentifier); 131 void SubmitCredRequest(const CSSM_TP_AUTHORITY_ID *PreferredAuthority, 132 CSSM_TP_AUTHORITY_REQUEST_TYPE RequestType, 133 const CSSM_TP_REQUEST_SET &RequestInput, 134 const CSSM_TP_CALLERAUTH_CONTEXT *CallerAuthContext, 135 sint32 &EstimatedTime, 136 CssmData &ReferenceIdentifier); 137 void FormRequest(const CSSM_TP_AUTHORITY_ID *PreferredAuthority, 138 CSSM_TP_FORM_TYPE FormType, 139 CssmData &BlankForm); 140 void CrlSign(CSSM_CL_HANDLE CLHandle, 141 CSSM_CC_HANDLE CCHandle, 142 const CSSM_ENCODED_CRL &CrlToBeSigned, 143 const CSSM_CERTGROUP &SignerCertGroup, 144 const CSSM_TP_VERIFY_CONTEXT *SignerVerifyContext, 145 CSSM_TP_VERIFY_CONTEXT_RESULT *SignerVerifyResult, 146 CssmData &SignedCrl); 147 void CertGroupPrune(CSSM_CL_HANDLE CLHandle, 148 const CSSM_DL_DB_LIST &DBList, 149 const CSSM_CERTGROUP &OrderedCertGroup, 150 CSSM_CERTGROUP_PTR &PrunedCertGroup); 151 void ApplyCrlToDb(CSSM_CL_HANDLE CLHandle, 152 CSSM_CSP_HANDLE CSPHandle, 153 const CSSM_ENCODED_CRL &CrlToBeApplied, 154 const CSSM_CERTGROUP &SignerCertGroup, 155 const CSSM_TP_VERIFY_CONTEXT *ApplyCrlVerifyContext, 156 CSSM_TP_VERIFY_CONTEXT_RESULT &ApplyCrlVerifyResult); 157 void CertGetAllTemplateFields(CSSM_CL_HANDLE CLHandle, 158 const CssmData &CertTemplate, 159 uint32 &NumberOfFields, 160 CSSM_FIELD_PTR &CertFields); 161 void ConfirmCredResult(const CssmData &ReferenceIdentifier, 162 const CSSM_TP_CALLERAUTH_CONTEXT *CallerAuthCredentials, 163 const CSSM_TP_CONFIRM_RESPONSE &Responses, 164 const CSSM_TP_AUTHORITY_ID *PreferredAuthority); 165 void FormSubmit(CSSM_TP_FORM_TYPE FormType, 166 const CssmData &Form, 167 const CSSM_TP_AUTHORITY_ID *ClearanceAuthority, 168 const CSSM_TP_AUTHORITY_ID *RepresentedAuthority, 169 AccessCredentials *Credentials); 170 void RetrieveCredResult(const CssmData &ReferenceIdentifier, 171 const CSSM_TP_CALLERAUTH_CONTEXT *CallerAuthCredentials, 172 sint32 &EstimatedTime, 173 CSSM_BOOL &ConfirmationRequired, 174 CSSM_TP_RESULT_SET_PTR &RetrieveOutput); 175 176}; 177 178#endif /* _APPLE_DOT_MAC_TP_SESSION_H */ 179