TPabstractsession.cpp [plain text]
#include <security_cdsa_plugin/TPsession.h>
#include <security_cdsa_plugin/cssmplugin.h>
#include <security_cdsa_utilities/cssmbridge.h>
#include <Security/cssmtpi.h>
TPAbstractPluginSession::~TPAbstractPluginSession()
{ }
static CSSM_RETURN CSSMTPI cssm_CertReclaimKey(CSSM_TP_HANDLE TPHandle,
const CSSM_CERTGROUP *CertGroup,
uint32 CertIndex,
CSSM_LONG_HANDLE KeyCacheHandle,
CSSM_CSP_HANDLE CSPHandle,
const CSSM_RESOURCE_CONTROL_CONTEXT *CredAndAclEntry)
{
BEGIN_API
findSession<TPPluginSession>(TPHandle).CertReclaimKey(Required(CertGroup),
CertIndex,
KeyCacheHandle,
CSPHandle,
CredAndAclEntry);
END_API(TP)
}
static CSSM_RETURN CSSMTPI cssm_CertGroupToTupleGroup(CSSM_TP_HANDLE TPHandle,
CSSM_CL_HANDLE CLHandle,
const CSSM_CERTGROUP *CertGroup,
CSSM_TUPLEGROUP_PTR *TupleGroup)
{
BEGIN_API
findSession<TPPluginSession>(TPHandle).CertGroupToTupleGroup(CLHandle,
Required(CertGroup),
Required(TupleGroup));
END_API(TP)
}
static CSSM_RETURN CSSMTPI cssm_CertCreateTemplate(CSSM_TP_HANDLE TPHandle,
CSSM_CL_HANDLE CLHandle,
uint32 NumberOfFields,
const CSSM_FIELD *CertFields,
CSSM_DATA_PTR CertTemplate)
{
BEGIN_API
findSession<TPPluginSession>(TPHandle).CertCreateTemplate(CLHandle,
NumberOfFields,
CertFields,
CssmData::required(CertTemplate));
END_API(TP)
}
static CSSM_RETURN CSSMTPI cssm_FormRequest(CSSM_TP_HANDLE TPHandle,
const CSSM_TP_AUTHORITY_ID *PreferredAuthority,
CSSM_TP_FORM_TYPE FormType,
CSSM_DATA_PTR BlankForm)
{
BEGIN_API
findSession<TPPluginSession>(TPHandle).FormRequest(PreferredAuthority,
FormType,
CssmData::required(BlankForm));
END_API(TP)
}
static CSSM_RETURN CSSMTPI cssm_CrlSign(CSSM_TP_HANDLE TPHandle,
CSSM_CL_HANDLE CLHandle,
CSSM_CC_HANDLE CCHandle,
const CSSM_ENCODED_CRL *CrlToBeSigned,
const CSSM_CERTGROUP *SignerCertGroup,
const CSSM_TP_VERIFY_CONTEXT *SignerVerifyContext,
CSSM_TP_VERIFY_CONTEXT_RESULT_PTR SignerVerifyResult,
CSSM_DATA_PTR SignedCrl)
{
BEGIN_API
findSession<TPPluginSession>(TPHandle).CrlSign(CLHandle,
CCHandle,
Required(CrlToBeSigned),
Required(SignerCertGroup),
SignerVerifyContext,
SignerVerifyResult,
CssmData::required(SignedCrl));
END_API(TP)
}
static CSSM_RETURN CSSMTPI cssm_TupleGroupToCertGroup(CSSM_TP_HANDLE TPHandle,
CSSM_CL_HANDLE CLHandle,
const CSSM_TUPLEGROUP *TupleGroup,
CSSM_CERTGROUP_PTR *CertTemplates)
{
BEGIN_API
findSession<TPPluginSession>(TPHandle).TupleGroupToCertGroup(CLHandle,
Required(TupleGroup),
Required(CertTemplates));
END_API(TP)
}
static CSSM_RETURN CSSMTPI cssm_CertGetAllTemplateFields(CSSM_TP_HANDLE TPHandle,
CSSM_CL_HANDLE CLHandle,
const CSSM_DATA *CertTemplate,
uint32 *NumberOfFields,
CSSM_FIELD_PTR *CertFields)
{
BEGIN_API
findSession<TPPluginSession>(TPHandle).CertGetAllTemplateFields(CLHandle,
CssmData::required(CertTemplate),
Required(NumberOfFields),
Required(CertFields));
END_API(TP)
}
static CSSM_RETURN CSSMTPI cssm_CertReclaimAbort(CSSM_TP_HANDLE TPHandle,
CSSM_LONG_HANDLE KeyCacheHandle)
{
BEGIN_API
findSession<TPPluginSession>(TPHandle).CertReclaimAbort(KeyCacheHandle);
END_API(TP)
}
static CSSM_RETURN CSSMTPI cssm_CrlCreateTemplate(CSSM_TP_HANDLE TPHandle,
CSSM_CL_HANDLE CLHandle,
uint32 NumberOfFields,
const CSSM_FIELD *CrlFields,
CSSM_DATA_PTR NewCrlTemplate)
{
BEGIN_API
findSession<TPPluginSession>(TPHandle).CrlCreateTemplate(CLHandle,
NumberOfFields,
CrlFields,
CssmData::required(NewCrlTemplate));
END_API(TP)
}
static CSSM_RETURN CSSMTPI cssm_CertGroupConstruct(CSSM_TP_HANDLE TPHandle,
CSSM_CL_HANDLE CLHandle,
CSSM_CSP_HANDLE CSPHandle,
const CSSM_DL_DB_LIST *DBList,
const void *ConstructParams,
const CSSM_CERTGROUP *CertGroupFrag,
CSSM_CERTGROUP_PTR *CertGroup)
{
BEGIN_API
findSession<TPPluginSession>(TPHandle).CertGroupConstruct(CLHandle,
CSPHandle,
Required(DBList),
ConstructParams,
Required(CertGroupFrag),
Required(CertGroup));
END_API(TP)
}
static CSSM_RETURN CSSMTPI cssm_PassThrough(CSSM_TP_HANDLE TPHandle,
CSSM_CL_HANDLE CLHandle,
CSSM_CC_HANDLE CCHandle,
const CSSM_DL_DB_LIST *DBList,
uint32 PassThroughId,
const void *InputParams,
void **OutputParams)
{
BEGIN_API
findSession<TPPluginSession>(TPHandle).PassThrough(CLHandle,
CCHandle,
DBList,
PassThroughId,
InputParams,
OutputParams);
END_API(TP)
}
static CSSM_RETURN CSSMTPI cssm_RetrieveCredResult(CSSM_TP_HANDLE TPHandle,
const CSSM_DATA *ReferenceIdentifier,
const CSSM_TP_CALLERAUTH_CONTEXT *CallerAuthCredentials,
sint32 *EstimatedTime,
CSSM_BOOL *ConfirmationRequired,
CSSM_TP_RESULT_SET_PTR *RetrieveOutput)
{
BEGIN_API
findSession<TPPluginSession>(TPHandle).RetrieveCredResult(CssmData::required(ReferenceIdentifier),
CallerAuthCredentials,
Required(EstimatedTime),
Required(ConfirmationRequired),
Required(RetrieveOutput));
END_API(TP)
}
static CSSM_RETURN CSSMTPI cssm_CertSign(CSSM_TP_HANDLE TPHandle,
CSSM_CL_HANDLE CLHandle,
CSSM_CC_HANDLE CCHandle,
const CSSM_DATA *CertTemplateToBeSigned,
const CSSM_CERTGROUP *SignerCertGroup,
const CSSM_TP_VERIFY_CONTEXT *SignerVerifyContext,
CSSM_TP_VERIFY_CONTEXT_RESULT_PTR SignerVerifyResult,
CSSM_DATA_PTR SignedCert)
{
BEGIN_API
findSession<TPPluginSession>(TPHandle).CertSign(CLHandle,
CCHandle,
CssmData::required(CertTemplateToBeSigned),
Required(SignerCertGroup),
SignerVerifyContext,
SignerVerifyResult,
CssmData::required(SignedCert));
END_API(TP)
}
static CSSM_RETURN CSSMTPI cssm_FormSubmit(CSSM_TP_HANDLE TPHandle,
CSSM_TP_FORM_TYPE FormType,
const CSSM_DATA *Form,
const CSSM_TP_AUTHORITY_ID *ClearanceAuthority,
const CSSM_TP_AUTHORITY_ID *RepresentedAuthority,
CSSM_ACCESS_CREDENTIALS_PTR Credentials)
{
BEGIN_API
findSession<TPPluginSession>(TPHandle).FormSubmit(FormType,
CssmData::required(Form),
ClearanceAuthority,
RepresentedAuthority,
AccessCredentials::optional(Credentials));
END_API(TP)
}
static CSSM_RETURN CSSMTPI cssm_CertGroupVerify(CSSM_TP_HANDLE TPHandle,
CSSM_CL_HANDLE CLHandle,
CSSM_CSP_HANDLE CSPHandle,
const CSSM_CERTGROUP *CertGroupToBeVerified,
const CSSM_TP_VERIFY_CONTEXT *VerifyContext,
CSSM_TP_VERIFY_CONTEXT_RESULT_PTR VerifyContextResult)
{
BEGIN_API
findSession<TPPluginSession>(TPHandle).CertGroupVerify(CLHandle,
CSPHandle,
Required(CertGroupToBeVerified),
VerifyContext,
VerifyContextResult);
END_API(TP)
}
static CSSM_RETURN CSSMTPI cssm_SubmitCredRequest(CSSM_TP_HANDLE TPHandle,
const CSSM_TP_AUTHORITY_ID *PreferredAuthority,
CSSM_TP_AUTHORITY_REQUEST_TYPE RequestType,
const CSSM_TP_REQUEST_SET *RequestInput,
const CSSM_TP_CALLERAUTH_CONTEXT *CallerAuthContext,
sint32 *EstimatedTime,
CSSM_DATA_PTR ReferenceIdentifier)
{
BEGIN_API
findSession<TPPluginSession>(TPHandle).SubmitCredRequest(PreferredAuthority,
RequestType,
Required(RequestInput),
CallerAuthContext,
Required(EstimatedTime),
CssmData::required(ReferenceIdentifier));
END_API(TP)
}
static CSSM_RETURN CSSMTPI cssm_ReceiveConfirmation(CSSM_TP_HANDLE TPHandle,
const CSSM_DATA *ReferenceIdentifier,
CSSM_TP_CONFIRM_RESPONSE_PTR *Responses,
sint32 *ElapsedTime)
{
BEGIN_API
findSession<TPPluginSession>(TPHandle).ReceiveConfirmation(CssmData::required(ReferenceIdentifier),
Required(Responses),
Required(ElapsedTime));
END_API(TP)
}
static CSSM_RETURN CSSMTPI cssm_ConfirmCredResult(CSSM_TP_HANDLE TPHandle,
const CSSM_DATA *ReferenceIdentifier,
const CSSM_TP_CALLERAUTH_CONTEXT *CallerAuthCredentials,
const CSSM_TP_CONFIRM_RESPONSE *Responses,
const CSSM_TP_AUTHORITY_ID *PreferredAuthority)
{
BEGIN_API
findSession<TPPluginSession>(TPHandle).ConfirmCredResult(CssmData::required(ReferenceIdentifier),
CallerAuthCredentials,
Required(Responses),
PreferredAuthority);
END_API(TP)
}
static CSSM_RETURN CSSMTPI cssm_CrlVerify(CSSM_TP_HANDLE TPHandle,
CSSM_CL_HANDLE CLHandle,
CSSM_CSP_HANDLE CSPHandle,
const CSSM_ENCODED_CRL *CrlToBeVerified,
const CSSM_CERTGROUP *SignerCertGroup,
const CSSM_TP_VERIFY_CONTEXT *VerifyContext,
CSSM_TP_VERIFY_CONTEXT_RESULT_PTR RevokerVerifyResult)
{
BEGIN_API
findSession<TPPluginSession>(TPHandle).CrlVerify(CLHandle,
CSPHandle,
Required(CrlToBeVerified),
Required(SignerCertGroup),
VerifyContext,
RevokerVerifyResult);
END_API(TP)
}
static CSSM_RETURN CSSMTPI cssm_ApplyCrlToDb(CSSM_TP_HANDLE TPHandle,
CSSM_CL_HANDLE CLHandle,
CSSM_CSP_HANDLE CSPHandle,
const CSSM_ENCODED_CRL *CrlToBeApplied,
const CSSM_CERTGROUP *SignerCertGroup,
const CSSM_TP_VERIFY_CONTEXT *ApplyCrlVerifyContext,
CSSM_TP_VERIFY_CONTEXT_RESULT_PTR ApplyCrlVerifyResult)
{
BEGIN_API
findSession<TPPluginSession>(TPHandle).ApplyCrlToDb(CLHandle,
CSPHandle,
Required(CrlToBeApplied),
Required(SignerCertGroup),
ApplyCrlVerifyContext,
Required(ApplyCrlVerifyResult));
END_API(TP)
}
static CSSM_RETURN CSSMTPI cssm_CertGroupPrune(CSSM_TP_HANDLE TPHandle,
CSSM_CL_HANDLE CLHandle,
const CSSM_DL_DB_LIST *DBList,
const CSSM_CERTGROUP *OrderedCertGroup,
CSSM_CERTGROUP_PTR *PrunedCertGroup)
{
BEGIN_API
findSession<TPPluginSession>(TPHandle).CertGroupPrune(CLHandle,
Required(DBList),
Required(OrderedCertGroup),
Required(PrunedCertGroup));
END_API(TP)
}
static CSSM_RETURN CSSMTPI cssm_CertRevoke(CSSM_TP_HANDLE TPHandle,
CSSM_CL_HANDLE CLHandle,
CSSM_CSP_HANDLE CSPHandle,
const CSSM_DATA *OldCrlTemplate,
const CSSM_CERTGROUP *CertGroupToBeRevoked,
const CSSM_CERTGROUP *RevokerCertGroup,
const CSSM_TP_VERIFY_CONTEXT *RevokerVerifyContext,
CSSM_TP_VERIFY_CONTEXT_RESULT_PTR RevokerVerifyResult,
CSSM_TP_CERTCHANGE_REASON Reason,
CSSM_DATA_PTR NewCrlTemplate)
{
BEGIN_API
findSession<TPPluginSession>(TPHandle).CertRevoke(CLHandle,
CSPHandle,
CssmData::optional(OldCrlTemplate),
Required(CertGroupToBeRevoked),
Required(RevokerCertGroup),
Required(RevokerVerifyContext),
Required(RevokerVerifyResult),
Reason,
CssmData::required(NewCrlTemplate));
END_API(TP)
}
static CSSM_RETURN CSSMTPI cssm_CertRemoveFromCrlTemplate(CSSM_TP_HANDLE TPHandle,
CSSM_CL_HANDLE CLHandle,
CSSM_CSP_HANDLE CSPHandle,
const CSSM_DATA *OldCrlTemplate,
const CSSM_CERTGROUP *CertGroupToBeRemoved,
const CSSM_CERTGROUP *RevokerCertGroup,
const CSSM_TP_VERIFY_CONTEXT *RevokerVerifyContext,
CSSM_TP_VERIFY_CONTEXT_RESULT_PTR RevokerVerifyResult,
CSSM_DATA_PTR NewCrlTemplate)
{
BEGIN_API
findSession<TPPluginSession>(TPHandle).CertRemoveFromCrlTemplate(CLHandle,
CSPHandle,
CssmData::optional(OldCrlTemplate),
Required(CertGroupToBeRemoved),
Required(RevokerCertGroup),
Required(RevokerVerifyContext),
Required(RevokerVerifyResult),
CssmData::required(NewCrlTemplate));
END_API(TP)
}
static const CSSM_SPI_TP_FUNCS TPFunctionStruct = {
cssm_SubmitCredRequest,
cssm_RetrieveCredResult,
cssm_ConfirmCredResult,
cssm_ReceiveConfirmation,
cssm_CertReclaimKey,
cssm_CertReclaimAbort,
cssm_FormRequest,
cssm_FormSubmit,
cssm_CertGroupVerify,
cssm_CertCreateTemplate,
cssm_CertGetAllTemplateFields,
cssm_CertSign,
cssm_CrlVerify,
cssm_CrlCreateTemplate,
cssm_CertRevoke,
cssm_CertRemoveFromCrlTemplate,
cssm_CrlSign,
cssm_ApplyCrlToDb,
cssm_CertGroupConstruct,
cssm_CertGroupPrune,
cssm_CertGroupToTupleGroup,
cssm_TupleGroupToCertGroup,
cssm_PassThrough,
};
static CSSM_MODULE_FUNCS TPFunctionTable = {
CSSM_SERVICE_TP, 23, (const CSSM_PROC_ADDR *)&TPFunctionStruct
};
CSSM_MODULE_FUNCS_PTR TPPluginSession::construct()
{
return &TPFunctionTable;
}