X-Git-Url: https://git.saurik.com/apple/security.git/blobdiff_plain/80e2389990082500d76eb566d4946be3e786c3ef..d8f41ccd20de16f8ebe2ccc84d47bf1cb2b26bbb:/Security/libsecurity_cssm/lib/cssmspi.h?ds=inline diff --git a/Security/libsecurity_cssm/lib/cssmspi.h b/Security/libsecurity_cssm/lib/cssmspi.h new file mode 100644 index 00000000..35e8ea91 --- /dev/null +++ b/Security/libsecurity_cssm/lib/cssmspi.h @@ -0,0 +1,132 @@ +/* + * Copyright (c) 1999-2001,2003-2004,2011-2012,2014 Apple Inc. All Rights Reserved. + * + * @APPLE_LICENSE_HEADER_START@ + * + * This file contains Original Code and/or Modifications of Original Code + * as defined in and that are subject to the Apple Public Source License + * Version 2.0 (the 'License'). You may not use this file except in + * compliance with the License. Please obtain a copy of the License at + * http://www.opensource.apple.com/apsl/ and read it before using this + * file. + * + * The Original Code and all software distributed under the License are + * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER + * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, + * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. + * Please see the License for the specific language governing rights and + * limitations under the License. + * + * @APPLE_LICENSE_HEADER_END@ + * + * cssmspi.h -- Service Provider Interface for CSSM Modules + */ + +#ifndef _CSSMSPI_H_ +#define _CSSMSPI_H_ 1 + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +typedef CSSM_RETURN (CSSMAPI *CSSM_SPI_ModuleEventHandler) + (const CSSM_GUID *ModuleGuid, + void *CssmNotifyCallbackCtx, + uint32 SubserviceId, + CSSM_SERVICE_TYPE ServiceType, + CSSM_MODULE_EVENT EventType); + +typedef uint32 CSSM_CONTEXT_EVENT; +enum { + CSSM_CONTEXT_EVENT_CREATE = 1, + CSSM_CONTEXT_EVENT_DELETE = 2, + CSSM_CONTEXT_EVENT_UPDATE = 3 +}; + +typedef struct cssm_module_funcs { + CSSM_SERVICE_TYPE ServiceType; + uint32 NumberOfServiceFuncs; + const CSSM_PROC_ADDR *ServiceFuncs; +} CSSM_MODULE_FUNCS DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER, *CSSM_MODULE_FUNCS_PTR DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER; + +typedef void *(CSSMAPI *CSSM_UPCALLS_MALLOC) + (CSSM_HANDLE AddInHandle, + size_t size) DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER; + +typedef void (CSSMAPI *CSSM_UPCALLS_FREE) + (CSSM_HANDLE AddInHandle, + void *memblock) DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER; + +typedef void *(CSSMAPI *CSSM_UPCALLS_REALLOC) + (CSSM_HANDLE AddInHandle, + void *memblock, + size_t size) DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER; + +typedef void *(CSSMAPI *CSSM_UPCALLS_CALLOC) + (CSSM_HANDLE AddInHandle, + size_t num, + size_t size) DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER; + +typedef struct cssm_upcalls { + CSSM_UPCALLS_MALLOC malloc_func; + CSSM_UPCALLS_FREE free_func; + CSSM_UPCALLS_REALLOC realloc_func; + CSSM_UPCALLS_CALLOC calloc_func; + CSSM_RETURN (CSSMAPI *CcToHandle_func) + (CSSM_CC_HANDLE Cc, + CSSM_MODULE_HANDLE_PTR ModuleHandle); + CSSM_RETURN (CSSMAPI *GetModuleInfo_func) + (CSSM_MODULE_HANDLE Module, + CSSM_GUID_PTR Guid, + CSSM_VERSION_PTR Version, + uint32 *SubServiceId, + CSSM_SERVICE_TYPE *SubServiceType, + CSSM_ATTACH_FLAGS *AttachFlags, + CSSM_KEY_HIERARCHY *KeyHierarchy, + CSSM_API_MEMORY_FUNCS_PTR AttachedMemFuncs, + CSSM_FUNC_NAME_ADDR_PTR FunctionTable, + uint32 NumFunctions); +} CSSM_UPCALLS DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER, *CSSM_UPCALLS_PTR DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER; + +CSSM_RETURN CSSMSPI +CSSM_SPI_ModuleLoad (const CSSM_GUID *CssmGuid, + const CSSM_GUID *ModuleGuid, + CSSM_SPI_ModuleEventHandler CssmNotifyCallback, + void *CssmNotifyCallbackCtx) + DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER; + +CSSM_RETURN CSSMSPI +CSSM_SPI_ModuleUnload (const CSSM_GUID *CssmGuid, + const CSSM_GUID *ModuleGuid, + CSSM_SPI_ModuleEventHandler CssmNotifyCallback, + void *CssmNotifyCallbackCtx) + DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER; + +CSSM_RETURN CSSMSPI +CSSM_SPI_ModuleAttach (const CSSM_GUID *ModuleGuid, + const CSSM_VERSION *Version, + uint32 SubserviceID, + CSSM_SERVICE_TYPE SubServiceType, + CSSM_ATTACH_FLAGS AttachFlags, + CSSM_MODULE_HANDLE ModuleHandle, + CSSM_KEY_HIERARCHY KeyHierarchy, + const CSSM_GUID *CssmGuid, + const CSSM_GUID *ModuleManagerGuid, + const CSSM_GUID *CallerGuid, + const CSSM_UPCALLS *Upcalls, + CSSM_MODULE_FUNCS_PTR *FuncTbl) + DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER; + +CSSM_RETURN CSSMSPI +CSSM_SPI_ModuleDetach (CSSM_MODULE_HANDLE ModuleHandle) + DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER; + + +#ifdef __cplusplus +} +#endif + +#endif /* _CSSMSPI_H_ */