/*----------------------------------------------------------------------- * File: MAF_API.H * * Copyright (c) 1995-2000 Intel Corporation. All rights reserved. *----------------------------------------------------------------------- */ #ifndef __MAF_API_H__ #define __MAF_API_H__ /* API Functions */ #ifdef __cplusplus extern "C" { #endif /*************************************************************************/ /*** CSSM Core Functions *************************************************/ /*************************************************************************/ typedef CSSM_RETURN (CSSMAPI *_CSSM_Init_PTR)( const CSSM_VERSION *Version, CSSM_PRIVILEGE_SCOPE Scope, const CSSM_GUID *CallerGuid, CSSM_KEY_HIERARCHY KeyHierarchy, CSSM_PVC_MODE *PvcPolicy, const void *Reserved ); typedef CSSM_RETURN (CSSMAPI *_CSSM_Terminate_PTR)( void ); typedef CSSM_RETURN (CSSMAPI *_CSSM_ModuleLoad_PTR)( const CSSM_GUID *ModuleGuid, CSSM_KEY_HIERARCHY KeyHierarchy, CSSM_API_ModuleEventHandler AppNotifyCallback, const void *AppNotifyCallbackCtx ); typedef CSSM_RETURN (CSSMAPI *_CSSM_ModuleUnload_PTR)( const CSSM_GUID *ModuleGuid, CSSM_API_ModuleEventHandler AppNotifyCallback, const void *AppNotifyCallbackCtx ); typedef CSSM_RETURN (CSSMAPI *_CSSM_Introduce_PTR)( const CSSM_GUID *ModuleID, CSSM_KEY_HIERARCHY KeyHierarchy ); typedef CSSM_RETURN (CSSMAPI *_CSSM_Unintroduce_PTR)( const CSSM_GUID *ModuleID ); typedef CSSM_RETURN (CSSMAPI *_CSSM_ModuleAttach_PTR)( const CSSM_GUID *ModuleGuid, const CSSM_VERSION *Version, const CSSM_API_MEMORY_FUNCS *MemoryFuncs, uint32 SubserviceID, CSSM_SERVICE_TYPE SubServiceType, CSSM_ATTACH_FLAGS AttachFlags, CSSM_KEY_HIERARCHY KeyHierarchy, CSSM_FUNC_NAME_ADDR *FunctionTable, uint32 NumFunctionTable, const void *Reserved, CSSM_MODULE_HANDLE_PTR NewModuleHandle ); typedef CSSM_RETURN (CSSMAPI *_CSSM_ModuleDetach_PTR)( CSSM_MODULE_HANDLE ModuleHandle ); typedef CSSM_RETURN (CSSMAPI *_CSSM_SetPrivilege_PTR)( CSSM_PRIVILEGE Privilege ); typedef CSSM_RETURN (CSSMAPI *_CSSM_GetPrivilege_PTR)( CSSM_PRIVILEGE *Privilege ); typedef CSSM_RETURN (CSSMAPI *_CSSM_GetModuleGUIDFromHandle_PTR)( CSSM_MODULE_HANDLE ModuleHandle, CSSM_GUID_PTR ModuleGUID ); typedef CSSM_RETURN (CSSMAPI *_CSSM_GetSubserviceUIDFromHandle_PTR)( CSSM_MODULE_HANDLE ModuleHandle, CSSM_SUBSERVICE_UID_PTR SubserviceUID ); typedef CSSM_RETURN (CSSMAPI *_CSSM_ListAttachedModuleManagers_PTR)( CSSM_GUID_PTR ModuleManagerGuids, uint32 *NumberOfModuleManagers ); typedef CSSM_RETURN (CSSMAPI *_CSSM_GetAPIMemoryFunctions_PTR)( CSSM_MODULE_HANDLE AddInHandle, CSSM_API_MEMORY_FUNCS_PTR AppMemoryFuncs ); CSSM_RETURN CSSMAPI MAFCALL_Init( const CSSM_VERSION *Version, CSSM_PRIVILEGE_SCOPE Scope, const CSSM_GUID *CallerGuid, CSSM_KEY_HIERARCHY KeyHierarchy, CSSM_PVC_MODE *PvcPolicy, const void *Reserved ); CSSM_RETURN CSSMAPI MAFCALL_Terminate( void ); CSSM_RETURN CSSMAPI MAFCALL_ModuleLoad( const CSSM_GUID *ModuleGuid, CSSM_KEY_HIERARCHY KeyHierarchy, CSSM_API_ModuleEventHandler AppNotifyCallback, const void *AppNotifyCallbackCtx ); CSSM_RETURN CSSMAPI MAFCALL_ModuleUnload( const CSSM_GUID *ModuleGuid, CSSM_API_ModuleEventHandler AppNotifyCallback, const void *AppNotifyCallbackCtx ); CSSM_RETURN CSSMAPI MAFCALL_Introduce( const CSSM_GUID *ModuleID, CSSM_KEY_HIERARCHY KeyHierarchy ); CSSM_RETURN CSSMAPI MAFCALL_Unintroduce( const CSSM_GUID *ModuleID ); CSSM_RETURN CSSMAPI MAFCALL_ModuleAttach( const CSSM_GUID *ModuleGuid, const CSSM_VERSION *Version, const CSSM_API_MEMORY_FUNCS *MemoryFuncs, uint32 SubserviceID, CSSM_SERVICE_TYPE SubServiceType, CSSM_ATTACH_FLAGS AttachFlags, CSSM_KEY_HIERARCHY KeyHierarchy, CSSM_FUNC_NAME_ADDR *FunctionTable, uint32 NumFunctionTable, const void *Reserved, CSSM_MODULE_HANDLE_PTR NewModuleHandle ); CSSM_RETURN CSSMAPI MAFCALL_ModuleDetach( CSSM_MODULE_HANDLE ModuleHandle ); CSSM_RETURN CSSMAPI MAFCALL_SetPrivilege( CSSM_PRIVILEGE Privilege ); CSSM_RETURN CSSMAPI MAFCALL_GetPrivilege( CSSM_PRIVILEGE *Privilege ); CSSM_RETURN CSSMAPI MAFCALL_GetModuleGUIDFromHandle( CSSM_MODULE_HANDLE ModuleHandle, CSSM_GUID_PTR ModuleGUID ); CSSM_RETURN CSSMAPI MAFCALL_GetSubserviceUIDFromHandle( CSSM_MODULE_HANDLE ModuleHandle, CSSM_SUBSERVICE_UID_PTR SubserviceUID ); CSSM_RETURN CSSMAPI MAFCALL_ListAttachedModuleManagers( CSSM_GUID_PTR ModuleManagerGuids, uint32 *NumberOfModuleManagers ); CSSM_RETURN CSSMAPI MAFCALL_GetAPIMemoryFunctions( CSSM_MODULE_HANDLE AddInHandle, CSSM_API_MEMORY_FUNCS_PTR AppMemoryFuncs ); /************************************************************************/ /*** Cryptographic Service Provider APIs ********************************/ /************************************************************************/ /* Cryptographic Context API; CSSM core only */ typedef CSSM_RETURN (CSSMAPI *_CSSM_CSP_CreateSignatureContext_PTR)( CSSM_CSP_HANDLE CSPHandle, CSSM_ALGORITHMS AlgorithmID, const CSSM_ACCESS_CREDENTIALS *AccessCred, const CSSM_KEY *Key, CSSM_CC_HANDLE *NewContextHandle ); typedef CSSM_RETURN (CSSMAPI *_CSSM_CSP_CreateSymmetricContext_PTR)( CSSM_CSP_HANDLE CSPHandle, CSSM_ALGORITHMS AlgorithmID, CSSM_ENCRYPT_MODE Mode, const CSSM_ACCESS_CREDENTIALS *AccessCred, const CSSM_KEY *Key, const CSSM_DATA *InitVector, CSSM_PADDING Padding, void *Reserved, CSSM_CC_HANDLE *NewContextHandle ); typedef CSSM_RETURN (CSSMAPI *_CSSM_CSP_CreateDigestContext_PTR)( CSSM_CSP_HANDLE CSPHandle, CSSM_ALGORITHMS AlgorithmID, CSSM_CC_HANDLE *NewContextHandle ); typedef CSSM_RETURN (CSSMAPI *_CSSM_CSP_CreateMacContext_PTR)( CSSM_CSP_HANDLE CSPHandle, CSSM_ALGORITHMS AlgorithmID, const CSSM_KEY *Key, CSSM_CC_HANDLE *NewContextHandle ); typedef CSSM_RETURN (CSSMAPI *_CSSM_CSP_CreateRandomGenContext_PTR)( CSSM_CSP_HANDLE CSPHandle, CSSM_ALGORITHMS AlgorithmID, const CSSM_CRYPTO_DATA *Seed, uint32 Length, CSSM_CC_HANDLE *NewContextHandle ); typedef CSSM_RETURN (CSSMAPI *_CSSM_CSP_CreateAsymmetricContext_PTR)( CSSM_CSP_HANDLE CSPHandle, CSSM_ALGORITHMS AlgorithmID, const CSSM_ACCESS_CREDENTIALS *AccessCred, const CSSM_KEY *Key, CSSM_PADDING Padding, CSSM_CC_HANDLE *NewContextHandle ); typedef CSSM_RETURN (CSSMAPI *_CSSM_CSP_CreateDeriveKeyContext_PTR)( CSSM_CSP_HANDLE CSPHandle, CSSM_ALGORITHMS AlgorithmID, CSSM_KEY_TYPE DeriveKeyType, uint32 DeriveKeyLengthInBits, const CSSM_ACCESS_CREDENTIALS *AccessCred, const CSSM_KEY *BaseKey, uint32 IterationCount, const CSSM_DATA *Salt, const CSSM_CRYPTO_DATA *Seed, CSSM_CC_HANDLE *NewContextHandle ); typedef CSSM_RETURN (CSSMAPI *_CSSM_CSP_CreateKeyGenContext_PTR)( CSSM_CSP_HANDLE CSPHandle, CSSM_ALGORITHMS AlgorithmID, uint32 KeySizeInBits, const CSSM_CRYPTO_DATA *Seed, const CSSM_DATA *Salt, const CSSM_DATE *StartDate, const CSSM_DATE *EndDate, const CSSM_DATA *Params, CSSM_CC_HANDLE *NewContextHandle ); typedef CSSM_RETURN (CSSMAPI *_CSSM_CSP_CreatePassThroughContext_PTR)( CSSM_CSP_HANDLE CSPHandle, const CSSM_KEY *Key, CSSM_CC_HANDLE *NewContextHandle ); typedef CSSM_RETURN (CSSMAPI *_CSSM_GetContext_PTR)( CSSM_CC_HANDLE CCHandle, CSSM_CONTEXT_PTR *Context ); typedef CSSM_RETURN (CSSMAPI *_CSSM_FreeContext_PTR)( CSSM_CONTEXT_PTR Context ); typedef CSSM_RETURN (CSSMAPI *_CSSM_SetContext_PTR)( CSSM_CC_HANDLE CCHandle, const CSSM_CONTEXT *Context ); typedef CSSM_RETURN (CSSMAPI *_CSSM_DeleteContext_PTR)( CSSM_CC_HANDLE CCHandle ); typedef CSSM_RETURN (CSSMAPI *_CSSM_GetContextAttribute_PTR)( const CSSM_CONTEXT *Context, uint32 AttributeType, CSSM_CONTEXT_ATTRIBUTE_PTR *ContextAttribute ); typedef CSSM_RETURN (CSSMAPI *_CSSM_UpdateContextAttributes_PTR)( CSSM_CC_HANDLE CCHandle, uint32 NumberAttributes, const CSSM_CONTEXT_ATTRIBUTE *ContextAttributes ); typedef CSSM_RETURN (CSSMAPI *_CSSM_DeleteContextAttributes_PTR)( CSSM_CC_HANDLE CCHandle, uint32 NumberOfAttributes, const CSSM_CONTEXT_ATTRIBUTE *ContextAttributes ); CSSM_RETURN CSSMAPI MAFCALL_CSP_CreateSignatureContext( CSSM_CSP_HANDLE CSPHandle, CSSM_ALGORITHMS AlgorithmID, const CSSM_ACCESS_CREDENTIALS *AccessCred, const CSSM_KEY *Key, CSSM_CC_HANDLE *NewContextHandle ); CSSM_RETURN CSSMAPI MAFCALL_CSP_CreateSymmetricContext( CSSM_CSP_HANDLE CSPHandle, CSSM_ALGORITHMS AlgorithmID, CSSM_ENCRYPT_MODE Mode, const CSSM_ACCESS_CREDENTIALS *AccessCred, const CSSM_KEY *Key, const CSSM_DATA *InitVector, CSSM_PADDING Padding, void *Reserved, CSSM_CC_HANDLE *NewContextHandle ); CSSM_RETURN CSSMAPI MAFCALL_CSP_CreateDigestContext( CSSM_CSP_HANDLE CSPHandle, CSSM_ALGORITHMS AlgorithmID, CSSM_CC_HANDLE *NewContextHandle ); CSSM_RETURN CSSMAPI MAFCALL_CSP_CreateMacContext( CSSM_CSP_HANDLE CSPHandle, CSSM_ALGORITHMS AlgorithmID, const CSSM_KEY *Key, CSSM_CC_HANDLE *NewContextHandle ); CSSM_RETURN CSSMAPI MAFCALL_CSP_CreateRandomGenContext( CSSM_CSP_HANDLE CSPHandle, CSSM_ALGORITHMS AlgorithmID, const CSSM_CRYPTO_DATA *Seed, uint32 Length, CSSM_CC_HANDLE *NewContextHandle ); CSSM_RETURN CSSMAPI MAFCALL_CSP_CreateAsymmetricContext( CSSM_CSP_HANDLE CSPHandle, CSSM_ALGORITHMS AlgorithmID, const CSSM_ACCESS_CREDENTIALS *AccessCred, const CSSM_KEY *Key, CSSM_PADDING Padding, CSSM_CC_HANDLE *NewContextHandle ); CSSM_RETURN CSSMAPI MAFCALL_CSP_CreateDeriveKeyContext( CSSM_CSP_HANDLE CSPHandle, CSSM_ALGORITHMS AlgorithmID, CSSM_KEY_TYPE DeriveKeyType, uint32 DeriveKeyLengthInBits, const CSSM_ACCESS_CREDENTIALS *AccessCred, const CSSM_KEY *BaseKey, uint32 IterationCount, const CSSM_DATA *Salt, const CSSM_CRYPTO_DATA *Seed, CSSM_CC_HANDLE *NewContextHandle ); CSSM_RETURN CSSMAPI MAFCALL_CSP_CreateKeyGenContext( CSSM_CSP_HANDLE CSPHandle, CSSM_ALGORITHMS AlgorithmID, uint32 KeySizeInBits, const CSSM_CRYPTO_DATA *Seed, const CSSM_DATA *Salt, const CSSM_DATE *StartDate, const CSSM_DATE *EndDate, const CSSM_DATA *Params, CSSM_CC_HANDLE *NewContextHandle ); CSSM_RETURN CSSMAPI MAFCALL_CSP_CreatePassThroughContext( CSSM_CSP_HANDLE CSPHandle, const CSSM_KEY *Key, CSSM_CC_HANDLE *NewContextHandle ); CSSM_RETURN CSSMAPI MAFCALL_GetContext( CSSM_CC_HANDLE CCHandle, CSSM_CONTEXT_PTR *Context ); CSSM_RETURN CSSMAPI MAFCALL_FreeContext( CSSM_CONTEXT_PTR Context ); CSSM_RETURN CSSMAPI MAFCALL_SetContext( CSSM_CC_HANDLE CCHandle, const CSSM_CONTEXT *Context ); CSSM_RETURN CSSMAPI MAFCALL_DeleteContext( CSSM_CC_HANDLE CCHandle ); CSSM_RETURN CSSMAPI MAFCALL_GetContextAttribute( const CSSM_CONTEXT *Context, uint32 AttributeType, CSSM_CONTEXT_ATTRIBUTE_PTR *ContextAttribute ); CSSM_RETURN CSSMAPI MAFCALL_UpdateContextAttributes( CSSM_CC_HANDLE CCHandle, uint32 NumberAttributes, const CSSM_CONTEXT_ATTRIBUTE *ContextAttributes ); CSSM_RETURN CSSMAPI MAFCALL_DeleteContextAttributes( CSSM_CC_HANDLE CCHandle, uint32 NumberOfAttributes, const CSSM_CONTEXT_ATTRIBUTE *ContextAttributes ); /* APIs that have corresponding SPIs */ typedef CSSM_RETURN (CSSMAPI *_CSSM_QuerySize_PTR)( CSSM_CC_HANDLE CCHandle, CSSM_BOOL Encrypt, uint32 QuerySizeCount, CSSM_QUERY_SIZE_DATA_PTR DataBlockSizes ); typedef CSSM_RETURN (CSSMAPI *_CSSM_SignData_PTR)( CSSM_CC_HANDLE CCHandle, const CSSM_DATA *DataBufs, uint32 DataBufCount, CSSM_DATA_PTR Signature ); typedef CSSM_RETURN (CSSMAPI *_CSSM_SignDataInit_PTR)( CSSM_CC_HANDLE CCHandle ); typedef CSSM_RETURN (CSSMAPI *_CSSM_SignDataUpdate_PTR)( CSSM_CC_HANDLE CCHandle, const CSSM_DATA *DataBufs, uint32 DataBufCount ); typedef CSSM_RETURN (CSSMAPI *_CSSM_SignDataFinal_PTR)( CSSM_CC_HANDLE CCHandle, CSSM_DATA_PTR Signature ); typedef CSSM_RETURN (CSSMAPI *_CSSM_VerifyData_PTR)( CSSM_CC_HANDLE CCHandle, const CSSM_DATA *DataBufs, uint32 DataBufCount, const CSSM_DATA *Signature ); typedef CSSM_RETURN (CSSMAPI *_CSSM_VerifyDataInit_PTR)( CSSM_CC_HANDLE CCHandle ); typedef CSSM_RETURN (CSSMAPI *_CSSM_VerifyDataUpdate_PTR)( CSSM_CC_HANDLE CCHandle, const CSSM_DATA *DataBufs, uint32 DataBufCount ); typedef CSSM_RETURN (CSSMAPI *_CSSM_VerifyDataFinal_PTR)( CSSM_CC_HANDLE CCHandle, const CSSM_DATA *Signature ); typedef CSSM_RETURN (CSSMAPI *_CSSM_DigestData_PTR)( CSSM_CC_HANDLE CCHandle, const CSSM_DATA *DataBufs, uint32 DataBufCount, CSSM_DATA_PTR Digest ); typedef CSSM_RETURN (CSSMAPI *_CSSM_DigestDataInit_PTR)( CSSM_CC_HANDLE CCHandle ); typedef CSSM_RETURN (CSSMAPI *_CSSM_DigestDataUpdate_PTR)( CSSM_CC_HANDLE CCHandle, const CSSM_DATA *DataBufs, uint32 DataBufCount ); typedef CSSM_RETURN (CSSMAPI *_CSSM_DigestDataClone_PTR)( CSSM_CC_HANDLE CCHandle, CSSM_CC_HANDLE * ClonedCCHandle ); typedef CSSM_RETURN (CSSMAPI *_CSSM_DigestDataFinal_PTR)( CSSM_CC_HANDLE CCHandle, CSSM_DATA_PTR Digest ); typedef CSSM_RETURN (CSSMAPI *_CSSM_GenerateMac_PTR)( CSSM_CC_HANDLE CCHandle, const CSSM_DATA *DataBufs, uint32 DataBufCount, CSSM_DATA_PTR Mac ); typedef CSSM_RETURN (CSSMAPI *_CSSM_GenerateMacInit_PTR)( CSSM_CC_HANDLE CCHandle ); typedef CSSM_RETURN (CSSMAPI *_CSSM_GenerateMacUpdate_PTR)( CSSM_CC_HANDLE CCHandle, const CSSM_DATA *DataBufs, uint32 DataBufCount ); typedef CSSM_RETURN (CSSMAPI *_CSSM_GenerateMacFinal_PTR)( CSSM_CC_HANDLE CCHandle, CSSM_DATA_PTR Mac ); typedef CSSM_RETURN (CSSMAPI *_CSSM_VerifyMac_PTR)( CSSM_CC_HANDLE CCHandle, const CSSM_DATA *DataBufs, uint32 DataBufCount, const CSSM_DATA *Mac ); typedef CSSM_RETURN (CSSMAPI *_CSSM_VerifyMacInit_PTR)( CSSM_CC_HANDLE CCHandle ); typedef CSSM_RETURN (CSSMAPI *_CSSM_VerifyMacUpdate_PTR)( CSSM_CC_HANDLE CCHandle, const CSSM_DATA *DataBufs, uint32 DataBufCount ); typedef CSSM_RETURN (CSSMAPI *_CSSM_VerifyMacFinal_PTR)( CSSM_CC_HANDLE CCHandle, const CSSM_DATA *Mac ); typedef CSSM_RETURN (CSSMAPI *_CSSM_EncryptData_PTR)( CSSM_CC_HANDLE CCHandle, const CSSM_DATA *ClearBufs, uint32 ClearBufCount, CSSM_DATA_PTR CipherBufs, uint32 CipherBufCount, uint32 *bytesEncrypted, CSSM_DATA_PTR RemData ); typedef CSSM_RETURN (CSSMAPI *_CSSM_EncryptDataP_PTR)( CSSM_CC_HANDLE CCHandle, const CSSM_DATA *ClearBufs, uint32 ClearBufCount, CSSM_DATA_PTR CipherBufs, uint32 CipherBufCount, uint32 *bytesEncrypted, CSSM_DATA_PTR RemData, CSSM_PRIVILEGE Privilege ); typedef CSSM_RETURN (CSSMAPI *_CSSM_EncryptDataInit_PTR)( CSSM_CC_HANDLE CCHandle ); typedef CSSM_RETURN (CSSMAPI *_CSSM_EncryptDataInitP_PTR)( CSSM_CC_HANDLE CCHandle, CSSM_PRIVILEGE Privilege ); typedef CSSM_RETURN (CSSMAPI *_CSSM_EncryptDataUpdate_PTR)( CSSM_CC_HANDLE CCHandle, const CSSM_DATA *ClearBufs, uint32 ClearBufCount, CSSM_DATA_PTR CipherBufs, uint32 CipherBufCount, uint32 *bytesEncrypted ); typedef CSSM_RETURN (CSSMAPI *_CSSM_EncryptDataFinal_PTR)( CSSM_CC_HANDLE CCHandle, CSSM_DATA_PTR RemData ); typedef CSSM_RETURN (CSSMAPI *_CSSM_DecryptData_PTR)( CSSM_CC_HANDLE CCHandle, const CSSM_DATA *CipherBufs, uint32 CipherBufCount, CSSM_DATA_PTR ClearBufs, uint32 ClearBufCount, uint32 *bytesDecrypted, CSSM_DATA_PTR RemData ); typedef CSSM_RETURN (CSSMAPI *_CSSM_DecryptDataP_PTR)( CSSM_CC_HANDLE CCHandle, const CSSM_DATA *CipherBufs, uint32 CipherBufCount, CSSM_DATA_PTR ClearBufs, uint32 ClearBufCount, uint32 *bytesDecrypted, CSSM_DATA_PTR RemData, CSSM_PRIVILEGE Privilege ); typedef CSSM_RETURN (CSSMAPI *_CSSM_DecryptDataInit_PTR)( CSSM_CC_HANDLE CCHandle ); typedef CSSM_RETURN (CSSMAPI *_CSSM_DecryptDataInitP_PTR)( CSSM_CC_HANDLE CCHandle, CSSM_PRIVILEGE Privilege ); typedef CSSM_RETURN (CSSMAPI *_CSSM_DecryptDataUpdate_PTR)( CSSM_CC_HANDLE CCHandle, const CSSM_DATA *CipherBufs, uint32 CipherBufCount, CSSM_DATA_PTR ClearBufs, uint32 ClearBufCount, uint32 *bytesDecrypted ); typedef CSSM_RETURN (CSSMAPI *_CSSM_DecryptDataFinal_PTR)( CSSM_CC_HANDLE CCHandle, CSSM_DATA_PTR RemData ); typedef CSSM_RETURN (CSSMAPI *_CSSM_QueryKeySizeInBits_PTR)( CSSM_CSP_HANDLE CSPHandle, CSSM_CC_HANDLE CCHandle, const CSSM_KEY *Key, CSSM_KEY_SIZE_PTR KeySize ); typedef CSSM_RETURN (CSSMAPI *_CSSM_GenerateKey_PTR)( CSSM_CC_HANDLE CCHandle, uint32 KeyUsage, uint32 KeyAttr, const CSSM_DATA *KeyLabel, const CSSM_RESOURCE_CONTROL_CONTEXT *CredAndAclEntry, CSSM_KEY_PTR Key ); typedef CSSM_RETURN (CSSMAPI *_CSSM_GenerateKeyPair_PTR)( CSSM_CC_HANDLE CCHandle, uint32 PublicKeyUsage, uint32 PublicKeyAttr, const CSSM_DATA *PublicKeyLabel, CSSM_KEY_PTR PublicKey, uint32 PrivateKeyUsage, uint32 PrivateKeyAttr, const CSSM_DATA *PrivateKeyLabel, const CSSM_RESOURCE_CONTROL_CONTEXT *CredAndAclEntry, CSSM_KEY_PTR PrivateKey ); typedef CSSM_RETURN (CSSMAPI *_CSSM_GenerateRandom_PTR)( CSSM_CC_HANDLE CCHandle, CSSM_DATA_PTR RandomNumber ); typedef CSSM_RETURN (CSSMAPI *_CSSM_GenerateAlgorithmParams_PTR)( CSSM_CC_HANDLE CCHandle, uint32 ParamBits, CSSM_DATA_PTR Param ); typedef CSSM_RETURN (CSSMAPI *_CSSM_WrapKey_PTR)( CSSM_CC_HANDLE CCHandle, const CSSM_ACCESS_CREDENTIALS *AccessCred, const CSSM_KEY *Key, const CSSM_DATA *DescriptiveData, CSSM_WRAP_KEY_PTR WrappedKey ); typedef CSSM_RETURN (CSSMAPI *_CSSM_WrapKeyP_PTR)( CSSM_CC_HANDLE CCHandle, const CSSM_ACCESS_CREDENTIALS *Credentials, const CSSM_KEY *Key, const CSSM_DATA *DescriptiveData, CSSM_WRAP_KEY_PTR WrappedKey, CSSM_PRIVILEGE Privilege ); typedef CSSM_RETURN (CSSMAPI *_CSSM_UnwrapKey_PTR)( CSSM_CC_HANDLE CCHandle, const CSSM_KEY *PublicKey, const CSSM_WRAP_KEY *WrappedKey, uint32 KeyUsage, uint32 KeyAttr, const CSSM_DATA *KeyLabel, const CSSM_RESOURCE_CONTROL_CONTEXT *CredAndAclEntry, CSSM_KEY_PTR UnwrappedKey, CSSM_DATA_PTR DescriptiveData ); typedef CSSM_RETURN (CSSMAPI *_CSSM_UnwrapKeyP_PTR)( CSSM_CC_HANDLE CCHandle, const CSSM_KEY *PublicKey, const CSSM_WRAP_KEY *WrappedKey, uint32 KeyUsage, uint32 KeyAttr, const CSSM_DATA *KeyLabel, const CSSM_RESOURCE_CONTROL_CONTEXT *CredAndAclEntry, CSSM_KEY_PTR UnwrappedKey, CSSM_DATA_PTR DescriptiveData, CSSM_PRIVILEGE Privilege ); typedef CSSM_RETURN (CSSMAPI *_CSSM_DeriveKey_PTR)( CSSM_CC_HANDLE CCHandle, CSSM_DATA_PTR Param, uint32 KeyUsage, uint32 KeyAttr, const CSSM_DATA *KeyLabel, const CSSM_RESOURCE_CONTROL_CONTEXT *CredAndAclEntry, CSSM_KEY_PTR DerivedKey ); typedef CSSM_RETURN (CSSMAPI *_CSSM_FreeKey_PTR)( CSSM_CSP_HANDLE CSPHandle, const CSSM_ACCESS_CREDENTIALS *AccessCred, CSSM_KEY_PTR KeyPtr, CSSM_BOOL Delete ); typedef CSSM_RETURN (CSSMAPI *_CSSM_CSP_PassThrough_PTR)( CSSM_CC_HANDLE CCHandle, uint32 PassThroughId, const void *InData, void **OutData ); typedef CSSM_RETURN (CSSMAPI *_CSSM_CSP_Login_PTR)( CSSM_CSP_HANDLE CSPHandle, const CSSM_ACCESS_CREDENTIALS *AccessCred, const CSSM_DATA *LoginName, const void *Reserved ); typedef CSSM_RETURN (CSSMAPI *_CSSM_CSP_Logout_PTR)( CSSM_CSP_HANDLE CSPHandle ); typedef CSSM_RETURN (CSSMAPI *_CSSM_CSP_ChangeLoginAcl_PTR)( CSSM_CSP_HANDLE CSPHandle, const CSSM_ACCESS_CREDENTIALS *AccessCred, const CSSM_ACL_EDIT *AclEdit ); typedef CSSM_RETURN (CSSMAPI *_CSSM_CSP_ObtainPrivateKeyFromPublicKey_PTR)( CSSM_CSP_HANDLE CSPHandle, const CSSM_KEY *PublicKey, CSSM_KEY_PTR PrivateKey ); typedef CSSM_RETURN (CSSMAPI *_CSSM_RetrieveUniqueId_PTR)( CSSM_CSP_HANDLE CSPHandle, CSSM_DATA_PTR UniqueID ); typedef CSSM_RETURN (CSSMAPI *_CSSM_RetrieveCounter_PTR)( CSSM_CSP_HANDLE CSPHandle, CSSM_DATA_PTR Counter ); typedef CSSM_RETURN (CSSMAPI *_CSSM_VerifyDevice_PTR)( CSSM_CSP_HANDLE CSPHandle, const CSSM_DATA *DeviceCert ); typedef CSSM_RETURN (CSSMAPI *_CSSM_GetTimeValue_PTR)( CSSM_CSP_HANDLE CSPHandle, CSSM_ALGORITHMS TimeAlgorithm, CSSM_DATA *TimeData ); typedef CSSM_RETURN (CSSMAPI *_CSSM_CSP_GetOperationalStatistics_PTR)( CSSM_CSP_HANDLE CSPHandle, CSSM_CSP_OPERATIONAL_STATISTICS *Statistics ); typedef CSSM_RETURN (CSSMAPI *_CSSM_CSP_GetLoginAcl_PTR)( CSSM_CSP_HANDLE CSPHandle, const CSSM_STRING *SelectionTag, CSSM_ACL_ENTRY_INFO_PTR *AclInfos, uint32 *NumberOfAclInfos ); typedef CSSM_RETURN (CSSMAPI *_CSSM_GetKeyAcl_PTR)( CSSM_CSP_HANDLE CSPHandle, const CSSM_KEY *Key, const CSSM_STRING *SelectionTag, CSSM_ACL_ENTRY_INFO_PTR *AclInfos, uint32 *NumberOfAclInfos ); typedef CSSM_RETURN (CSSMAPI *_CSSM_ChangeKeyAcl_PTR)( CSSM_CSP_HANDLE CSPHandle, const CSSM_ACCESS_CREDENTIALS *AccessCred, const CSSM_ACL_EDIT *AclEdit, const CSSM_KEY *Key ); typedef CSSM_RETURN (CSSMAPI *_CSSM_GetKeyOwner_PTR)( CSSM_CSP_HANDLE CSPHandle, const CSSM_KEY *Key, CSSM_ACL_OWNER_PROTOTYPE_PTR Owner ); typedef CSSM_RETURN (CSSMAPI *_CSSM_ChangeKeyOwner_PTR)( CSSM_CSP_HANDLE CSPHandle, const CSSM_ACCESS_CREDENTIALS *AccessCred, const CSSM_KEY *Key, const CSSM_ACL_OWNER_PROTOTYPE *NewOwner ); typedef CSSM_RETURN (CSSMAPI *_CSSM_CSP_GetLoginOwner_PTR)( CSSM_CSP_HANDLE CSPHandle, CSSM_ACL_OWNER_PROTOTYPE_PTR Owner ); typedef CSSM_RETURN (CSSMAPI *_CSSM_CSP_ChangeLoginOwner_PTR)( CSSM_CSP_HANDLE CSPHandle, const CSSM_ACCESS_CREDENTIALS *AccessCred, const CSSM_ACL_OWNER_PROTOTYPE *NewOwner ); CSSM_RETURN CSSMAPI MAFCALL_QuerySize( CSSM_CC_HANDLE CCHandle, CSSM_BOOL Encrypt, uint32 QuerySizeCount, CSSM_QUERY_SIZE_DATA_PTR DataBlockSizes ); CSSM_RETURN CSSMAPI MAFCALL_SignData( CSSM_CC_HANDLE CCHandle, const CSSM_DATA *DataBufs, uint32 DataBufCount, CSSM_DATA_PTR Signature ); CSSM_RETURN CSSMAPI MAFCALL_SignDataInit( CSSM_CC_HANDLE CCHandle ); CSSM_RETURN CSSMAPI MAFCALL_SignDataUpdate( CSSM_CC_HANDLE CCHandle, const CSSM_DATA *DataBufs, uint32 DataBufCount ); CSSM_RETURN CSSMAPI MAFCALL_SignDataFinal( CSSM_CC_HANDLE CCHandle, CSSM_DATA_PTR Signature ); CSSM_RETURN CSSMAPI MAFCALL_VerifyData( CSSM_CC_HANDLE CCHandle, const CSSM_DATA *DataBufs, uint32 DataBufCount, const CSSM_DATA *Signature ); CSSM_RETURN CSSMAPI MAFCALL_VerifyDataInit( CSSM_CC_HANDLE CCHandle ); CSSM_RETURN CSSMAPI MAFCALL_VerifyDataUpdate( CSSM_CC_HANDLE CCHandle, const CSSM_DATA *DataBufs, uint32 DataBufCount ); CSSM_RETURN CSSMAPI MAFCALL_VerifyDataFinal( CSSM_CC_HANDLE CCHandle, const CSSM_DATA *Signature ); CSSM_RETURN CSSMAPI MAFCALL_DigestData( CSSM_CC_HANDLE CCHandle, const CSSM_DATA *DataBufs, uint32 DataBufCount, CSSM_DATA_PTR Digest ); CSSM_RETURN CSSMAPI MAFCALL_DigestDataInit( CSSM_CC_HANDLE CCHandle ); CSSM_RETURN CSSMAPI MAFCALL_DigestDataUpdate( CSSM_CC_HANDLE CCHandle, const CSSM_DATA *DataBufs, uint32 DataBufCount ); CSSM_RETURN CSSMAPI MAFCALL_DigestDataClone( CSSM_CC_HANDLE CCHandle, CSSM_CC_HANDLE * ClonedCCHandle ); CSSM_RETURN CSSMAPI MAFCALL_DigestDataFinal( CSSM_CC_HANDLE CCHandle, CSSM_DATA_PTR Digest ); CSSM_RETURN CSSMAPI MAFCALL_GenerateMac( CSSM_CC_HANDLE CCHandle, const CSSM_DATA *DataBufs, uint32 DataBufCount, CSSM_DATA_PTR Mac ); CSSM_RETURN CSSMAPI MAFCALL_GenerateMacInit( CSSM_CC_HANDLE CCHandle ); CSSM_RETURN CSSMAPI MAFCALL_GenerateMacUpdate( CSSM_CC_HANDLE CCHandle, const CSSM_DATA *DataBufs, uint32 DataBufCount ); CSSM_RETURN CSSMAPI MAFCALL_GenerateMacFinal( CSSM_CC_HANDLE CCHandle, CSSM_DATA_PTR Mac ); CSSM_RETURN CSSMAPI MAFCALL_VerifyMac( CSSM_CC_HANDLE CCHandle, const CSSM_DATA *DataBufs, uint32 DataBufCount, const CSSM_DATA *Mac ); CSSM_RETURN CSSMAPI MAFCALL_VerifyMacInit( CSSM_CC_HANDLE CCHandle ); CSSM_RETURN CSSMAPI MAFCALL_VerifyMacUpdate( CSSM_CC_HANDLE CCHandle, const CSSM_DATA *DataBufs, uint32 DataBufCount ); CSSM_RETURN CSSMAPI MAFCALL_VerifyMacFinal( CSSM_CC_HANDLE CCHandle, const CSSM_DATA *Mac ); CSSM_RETURN CSSMAPI MAFCALL_EncryptData( CSSM_CC_HANDLE CCHandle, const CSSM_DATA *ClearBufs, uint32 ClearBufCount, CSSM_DATA_PTR CipherBufs, uint32 CipherBufCount, uint32 *bytesEncrypted, CSSM_DATA_PTR RemData ); CSSM_RETURN CSSMAPI MAFCALL_EncryptDataP( CSSM_CC_HANDLE CCHandle, const CSSM_DATA *ClearBufs, uint32 ClearBufCount, CSSM_DATA_PTR CipherBufs, uint32 CipherBufCount, uint32 *bytesEncrypted, CSSM_DATA_PTR RemData, CSSM_PRIVILEGE Privilege ); CSSM_RETURN CSSMAPI MAFCALL_EncryptDataInit( CSSM_CC_HANDLE CCHandle ); CSSM_RETURN CSSMAPI MAFCALL_EncryptDataInitP( CSSM_CC_HANDLE CCHandle, CSSM_PRIVILEGE Privilege ); CSSM_RETURN CSSMAPI MAFCALL_EncryptDataUpdate( CSSM_CC_HANDLE CCHandle, const CSSM_DATA *ClearBufs, uint32 ClearBufCount, CSSM_DATA_PTR CipherBufs, uint32 CipherBufCount, uint32 *bytesEncrypted ); CSSM_RETURN CSSMAPI MAFCALL_EncryptDataFinal( CSSM_CC_HANDLE CCHandle, CSSM_DATA_PTR RemData ); CSSM_RETURN CSSMAPI MAFCALL_DecryptData( CSSM_CC_HANDLE CCHandle, const CSSM_DATA *CipherBufs, uint32 CipherBufCount, CSSM_DATA_PTR ClearBufs, uint32 ClearBufCount, uint32 *bytesDecrypted, CSSM_DATA_PTR RemData ); CSSM_RETURN CSSMAPI MAFCALL_DecryptDataP( CSSM_CC_HANDLE CCHandle, const CSSM_DATA *CipherBufs, uint32 CipherBufCount, CSSM_DATA_PTR ClearBufs, uint32 ClearBufCount, uint32 *bytesDecrypted, CSSM_DATA_PTR RemData, CSSM_PRIVILEGE Privilege ); CSSM_RETURN CSSMAPI MAFCALL_DecryptDataInit( CSSM_CC_HANDLE CCHandle ); CSSM_RETURN CSSMAPI MAFCALL_DecryptDataInitP( CSSM_CC_HANDLE CCHandle, CSSM_PRIVILEGE Privilege ); CSSM_RETURN CSSMAPI MAFCALL_DecryptDataUpdate( CSSM_CC_HANDLE CCHandle, const CSSM_DATA *CipherBufs, uint32 CipherBufCount, CSSM_DATA_PTR ClearBufs, uint32 ClearBufCount, uint32 *bytesDecrypted ); CSSM_RETURN CSSMAPI MAFCALL_DecryptDataFinal( CSSM_CC_HANDLE CCHandle, CSSM_DATA_PTR RemData ); CSSM_RETURN CSSMAPI MAFCALL_QueryKeySizeInBits( CSSM_CSP_HANDLE CSPHandle, CSSM_CC_HANDLE CCHandle, const CSSM_KEY *Key, CSSM_KEY_SIZE_PTR KeySize ); CSSM_RETURN CSSMAPI MAFCALL_GenerateKey( CSSM_CC_HANDLE CCHandle, uint32 KeyUsage, uint32 KeyAttr, const CSSM_DATA *KeyLabel, const CSSM_RESOURCE_CONTROL_CONTEXT *CredAndAclEntry, CSSM_KEY_PTR Key ); CSSM_RETURN CSSMAPI MAFCALL_GenerateKeyPair( CSSM_CC_HANDLE CCHandle, uint32 PublicKeyUsage, uint32 PublicKeyAttr, const CSSM_DATA *PublicKeyLabel, CSSM_KEY_PTR PublicKey, uint32 PrivateKeyUsage, uint32 PrivateKeyAttr, const CSSM_DATA *PrivateKeyLabel, const CSSM_RESOURCE_CONTROL_CONTEXT *CredAndAclEntry, CSSM_KEY_PTR PrivateKey ); CSSM_RETURN CSSMAPI MAFCALL_GenerateRandom( CSSM_CC_HANDLE CCHandle, CSSM_DATA_PTR RandomNumber ); CSSM_RETURN CSSMAPI MAFCALL_GenerateAlgorithmParams( CSSM_CC_HANDLE CCHandle, uint32 ParamBits, CSSM_DATA_PTR Param ); CSSM_RETURN CSSMAPI MAFCALL_WrapKey( CSSM_CC_HANDLE CCHandle, const CSSM_ACCESS_CREDENTIALS *AccessCred, const CSSM_KEY *Key, const CSSM_DATA *DescriptiveData, CSSM_WRAP_KEY_PTR WrappedKey ); CSSM_RETURN CSSMAPI MAFCALL_WrapKeyP( CSSM_CC_HANDLE CCHandle, const CSSM_ACCESS_CREDENTIALS *Credentials, const CSSM_KEY *Key, const CSSM_DATA *DescriptiveData, CSSM_WRAP_KEY_PTR WrappedKey, CSSM_PRIVILEGE Privilege ); CSSM_RETURN CSSMAPI MAFCALL_UnwrapKey( CSSM_CC_HANDLE CCHandle, const CSSM_KEY *PublicKey, const CSSM_WRAP_KEY *WrappedKey, uint32 KeyUsage, uint32 KeyAttr, const CSSM_DATA *KeyLabel, const CSSM_RESOURCE_CONTROL_CONTEXT *CredAndAclEntry, CSSM_KEY_PTR UnwrappedKey, CSSM_DATA_PTR DescriptiveData ); CSSM_RETURN CSSMAPI MAFCALL_UnwrapKeyP( CSSM_CC_HANDLE CCHandle, const CSSM_KEY *PublicKey, const CSSM_WRAP_KEY *WrappedKey, uint32 KeyUsage, uint32 KeyAttr, const CSSM_DATA *KeyLabel, const CSSM_RESOURCE_CONTROL_CONTEXT *CredAndAclEntry, CSSM_KEY_PTR UnwrappedKey, CSSM_DATA_PTR DescriptiveData, CSSM_PRIVILEGE Privilege ); CSSM_RETURN CSSMAPI MAFCALL_DeriveKey( CSSM_CC_HANDLE CCHandle, CSSM_DATA_PTR Param, uint32 KeyUsage, uint32 KeyAttr, const CSSM_DATA *KeyLabel, const CSSM_RESOURCE_CONTROL_CONTEXT *CredAndAclEntry, CSSM_KEY_PTR DerivedKey ); CSSM_RETURN CSSMAPI MAFCALL_FreeKey( CSSM_CSP_HANDLE CSPHandle, const CSSM_ACCESS_CREDENTIALS *AccessCred, CSSM_KEY_PTR KeyPtr, CSSM_BOOL Delete ); CSSM_RETURN CSSMAPI MAFCALL_CSP_PassThrough( CSSM_CC_HANDLE CCHandle, uint32 PassThroughId, const void *InData, void **OutData ); CSSM_RETURN CSSMAPI MAFCALL_CSP_Login( CSSM_CSP_HANDLE CSPHandle, const CSSM_ACCESS_CREDENTIALS *AccessCred, const CSSM_DATA *LoginName, const void *Reserved ); CSSM_RETURN CSSMAPI MAFCALL_CSP_Logout( CSSM_CSP_HANDLE CSPHandle ); CSSM_RETURN CSSMAPI MAFCALL_CSP_ChangeLoginAcl( CSSM_CSP_HANDLE CSPHandle, const CSSM_ACCESS_CREDENTIALS *AccessCred, const CSSM_ACL_EDIT *AclEdit ); CSSM_RETURN CSSMAPI MAFCALL_CSP_ObtainPrivateKeyFromPublicKey( CSSM_CSP_HANDLE CSPHandle, const CSSM_KEY *PublicKey, CSSM_KEY_PTR PrivateKey ); CSSM_RETURN CSSMAPI MAFCALL_RetrieveUniqueId( CSSM_CSP_HANDLE CSPHandle, CSSM_DATA_PTR UniqueID ); CSSM_RETURN CSSMAPI MAFCALL_RetrieveCounter( CSSM_CSP_HANDLE CSPHandle, CSSM_DATA_PTR Counter ); CSSM_RETURN CSSMAPI MAFCALL_VerifyDevice( CSSM_CSP_HANDLE CSPHandle, const CSSM_DATA *DeviceCert ); CSSM_RETURN CSSMAPI MAFCALL_GetTimeValue( CSSM_CSP_HANDLE CSPHandle, CSSM_ALGORITHMS TimeAlgorithm, CSSM_DATA *TimeData ); CSSM_RETURN CSSMAPI MAFCALL_CSP_GetOperationalStatistics( CSSM_CSP_HANDLE CSPHandle, CSSM_CSP_OPERATIONAL_STATISTICS *Statistics ); CSSM_RETURN CSSMAPI MAFCALL_CSP_GetLoginAcl( CSSM_CSP_HANDLE CSPHandle, const CSSM_STRING *SelectionTag, CSSM_ACL_ENTRY_INFO_PTR *AclInfos, uint32 *NumberOfAclInfos ); CSSM_RETURN CSSMAPI MAFCALL_GetKeyAcl( CSSM_CSP_HANDLE CSPHandle, const CSSM_KEY *Key, const CSSM_STRING *SelectionTag, CSSM_ACL_ENTRY_INFO_PTR *AclInfos, uint32 *NumberOfAclInfos ); CSSM_RETURN CSSMAPI MAFCALL_ChangeKeyAcl( CSSM_CSP_HANDLE CSPHandle, const CSSM_ACCESS_CREDENTIALS *AccessCred, const CSSM_ACL_EDIT *AclEdit, const CSSM_KEY *Key ); CSSM_RETURN CSSMAPI MAFCALL_GetKeyOwner( CSSM_CSP_HANDLE CSPHandle, const CSSM_KEY *Key, CSSM_ACL_OWNER_PROTOTYPE_PTR Owner ); CSSM_RETURN CSSMAPI MAFCALL_ChangeKeyOwner( CSSM_CSP_HANDLE CSPHandle, const CSSM_ACCESS_CREDENTIALS *AccessCred, const CSSM_KEY *Key, const CSSM_ACL_OWNER_PROTOTYPE *NewOwner ); CSSM_RETURN CSSMAPI MAFCALL_CSP_GetLoginOwner( CSSM_CSP_HANDLE CSPHandle, CSSM_ACL_OWNER_PROTOTYPE_PTR Owner ); CSSM_RETURN CSSMAPI MAFCALL_CSP_ChangeLoginOwner( CSSM_CSP_HANDLE CSPHandle, const CSSM_ACCESS_CREDENTIALS *AccessCred, const CSSM_ACL_OWNER_PROTOTYPE *NewOwner ); /*************************************************************************/ /*** Trust Policy Operations *********************************************/ /*************************************************************************/ typedef CSSM_RETURN (CSSMAPI *_CSSM_TP_SubmitCredRequest_PTR)( 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 ); typedef CSSM_RETURN (CSSMAPI *_CSSM_TP_RetrieveCredResult_PTR)( 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 ); typedef CSSM_RETURN (CSSMAPI *_CSSM_TP_ConfirmCredResult_PTR)( 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 ); typedef CSSM_RETURN (CSSMAPI *_CSSM_TP_ReceiveConfirmation_PTR)( CSSM_TP_HANDLE TPHandle, const CSSM_DATA *ReferenceIdentifier, CSSM_TP_CONFIRM_RESPONSE_PTR Responses, sint32 *ElapsedTime ); typedef CSSM_RETURN (CSSMAPI *_CSSM_TP_CertReclaimKey_PTR)( CSSM_TP_HANDLE TPHandle, const CSSM_CERTGROUP *CertGroup, uint32 CertIndex, CSSM_LONG_HANDLE KeyCacheHandle, CSSM_CSP_HANDLE CSPHandle, const CSSM_RESOURCE_CONTROL_CONTEXT *CredAndAclEntry ); typedef CSSM_RETURN (CSSMAPI *_CSSM_TP_CertReclaimAbort_PTR)( CSSM_TP_HANDLE TPHandle, CSSM_LONG_HANDLE KeyCacheHandle ); typedef CSSM_RETURN (CSSMAPI *_CSSM_TP_FormRequest_PTR)( CSSM_TP_HANDLE TPHandle, const CSSM_TP_AUTHORITY_ID *PreferredAuthority, CSSM_TP_FORM_TYPE FormType, CSSM_DATA_PTR BlankForm ); typedef CSSM_RETURN (CSSMAPI *_CSSM_TP_FormSubmit_PTR)( 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 ); typedef CSSM_RETURN (CSSMAPI *_CSSM_TP_CertGroupVerify_PTR)( 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 ); typedef CSSM_RETURN (CSSMAPI *_CSSM_TP_CertCreateTemplate_PTR)( CSSM_TP_HANDLE TPHandle, CSSM_CL_HANDLE CLHandle, const CSSM_FIELD *CertFields, uint32 NumberOfFields, CSSM_DATA_PTR CertTemplate ); typedef CSSM_RETURN (CSSMAPI *_CSSM_TP_CertGetAllTemplateFields_PTR)( CSSM_TP_HANDLE TPHandle, CSSM_CL_HANDLE CLHandle, const CSSM_DATA *CertTemplate, CSSM_FIELD_PTR *CertFields, uint32 *NumberOfFields ); typedef CSSM_RETURN (CSSMAPI *_CSSM_TP_CertSign_PTR)( 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 ); typedef CSSM_RETURN (CSSMAPI *_CSSM_TP_CrlVerify_PTR)( 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 ); typedef CSSM_RETURN (CSSMAPI *_CSSM_TP_CrlCreateTemplate_PTR)( CSSM_TP_HANDLE TPHandle, CSSM_CL_HANDLE CLHandle, const CSSM_FIELD *CrlFields, uint32 NumberOfFields, CSSM_DATA_PTR NewCrlTemplate ); typedef CSSM_RETURN (CSSMAPI *_CSSM_TP_CertRevoke_PTR)( CSSM_TP_HANDLE TPHandle, CSSM_CL_HANDLE CLHandle, CSSM_CSP_HANDLE CSPHandle, const CSSM_DATA *OldCrlTemplate, const CSSM_CERTGROUP *CertToBeRevoked, const CSSM_CERTGROUP *RevokerCert, const CSSM_TP_VERIFY_CONTEXT *RevokerVerifyContext, CSSM_TP_VERIFY_CONTEXT_RESULT_PTR RevokerVerifyResult, CSSM_TP_CERTCHANGE_REASON Reason, CSSM_DATA_PTR NewCrlTemplate ); typedef CSSM_RETURN (CSSMAPI *_CSSM_TP_CertRemoveFromCrlTemplate_PTR)( 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 ); typedef CSSM_RETURN (CSSMAPI *_CSSM_TP_CrlSign_PTR)( 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 ); typedef CSSM_RETURN (CSSMAPI *_CSSM_TP_ApplyCrlToDb_PTR)( 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 ); typedef CSSM_RETURN (CSSMAPI *_CSSM_TP_CertGroupConstruct_PTR)( 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 ); typedef CSSM_RETURN (CSSMAPI *_CSSM_TP_CertGroupPrune_PTR)( CSSM_TP_HANDLE TPHandle, CSSM_CL_HANDLE CLHandle, const CSSM_DL_DB_LIST *DBList, const CSSM_CERTGROUP *OrderedCertGroup, CSSM_CERTGROUP_PTR *PrunedCertGroup ); typedef CSSM_RETURN (CSSMAPI *_CSSM_TP_CertGroupToTupleGroup_PTR)( CSSM_TP_HANDLE TPHandle, CSSM_CL_HANDLE CLHandle, const CSSM_CERTGROUP *CertGroup, CSSM_TUPLEGROUP_PTR *TupleGroup ); typedef CSSM_RETURN (CSSMAPI *_CSSM_TP_TupleGroupToCertGroup_PTR)( CSSM_TP_HANDLE TPHandle, CSSM_CL_HANDLE CLHandle, const CSSM_TUPLEGROUP *TupleGroup, CSSM_CERTGROUP_PTR *CertTemplates ); typedef CSSM_RETURN (CSSMAPI *_CSSM_TP_PassThrough_PTR)( 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 ); CSSM_RETURN CSSMAPI MAFCALL_TP_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 ); CSSM_RETURN CSSMAPI MAFCALL_TP_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 ); CSSM_RETURN CSSMAPI MAFCALL_TP_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 ); CSSM_RETURN CSSMAPI MAFCALL_TP_ReceiveConfirmation( CSSM_TP_HANDLE TPHandle, const CSSM_DATA *ReferenceIdentifier, CSSM_TP_CONFIRM_RESPONSE_PTR Responses, sint32 *ElapsedTime ); CSSM_RETURN CSSMAPI MAFCALL_TP_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 ); CSSM_RETURN CSSMAPI MAFCALL_TP_CertReclaimAbort( CSSM_TP_HANDLE TPHandle, CSSM_LONG_HANDLE KeyCacheHandle ); CSSM_RETURN CSSMAPI MAFCALL_TP_FormRequest( CSSM_TP_HANDLE TPHandle, const CSSM_TP_AUTHORITY_ID *PreferredAuthority, CSSM_TP_FORM_TYPE FormType, CSSM_DATA_PTR BlankForm ); CSSM_RETURN CSSMAPI MAFCALL_TP_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 ); CSSM_RETURN CSSMAPI MAFCALL_TP_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 ); CSSM_RETURN CSSMAPI MAFCALL_TP_CertCreateTemplate( CSSM_TP_HANDLE TPHandle, CSSM_CL_HANDLE CLHandle, const CSSM_FIELD *CertFields, uint32 NumberOfFields, CSSM_DATA_PTR CertTemplate ); CSSM_RETURN CSSMAPI MAFCALL_TP_CertGetAllTemplateFields( CSSM_TP_HANDLE TPHandle, CSSM_CL_HANDLE CLHandle, const CSSM_DATA *CertTemplate, CSSM_FIELD_PTR *CertFields, uint32 *NumberOfFields ); CSSM_RETURN CSSMAPI MAFCALL_TP_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 ); CSSM_RETURN CSSMAPI MAFCALL_TP_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 ); CSSM_RETURN CSSMAPI MAFCALL_TP_CrlCreateTemplate( CSSM_TP_HANDLE TPHandle, CSSM_CL_HANDLE CLHandle, const CSSM_FIELD *CrlFields, uint32 NumberOfFields, CSSM_DATA_PTR NewCrlTemplate ); CSSM_RETURN CSSMAPI MAFCALL_TP_CertRevoke( CSSM_TP_HANDLE TPHandle, CSSM_CL_HANDLE CLHandle, CSSM_CSP_HANDLE CSPHandle, const CSSM_DATA *OldCrlTemplate, const CSSM_CERTGROUP *CertToBeRevoked, const CSSM_CERTGROUP *RevokerCert, const CSSM_TP_VERIFY_CONTEXT *RevokerVerifyContext, CSSM_TP_VERIFY_CONTEXT_RESULT_PTR RevokerVerifyResult, CSSM_TP_CERTCHANGE_REASON Reason, CSSM_DATA_PTR NewCrlTemplate ); CSSM_RETURN CSSMAPI MAFCALL_TP_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 ); CSSM_RETURN CSSMAPI MAFCALL_TP_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 ); CSSM_RETURN CSSMAPI MAFCALL_TP_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 ); CSSM_RETURN CSSMAPI MAFCALL_TP_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 ); CSSM_RETURN CSSMAPI MAFCALL_TP_CertGroupPrune( CSSM_TP_HANDLE TPHandle, CSSM_CL_HANDLE CLHandle, const CSSM_DL_DB_LIST *DBList, const CSSM_CERTGROUP *OrderedCertGroup, CSSM_CERTGROUP_PTR *PrunedCertGroup ); CSSM_RETURN CSSMAPI MAFCALL_TP_CertGroupToTupleGroup( CSSM_TP_HANDLE TPHandle, CSSM_CL_HANDLE CLHandle, const CSSM_CERTGROUP *CertGroup, CSSM_TUPLEGROUP_PTR *TupleGroup ); CSSM_RETURN CSSMAPI MAFCALL_TP_TupleGroupToCertGroup( CSSM_TP_HANDLE TPHandle, CSSM_CL_HANDLE CLHandle, const CSSM_TUPLEGROUP *TupleGroup, CSSM_CERTGROUP_PTR *CertTemplates ); CSSM_RETURN CSSMAPI MAFCALL_TP_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 ); /*************************************************************************/ /*** Authorization Computation Operations ********************************/ /*************************************************************************/ typedef CSSM_RETURN (CSSMAPI *_CSSM_AC_AuthCompute_PTR)( CSSM_AC_HANDLE ACHandle, const CSSM_TUPLEGROUP *BaseAuthorizations, const CSSM_TUPLEGROUP *Credentials, uint32 NumberOfRequestors, const CSSM_LIST *Requestors, const CSSM_LIST *RequestedAuthorizationPeriod, const CSSM_LIST *RequestedAuthorization, CSSM_TUPLEGROUP_PTR AuthorizationResult ); typedef CSSM_RETURN (CSSMAPI *_CSSM_AC_PassThrough_PTR)( CSSM_AC_HANDLE ACHandle, 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 ); CSSM_RETURN CSSMAPI MAFCALL_AC_AuthCompute( CSSM_AC_HANDLE ACHandle, const CSSM_TUPLEGROUP *BaseAuthorizations, const CSSM_TUPLEGROUP *Credentials, uint32 NumberOfRequestors, const CSSM_LIST *Requestors, const CSSM_LIST *RequestedAuthorizationPeriod, const CSSM_LIST *RequestedAuthorization, CSSM_TUPLEGROUP_PTR AuthorizationResult ); CSSM_RETURN CSSMAPI MAFCALL_AC_PassThrough( CSSM_AC_HANDLE ACHandle, 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 ); /*************************************************************************/ /*** Certificate Library Operations **************************************/ /*************************************************************************/ typedef CSSM_RETURN (CSSMAPI *_CSSM_CL_CertCreateTemplate_PTR)( CSSM_CL_HANDLE CLHandle, const CSSM_FIELD *CertFields, uint32 NumberOfFields, CSSM_DATA_PTR CertTemplate ); typedef CSSM_RETURN (CSSMAPI *_CSSM_CL_CertGetAllTemplateFields_PTR)( CSSM_CL_HANDLE CLHandle, const CSSM_DATA *CertTemplate, CSSM_FIELD_PTR *CertFields, uint32 *NumberOfFields ); typedef CSSM_RETURN (CSSMAPI *_CSSM_CL_CertSign_PTR)( CSSM_CL_HANDLE CLHandle, CSSM_CC_HANDLE CCHandle, const CSSM_DATA *CertTemplate, const CSSM_FIELD *SignScope, uint32 ScopeSize, CSSM_DATA_PTR SignedCert ); typedef CSSM_RETURN (CSSMAPI *_CSSM_CL_CertVerify_PTR)( CSSM_CL_HANDLE CLHandle, CSSM_CC_HANDLE CCHandle, const CSSM_DATA *CertToBeVerified, const CSSM_DATA *SignerCert, const CSSM_FIELD *VerifyScope, uint32 ScopeSize ); typedef CSSM_RETURN (CSSMAPI *_CSSM_CL_CertVerifyWithKey_PTR)( CSSM_CL_HANDLE CLHandle, CSSM_CC_HANDLE CCHandle, const CSSM_DATA *CertToBeVerified ); typedef CSSM_RETURN (CSSMAPI *_CSSM_CL_CertGetFirstFieldValue_PTR)( CSSM_CL_HANDLE CLHandle, const CSSM_DATA *Cert, const CSSM_OID *CertField, CSSM_HANDLE_PTR ResultsHandle, uint32 *NumberOfMatchedFields, CSSM_DATA_PTR *Value ); typedef CSSM_RETURN (CSSMAPI *_CSSM_CL_CertGetNextFieldValue_PTR)( CSSM_CL_HANDLE CLHandle, CSSM_HANDLE ResultsHandle, CSSM_DATA_PTR *Value ); typedef CSSM_RETURN (CSSMAPI *_CSSM_CL_CertAbortQuery_PTR)( CSSM_CL_HANDLE CLHandle, CSSM_HANDLE ResultsHandle ); typedef CSSM_RETURN (CSSMAPI *_CSSM_CL_CertGetKeyInfo_PTR)( CSSM_CL_HANDLE CLHandle, const CSSM_DATA *Cert, CSSM_KEY_PTR *Key ); typedef CSSM_RETURN (CSSMAPI *_CSSM_CL_CertGetAllFields_PTR)( CSSM_CL_HANDLE CLHandle, const CSSM_DATA *Cert, uint32 *NumberOfFields, CSSM_FIELD_PTR *FieldList ); typedef CSSM_RETURN (CSSMAPI *_CSSM_CL_FreeFieldValue_PTR)( CSSM_CL_HANDLE CLHandle, const CSSM_OID *CertOrCrlOid, CSSM_DATA_PTR Value ); typedef CSSM_RETURN (CSSMAPI *_CSSM_CL_CertCache_PTR)( CSSM_CL_HANDLE CLHandle, const CSSM_DATA *Cert, CSSM_HANDLE_PTR CertHandle ); typedef CSSM_RETURN (CSSMAPI *_CSSM_CL_CertGetFirstCachedFieldValue_PTR)( CSSM_CL_HANDLE CLHandle, CSSM_HANDLE CertHandle, const CSSM_OID *CertField, CSSM_HANDLE_PTR ResultsHandle, uint32 *NumberOfMatchedFields, CSSM_DATA_PTR *FieldValue ); typedef CSSM_RETURN (CSSMAPI *_CSSM_CL_CertGetNextCachedFieldValue_PTR)( CSSM_CL_HANDLE CLHandle, CSSM_HANDLE ResultsHandle, CSSM_DATA_PTR *FieldValue ); typedef CSSM_RETURN (CSSMAPI *_CSSM_CL_CertAbortCache_PTR)( CSSM_CL_HANDLE CLHandle, CSSM_HANDLE CertHandle ); typedef CSSM_RETURN (CSSMAPI *_CSSM_CL_CertGroupToSignedBundle_PTR)( CSSM_CL_HANDLE CLHandle, CSSM_CC_HANDLE CCHandle, const CSSM_CERTGROUP *CertGroupToBundle, const CSSM_CERT_BUNDLE_HEADER *BundleInfo, CSSM_DATA_PTR SignedBundle ); typedef CSSM_RETURN (CSSMAPI *_CSSM_CL_CertGroupFromVerifiedBundle_PTR)( CSSM_CL_HANDLE CLHandle, CSSM_CC_HANDLE CCHandle, const CSSM_CERT_BUNDLE *CertBundle, const CSSM_DATA *SignerCert, CSSM_CERTGROUP_PTR *CertGroup ); typedef CSSM_RETURN (CSSMAPI *_CSSM_CL_CertDescribeFormat_PTR)( CSSM_CL_HANDLE CLHandle, uint32 *NumberOfFields, CSSM_OID_PTR *OidList ); typedef CSSM_RETURN (CSSMAPI *_CSSM_CL_CrlCreateTemplate_PTR)( CSSM_CL_HANDLE CLHandle, const CSSM_FIELD *CrlTemplate, uint32 NumberOfFields, CSSM_DATA_PTR NewCrl ); typedef CSSM_RETURN (CSSMAPI *_CSSM_CL_CrlSetFields_PTR)( CSSM_CL_HANDLE CLHandle, const CSSM_FIELD *CrlTemplate, uint32 NumberOfFields, const CSSM_DATA *OldCrl, CSSM_DATA_PTR ModifiedCrl ); typedef CSSM_RETURN (CSSMAPI *_CSSM_CL_CrlAddCert_PTR)( CSSM_CL_HANDLE CLHandle, CSSM_CC_HANDLE CCHandle, const CSSM_DATA *Cert, const CSSM_FIELD *CrlEntryFields, uint32 NumberOfFields, const CSSM_DATA *OldCrl, CSSM_DATA_PTR NewCrl ); typedef CSSM_RETURN (CSSMAPI *_CSSM_CL_CrlRemoveCert_PTR)( CSSM_CL_HANDLE CLHandle, const CSSM_DATA *Cert, const CSSM_DATA *OldCrl, CSSM_DATA_PTR NewCrl ); typedef CSSM_RETURN (CSSMAPI *_CSSM_CL_CrlSign_PTR)( CSSM_CL_HANDLE CLHandle, CSSM_CC_HANDLE CCHandle, const CSSM_DATA *UnsignedCrl, const CSSM_FIELD *SignScope, uint32 ScopeSize, CSSM_DATA_PTR SignedCrl ); typedef CSSM_RETURN (CSSMAPI *_CSSM_CL_CrlVerify_PTR)( CSSM_CL_HANDLE CLHandle, CSSM_CC_HANDLE CCHandle, const CSSM_DATA *CrlToBeVerified, const CSSM_DATA *SignerCert, const CSSM_FIELD *VerifyScope, uint32 ScopeSize ); typedef CSSM_RETURN (CSSMAPI *_CSSM_CL_CrlVerifyWithKey_PTR)( CSSM_CL_HANDLE CLHandle, CSSM_CC_HANDLE CCHandle, const CSSM_DATA *CrlToBeVerified ); typedef CSSM_RETURN (CSSMAPI *_CSSM_CL_IsCertInCrl_PTR)( CSSM_CL_HANDLE CLHandle, const CSSM_DATA *Cert, const CSSM_DATA *Crl, CSSM_BOOL *CertFound ); typedef CSSM_RETURN (CSSMAPI *_CSSM_CL_CrlGetFirstFieldValue_PTR)( CSSM_CL_HANDLE CLHandle, const CSSM_DATA *Crl, const CSSM_OID *CrlField, CSSM_HANDLE_PTR ResultsHandle, uint32 *NumberOfMatchedFields, CSSM_DATA_PTR *Value ); typedef CSSM_RETURN (CSSMAPI *_CSSM_CL_CrlGetNextFieldValue_PTR)( CSSM_CL_HANDLE CLHandle, CSSM_HANDLE ResultsHandle, CSSM_DATA_PTR *Value ); typedef CSSM_RETURN (CSSMAPI *_CSSM_CL_CrlAbortQuery_PTR)( CSSM_CL_HANDLE CLHandle, CSSM_HANDLE ResultsHandle ); typedef CSSM_RETURN (CSSMAPI *_CSSM_CL_CrlGetAllFields_PTR)( CSSM_CL_HANDLE CLHandle, const CSSM_DATA *Crl, CSSM_FIELD_PTR *CrlFields, uint32 *NumberOfCrlFields ); typedef CSSM_RETURN (CSSMAPI *_CSSM_CL_CrlCache_PTR)( CSSM_CL_HANDLE CLHandle, const CSSM_DATA *Crl, CSSM_HANDLE_PTR CrlHandle ); typedef CSSM_RETURN (CSSMAPI *_CSSM_CL_IsCertInCachedCrl_PTR)( CSSM_CL_HANDLE CLHandle, const CSSM_DATA *Cert, CSSM_HANDLE CrlHandle, CSSM_BOOL *CertFound, CSSM_DATA_PTR CrlRecordIndex ); typedef CSSM_RETURN (CSSMAPI *_CSSM_CL_CrlGetFirstCachedFieldValue_PTR)( CSSM_CL_HANDLE CLHandle, CSSM_HANDLE CrlHandle, const CSSM_DATA *CrlRecordIndex, const CSSM_OID *CrlField, CSSM_HANDLE_PTR ResultsHandle, uint32 *NumberOfMatchedFields, CSSM_DATA_PTR *FieldValue ); typedef CSSM_RETURN (CSSMAPI *_CSSM_CL_CrlGetNextCachedFieldValue_PTR)( CSSM_CL_HANDLE CLHandle, CSSM_HANDLE ResultsHandle, CSSM_DATA_PTR *FieldValue ); typedef CSSM_RETURN (CSSMAPI *_CSSM_CL_CrlGetAllCachedRecordFields_PTR)( CSSM_CL_HANDLE CLHandle, CSSM_HANDLE CrlHandle, const CSSM_DATA *CrlRecordIndex, uint32 *NumberOfFields, CSSM_FIELD_PTR *Fields ); typedef CSSM_RETURN (CSSMAPI *_CSSM_CL_CrlAbortCache_PTR)( CSSM_CL_HANDLE CLHandle, CSSM_HANDLE CrlHandle ); typedef CSSM_RETURN (CSSMAPI *_CSSM_CL_CrlDescribeFormat_PTR)( CSSM_CL_HANDLE CLHandle, uint32 *NumberOfFields, CSSM_OID_PTR *OidList ); typedef CSSM_RETURN (CSSMAPI *_CSSM_CL_PassThrough_PTR)( CSSM_CL_HANDLE CLHandle, CSSM_CC_HANDLE CCHandle, uint32 PassThroughId, const void *InputParams, void **OutputParams ); CSSM_RETURN CSSMAPI MAFCALL_CL_CertCreateTemplate( CSSM_CL_HANDLE CLHandle, const CSSM_FIELD *CertFields, uint32 NumberOfFields, CSSM_DATA_PTR CertTemplate ); CSSM_RETURN CSSMAPI MAFCALL_CL_CertGetAllTemplateFields( CSSM_CL_HANDLE CLHandle, const CSSM_DATA *CertTemplate, CSSM_FIELD_PTR *CertFields, uint32 *NumberOfFields ); CSSM_RETURN CSSMAPI MAFCALL_CL_CertSign( CSSM_CL_HANDLE CLHandle, CSSM_CC_HANDLE CCHandle, const CSSM_DATA *CertTemplate, const CSSM_FIELD *SignScope, uint32 ScopeSize, CSSM_DATA_PTR SignedCert ); CSSM_RETURN CSSMAPI MAFCALL_CL_CertVerify( CSSM_CL_HANDLE CLHandle, CSSM_CC_HANDLE CCHandle, const CSSM_DATA *CertToBeVerified, const CSSM_DATA *SignerCert, const CSSM_FIELD *VerifyScope, uint32 ScopeSize ); CSSM_RETURN CSSMAPI MAFCALL_CL_CertVerifyWithKey( CSSM_CL_HANDLE CLHandle, CSSM_CC_HANDLE CCHandle, const CSSM_DATA *CertToBeVerified ); CSSM_RETURN CSSMAPI MAFCALL_CL_CertGetFirstFieldValue( CSSM_CL_HANDLE CLHandle, const CSSM_DATA *Cert, const CSSM_OID *CertField, CSSM_HANDLE_PTR ResultsHandle, uint32 *NumberOfMatchedFields, CSSM_DATA_PTR *Value ); CSSM_RETURN CSSMAPI MAFCALL_CL_CertGetNextFieldValue( CSSM_CL_HANDLE CLHandle, CSSM_HANDLE ResultsHandle, CSSM_DATA_PTR *Value ); CSSM_RETURN CSSMAPI MAFCALL_CL_CertAbortQuery( CSSM_CL_HANDLE CLHandle, CSSM_HANDLE ResultsHandle ); CSSM_RETURN CSSMAPI MAFCALL_CL_CertGetKeyInfo( CSSM_CL_HANDLE CLHandle, const CSSM_DATA *Cert, CSSM_KEY_PTR *Key ); CSSM_RETURN CSSMAPI MAFCALL_CL_CertGetAllFields( CSSM_CL_HANDLE CLHandle, const CSSM_DATA *Cert, uint32 *NumberOfFields, CSSM_FIELD_PTR *FieldList ); CSSM_RETURN CSSMAPI MAFCALL_CL_FreeFieldValue( CSSM_CL_HANDLE CLHandle, const CSSM_OID *CertOrCrlOid, CSSM_DATA_PTR Value ); CSSM_RETURN CSSMAPI MAFCALL_CL_CertCache( CSSM_CL_HANDLE CLHandle, const CSSM_DATA *Cert, CSSM_HANDLE_PTR CertHandle ); CSSM_RETURN CSSMAPI MAFCALL_CL_CertGetFirstCachedFieldValue( CSSM_CL_HANDLE CLHandle, CSSM_HANDLE CertHandle, const CSSM_OID *CertField, CSSM_HANDLE_PTR ResultsHandle, uint32 *NumberOfMatchedFields, CSSM_DATA_PTR *FieldValue ); CSSM_RETURN CSSMAPI MAFCALL_CL_CertGetNextCachedFieldValue( CSSM_CL_HANDLE CLHandle, CSSM_HANDLE ResultsHandle, CSSM_DATA_PTR *FieldValue ); CSSM_RETURN CSSMAPI MAFCALL_CL_CertAbortCache( CSSM_CL_HANDLE CLHandle, CSSM_HANDLE CertHandle ); CSSM_RETURN CSSMAPI MAFCALL_CL_CertGroupToSignedBundle( CSSM_CL_HANDLE CLHandle, CSSM_CC_HANDLE CCHandle, const CSSM_CERTGROUP *CertGroupToBundle, const CSSM_CERT_BUNDLE_HEADER *BundleInfo, CSSM_DATA_PTR SignedBundle ); CSSM_RETURN CSSMAPI MAFCALL_CL_CertGroupFromVerifiedBundle( CSSM_CL_HANDLE CLHandle, CSSM_CC_HANDLE CCHandle, const CSSM_CERT_BUNDLE *CertBundle, const CSSM_DATA *SignerCert, CSSM_CERTGROUP_PTR *CertGroup ); CSSM_RETURN CSSMAPI MAFCALL_CL_CertDescribeFormat( CSSM_CL_HANDLE CLHandle, uint32 *NumberOfFields, CSSM_OID_PTR *OidList ); CSSM_RETURN CSSMAPI MAFCALL_CL_CrlCreateTemplate( CSSM_CL_HANDLE CLHandle, const CSSM_FIELD *CrlTemplate, uint32 NumberOfFields, CSSM_DATA_PTR NewCrl ); CSSM_RETURN CSSMAPI MAFCALL_CL_CrlSetFields( CSSM_CL_HANDLE CLHandle, const CSSM_FIELD *CrlTemplate, uint32 NumberOfFields, const CSSM_DATA *OldCrl, CSSM_DATA_PTR ModifiedCrl ); CSSM_RETURN CSSMAPI MAFCALL_CL_CrlAddCert( CSSM_CL_HANDLE CLHandle, CSSM_CC_HANDLE CCHandle, const CSSM_DATA *Cert, const CSSM_FIELD *CrlEntryFields, uint32 NumberOfFields, const CSSM_DATA *OldCrl, CSSM_DATA_PTR NewCrl ); CSSM_RETURN CSSMAPI MAFCALL_CL_CrlRemoveCert( CSSM_CL_HANDLE CLHandle, const CSSM_DATA *Cert, const CSSM_DATA *OldCrl, CSSM_DATA_PTR NewCrl ); CSSM_RETURN CSSMAPI MAFCALL_CL_CrlSign( CSSM_CL_HANDLE CLHandle, CSSM_CC_HANDLE CCHandle, const CSSM_DATA *UnsignedCrl, const CSSM_FIELD *SignScope, uint32 ScopeSize, CSSM_DATA_PTR SignedCrl ); CSSM_RETURN CSSMAPI MAFCALL_CL_CrlVerify( CSSM_CL_HANDLE CLHandle, CSSM_CC_HANDLE CCHandle, const CSSM_DATA *CrlToBeVerified, const CSSM_DATA *SignerCert, const CSSM_FIELD *VerifyScope, uint32 ScopeSize ); CSSM_RETURN CSSMAPI MAFCALL_CL_CrlVerifyWithKey( CSSM_CL_HANDLE CLHandle, CSSM_CC_HANDLE CCHandle, const CSSM_DATA *CrlToBeVerified ); CSSM_RETURN CSSMAPI MAFCALL_CL_IsCertInCrl( CSSM_CL_HANDLE CLHandle, const CSSM_DATA *Cert, const CSSM_DATA *Crl, CSSM_BOOL *CertFound ); CSSM_RETURN CSSMAPI MAFCALL_CL_CrlGetFirstFieldValue( CSSM_CL_HANDLE CLHandle, const CSSM_DATA *Crl, const CSSM_OID *CrlField, CSSM_HANDLE_PTR ResultsHandle, uint32 *NumberOfMatchedFields, CSSM_DATA_PTR *Value ); CSSM_RETURN CSSMAPI MAFCALL_CL_CrlGetNextFieldValue( CSSM_CL_HANDLE CLHandle, CSSM_HANDLE ResultsHandle, CSSM_DATA_PTR *Value ); CSSM_RETURN CSSMAPI MAFCALL_CL_CrlAbortQuery( CSSM_CL_HANDLE CLHandle, CSSM_HANDLE ResultsHandle ); CSSM_RETURN CSSMAPI MAFCALL_CL_CrlGetAllFields( CSSM_CL_HANDLE CLHandle, const CSSM_DATA *Crl, CSSM_FIELD_PTR *CrlFields, uint32 *NumberOfCrlFields ); CSSM_RETURN CSSMAPI MAFCALL_CL_CrlCache( CSSM_CL_HANDLE CLHandle, const CSSM_DATA *Crl, CSSM_HANDLE_PTR CrlHandle ); CSSM_RETURN CSSMAPI MAFCALL_CL_IsCertInCachedCrl( CSSM_CL_HANDLE CLHandle, const CSSM_DATA *Cert, CSSM_HANDLE CrlHandle, CSSM_BOOL *CertFound, CSSM_DATA_PTR CrlRecordIndex ); CSSM_RETURN CSSMAPI MAFCALL_CL_CrlGetFirstCachedFieldValue( CSSM_CL_HANDLE CLHandle, CSSM_HANDLE CrlHandle, const CSSM_DATA *CrlRecordIndex, const CSSM_OID *CrlField, CSSM_HANDLE_PTR ResultsHandle, uint32 *NumberOfMatchedFields, CSSM_DATA_PTR *FieldValue ); CSSM_RETURN CSSMAPI MAFCALL_CL_CrlGetNextCachedFieldValue( CSSM_CL_HANDLE CLHandle, CSSM_HANDLE ResultsHandle, CSSM_DATA_PTR *FieldValue ); CSSM_RETURN CSSMAPI MAFCALL_CL_CrlGetAllCachedRecordFields( CSSM_CL_HANDLE CLHandle, CSSM_HANDLE CrlHandle, const CSSM_DATA *CrlRecordIndex, uint32 *NumberOfFields, CSSM_FIELD_PTR *Fields ); CSSM_RETURN CSSMAPI MAFCALL_CL_CrlAbortCache( CSSM_CL_HANDLE CLHandle, CSSM_HANDLE CrlHandle ); CSSM_RETURN CSSMAPI MAFCALL_CL_CrlDescribeFormat( CSSM_CL_HANDLE CLHandle, uint32 *NumberOfFields, CSSM_OID_PTR *OidList ); CSSM_RETURN CSSMAPI MAFCALL_CL_PassThrough( CSSM_CL_HANDLE CLHandle, CSSM_CC_HANDLE CCHandle, uint32 PassThroughId, const void *InputParams, void **OutputParams ); /*************************************************************************/ /*** Data Storage Library Operations *************************************/ /*************************************************************************/ typedef CSSM_RETURN (CSSMAPI *_CSSM_DL_DbOpen_PTR)( CSSM_DL_HANDLE DLHandle, const char *DbName, const CSSM_NET_ADDRESS *DbLocation, CSSM_DB_ACCESS_TYPE AccessRequest, const CSSM_ACCESS_CREDENTIALS *AccessCred, const void *OpenParameters, CSSM_DB_HANDLE *DbHandle ); typedef CSSM_RETURN (CSSMAPI *_CSSM_DL_DbClose_PTR)( CSSM_DL_DB_HANDLE DLDBHandle ); typedef CSSM_RETURN (CSSMAPI *_CSSM_DL_DbCreate_PTR)( CSSM_DL_HANDLE DLHandle, const char *DbName, const CSSM_NET_ADDRESS *DbLocation, const CSSM_DBINFO *DBInfo, CSSM_DB_ACCESS_TYPE AccessRequest, const CSSM_RESOURCE_CONTROL_CONTEXT *CredAndAclEntry, const void *OpenParameters, CSSM_DB_HANDLE *DbHandle ); typedef CSSM_RETURN (CSSMAPI *_CSSM_DL_DbDelete_PTR)( CSSM_DL_HANDLE DLHandle, const char *DbName, const CSSM_NET_ADDRESS *DbLocation, const CSSM_ACCESS_CREDENTIALS *AccessCred ); typedef CSSM_RETURN (CSSMAPI *_CSSM_DL_CreateRelation_PTR)( CSSM_DL_DB_HANDLE DLDBHandle, CSSM_DB_RECORDTYPE RelationID, const char *RelationName, uint32 NumberOfAttributes, const CSSM_DB_SCHEMA_ATTRIBUTE_INFO *pAttributeInfo, uint32 NumberOfIndexes, const CSSM_DB_SCHEMA_INDEX_INFO *pIndexInfo ); typedef CSSM_RETURN (CSSMAPI *_CSSM_DL_DestroyRelation_PTR)( CSSM_DL_DB_HANDLE DLDBHandle, CSSM_DB_RECORDTYPE RelationID ); typedef CSSM_RETURN (CSSMAPI *_CSSM_DL_DbImport_PTR)( CSSM_DL_HANDLE DLHandle, const char *DbDestinationName, const CSSM_NET_ADDRESS *DbDestinationLocation, const CSSM_RESOURCE_CONTROL_CONTEXT *CredAndAclEntry, const char *DbSourceName, const CSSM_NET_ADDRESS *DbSourceLocation, CSSM_BOOL InfoOnly, const CSSM_ACCESS_CREDENTIALS *AccessCred, const void *DestinationOpenParameters, const void *SourceOpenParameters ); typedef CSSM_RETURN (CSSMAPI *_CSSM_DL_DbExport_PTR)( CSSM_DL_HANDLE DLHandle, const char *DbDestinationName, const CSSM_NET_ADDRESS *DbDestinationLocation, const CSSM_RESOURCE_CONTROL_CONTEXT *CredAndAclEntry, const char *DbSourceName, const CSSM_NET_ADDRESS *DbSourceLocation, CSSM_BOOL InfoOnly, const CSSM_ACCESS_CREDENTIALS *AccessCred, const void *DestinationOpenParameters, const void *SourceOpenParameters ); typedef CSSM_RETURN (CSSMAPI *_CSSM_DL_Authenticate_PTR)( CSSM_DL_DB_HANDLE DLDBHandle, CSSM_DB_ACCESS_TYPE AccessRequest, const CSSM_ACCESS_CREDENTIALS *AccessCred ); typedef CSSM_RETURN (CSSMAPI *_CSSM_DL_GetDbNames_PTR)( CSSM_DL_HANDLE DLHandle, CSSM_NAME_LIST_PTR *NameList ); typedef CSSM_RETURN (CSSMAPI *_CSSM_DL_GetDbNameFromHandle_PTR)( CSSM_DL_DB_HANDLE DLDBHandle, char ** DbName ); typedef CSSM_RETURN (CSSMAPI *_CSSM_DL_FreeNameList_PTR)( CSSM_DL_HANDLE DLHandle, CSSM_NAME_LIST_PTR NameList ); typedef CSSM_RETURN (CSSMAPI *_CSSM_DL_DataInsert_PTR)( CSSM_DL_DB_HANDLE DLDBHandle, CSSM_DB_RECORDTYPE RecordType, const CSSM_DB_RECORD_ATTRIBUTE_DATA *Attributes, const CSSM_DATA *Data, CSSM_DB_UNIQUE_RECORD_PTR *UniqueId ); typedef CSSM_RETURN (CSSMAPI *_CSSM_DL_DataDelete_PTR)( CSSM_DL_DB_HANDLE DLDBHandle, const CSSM_DB_UNIQUE_RECORD *UniqueRecordIdentifier ); typedef CSSM_RETURN (CSSMAPI *_CSSM_DL_DataModify_PTR)( CSSM_DL_DB_HANDLE DLDBHandle, CSSM_DB_RECORDTYPE RecordType, const CSSM_DB_UNIQUE_RECORD *UniqueRecordIdentifier, const CSSM_DB_RECORD_ATTRIBUTE_DATA *AttributesToBeModified, const CSSM_DATA *DataToBeModified, CSSM_DB_MODIFY_MODE ModifyMode ); typedef CSSM_RETURN (CSSMAPI *_CSSM_DL_DataGetFirst_PTR)( CSSM_DL_DB_HANDLE DLDBHandle, const CSSM_QUERY *Query, CSSM_HANDLE_PTR ResultsHandle, CSSM_BOOL *EndOfDataStore, CSSM_DB_RECORD_ATTRIBUTE_DATA_PTR Attributes, CSSM_DATA_PTR Data, CSSM_DB_UNIQUE_RECORD_PTR *UniqueId ); typedef CSSM_RETURN (CSSMAPI *_CSSM_DL_DataGetNext_PTR)( CSSM_DL_DB_HANDLE DLDBHandle, CSSM_HANDLE ResultsHandle, CSSM_BOOL *EndOfDataStore, CSSM_DB_RECORD_ATTRIBUTE_DATA_PTR Attributes, CSSM_DATA_PTR Data, CSSM_DB_UNIQUE_RECORD_PTR *UniqueId ); typedef CSSM_RETURN (CSSMAPI *_CSSM_DL_DataAbortQuery_PTR)( CSSM_DL_DB_HANDLE DLDBHandle, CSSM_HANDLE ResultsHandle ); typedef CSSM_RETURN (CSSMAPI *_CSSM_DL_DataGetFromUniqueRecordId_PTR)( CSSM_DL_DB_HANDLE DLDBHandle, const CSSM_DB_UNIQUE_RECORD *UniqueRecord, CSSM_DB_RECORD_ATTRIBUTE_DATA_PTR Attributes, CSSM_DATA_PTR Data ); typedef CSSM_RETURN (CSSMAPI *_CSSM_DL_FreeUniqueRecord_PTR)( CSSM_DL_DB_HANDLE DLDBHandle, CSSM_DB_UNIQUE_RECORD_PTR UniqueRecord ); typedef CSSM_RETURN (CSSMAPI *_CSSM_DL_PassThrough_PTR)( CSSM_DL_DB_HANDLE DLDBHandle, uint32 PassThroughId, const void *InputParams, void **OutputParams ); typedef CSSM_RETURN (CSSMAPI *_CSSM_DL_GetDbAcl_PTR)( CSSM_DL_DB_HANDLE DLDBHandle, const CSSM_STRING *SelectionTag, CSSM_ACL_ENTRY_INFO_PTR *AclInfos, uint32 NumberOfAclInfos ); typedef CSSM_RETURN (CSSMAPI *_CSSM_DL_ChangeDbAcl_PTR)( CSSM_DL_DB_HANDLE DLDBHandle, const CSSM_ACCESS_CREDENTIALS *AccessCred, const CSSM_ACL_EDIT *AclEdit ); typedef CSSM_RETURN (CSSMAPI *_CSSM_DL_GetDbOwner_PTR)( CSSM_DL_DB_HANDLE DLDBHandle, CSSM_ACL_OWNER_PROTOTYPE_PTR Owner ); typedef CSSM_RETURN (CSSMAPI *_CSSM_DL_ChangeDbOwner_PTR)( CSSM_DL_DB_HANDLE DLDBHandle, const CSSM_ACCESS_CREDENTIALS *AccessCred, const CSSM_ACL_OWNER_PROTOTYPE *NewOwner ); CSSM_RETURN CSSMAPI MAFCALL_DL_DbOpen( CSSM_DL_HANDLE DLHandle, const char *DbName, const CSSM_NET_ADDRESS *DbLocation, CSSM_DB_ACCESS_TYPE AccessRequest, const CSSM_ACCESS_CREDENTIALS *AccessCred, const void *OpenParameters, CSSM_DB_HANDLE *DbHandle ); CSSM_RETURN CSSMAPI MAFCALL_DL_DbClose( CSSM_DL_DB_HANDLE DLDBHandle ); CSSM_RETURN CSSMAPI MAFCALL_DL_DbCreate( CSSM_DL_HANDLE DLHandle, const char *DbName, const CSSM_NET_ADDRESS *DbLocation, const CSSM_DBINFO *DBInfo, CSSM_DB_ACCESS_TYPE AccessRequest, const CSSM_RESOURCE_CONTROL_CONTEXT *CredAndAclEntry, const void *OpenParameters, CSSM_DB_HANDLE *DbHandle ); CSSM_RETURN CSSMAPI MAFCALL_DL_DbDelete( CSSM_DL_HANDLE DLHandle, const char *DbName, const CSSM_NET_ADDRESS *DbLocation, const CSSM_ACCESS_CREDENTIALS *AccessCred ); CSSM_RETURN CSSMAPI MAFCALL_DL_CreateRelation( CSSM_DL_DB_HANDLE DLDBHandle, CSSM_DB_RECORDTYPE RelationID, const char *RelationName, uint32 NumberOfAttributes, const CSSM_DB_SCHEMA_ATTRIBUTE_INFO *pAttributeInfo, uint32 NumberOfIndexes, const CSSM_DB_SCHEMA_INDEX_INFO *pIndexInfo ); CSSM_RETURN CSSMAPI MAFCALL_DL_DestroyRelation( CSSM_DL_DB_HANDLE DLDBHandle, CSSM_DB_RECORDTYPE RelationID ); CSSM_RETURN CSSMAPI MAFCALL_DL_DbImport( CSSM_DL_HANDLE DLHandle, const char *DbDestinationName, const CSSM_NET_ADDRESS *DbDestinationLocation, const CSSM_RESOURCE_CONTROL_CONTEXT *CredAndAclEntry, const char *DbSourceName, const CSSM_NET_ADDRESS *DbSourceLocation, CSSM_BOOL InfoOnly, const CSSM_ACCESS_CREDENTIALS *AccessCred, const void *DestinationOpenParameters, const void *SourceOpenParameters ); CSSM_RETURN CSSMAPI MAFCALL_DL_DbExport( CSSM_DL_HANDLE DLHandle, const char *DbDestinationName, const CSSM_NET_ADDRESS *DbDestinationLocation, const CSSM_RESOURCE_CONTROL_CONTEXT *CredAndAclEntry, const char *DbSourceName, const CSSM_NET_ADDRESS *DbSourceLocation, CSSM_BOOL InfoOnly, const CSSM_ACCESS_CREDENTIALS *AccessCred, const void *DestinationOpenParameters, const void *SourceOpenParameters ); CSSM_RETURN CSSMAPI MAFCALL_DL_Authenticate( CSSM_DL_DB_HANDLE DLDBHandle, CSSM_DB_ACCESS_TYPE AccessRequest, const CSSM_ACCESS_CREDENTIALS *AccessCred ); CSSM_RETURN CSSMAPI MAFCALL_DL_GetDbNames( CSSM_DL_HANDLE DLHandle, CSSM_NAME_LIST_PTR *NameList ); CSSM_RETURN CSSMAPI MAFCALL_DL_GetDbNameFromHandle( CSSM_DL_DB_HANDLE DLDBHandle, char ** DbName ); CSSM_RETURN CSSMAPI MAFCALL_DL_FreeNameList( CSSM_DL_HANDLE DLHandle, CSSM_NAME_LIST_PTR NameList ); CSSM_RETURN CSSMAPI MAFCALL_DL_DataInsert( CSSM_DL_DB_HANDLE DLDBHandle, CSSM_DB_RECORDTYPE RecordType, const CSSM_DB_RECORD_ATTRIBUTE_DATA *Attributes, const CSSM_DATA *Data, CSSM_DB_UNIQUE_RECORD_PTR *UniqueId ); CSSM_RETURN CSSMAPI MAFCALL_DL_DataDelete( CSSM_DL_DB_HANDLE DLDBHandle, const CSSM_DB_UNIQUE_RECORD *UniqueRecordIdentifier ); CSSM_RETURN CSSMAPI MAFCALL_DL_DataModify( CSSM_DL_DB_HANDLE DLDBHandle, CSSM_DB_RECORDTYPE RecordType, const CSSM_DB_UNIQUE_RECORD *UniqueRecordIdentifier, const CSSM_DB_RECORD_ATTRIBUTE_DATA *AttributesToBeModified, const CSSM_DATA *DataToBeModified, CSSM_DB_MODIFY_MODE ModifyMode ); CSSM_RETURN CSSMAPI MAFCALL_DL_DataGetFirst( CSSM_DL_DB_HANDLE DLDBHandle, const CSSM_QUERY *Query, CSSM_HANDLE_PTR ResultsHandle, CSSM_BOOL *EndOfDataStore, CSSM_DB_RECORD_ATTRIBUTE_DATA_PTR Attributes, CSSM_DATA_PTR Data, CSSM_DB_UNIQUE_RECORD_PTR *UniqueId ); CSSM_RETURN CSSMAPI MAFCALL_DL_DataGetNext( CSSM_DL_DB_HANDLE DLDBHandle, CSSM_HANDLE ResultsHandle, CSSM_BOOL *EndOfDataStore, CSSM_DB_RECORD_ATTRIBUTE_DATA_PTR Attributes, CSSM_DATA_PTR Data, CSSM_DB_UNIQUE_RECORD_PTR *UniqueId ); CSSM_RETURN CSSMAPI MAFCALL_DL_DataAbortQuery( CSSM_DL_DB_HANDLE DLDBHandle, CSSM_HANDLE ResultsHandle ); CSSM_RETURN CSSMAPI MAFCALL_DL_DataGetFromUniqueRecordId( CSSM_DL_DB_HANDLE DLDBHandle, const CSSM_DB_UNIQUE_RECORD *UniqueRecord, CSSM_DB_RECORD_ATTRIBUTE_DATA_PTR Attributes, CSSM_DATA_PTR Data ); CSSM_RETURN CSSMAPI MAFCALL_DL_FreeUniqueRecord( CSSM_DL_DB_HANDLE DLDBHandle, CSSM_DB_UNIQUE_RECORD_PTR UniqueRecord ); CSSM_RETURN CSSMAPI MAFCALL_DL_PassThrough( CSSM_DL_DB_HANDLE DLDBHandle, uint32 PassThroughId, const void *InputParams, void **OutputParams ); CSSM_RETURN CSSMAPI MAFCALL_DL_GetDbAcl( CSSM_DL_DB_HANDLE DLDBHandle, const CSSM_STRING *SelectionTag, CSSM_ACL_ENTRY_INFO_PTR *AclInfos, uint32 NumberOfAclInfos ); CSSM_RETURN CSSMAPI MAFCALL_DL_ChangeDbAcl( CSSM_DL_DB_HANDLE DLDBHandle, const CSSM_ACCESS_CREDENTIALS *AccessCred, const CSSM_ACL_EDIT *AclEdit ); CSSM_RETURN CSSMAPI MAFCALL_DL_GetDbOwner( CSSM_DL_DB_HANDLE DLDBHandle, CSSM_ACL_OWNER_PROTOTYPE_PTR Owner ); CSSM_RETURN CSSMAPI MAFCALL_DL_ChangeDbOwner( CSSM_DL_DB_HANDLE DLDBHandle, const CSSM_ACCESS_CREDENTIALS *AccessCred, const CSSM_ACL_OWNER_PROTOTYPE *NewOwner ); #ifdef __cplusplus } #endif #endif /* ifndef __MAF_API_H__ */