CSSM_ModuleAttach(3)CSSM_ModuleAttach(3)NAMECSSM_ModuleAttach - Attach and verify a service provider module (CDSA)
SYNOPSIS
# include <cdsa/cssm.h>
CSSM_RETURN CSSMAPI CSSM_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)
LIBRARY
Common Security Services Manager library (libcssm.so)
PARAMETERS
A pointer to the CSSM_GUID structure containing the global unique iden‐
tifier for the CSP module. The major and minor version number of CDSA
that the application is compatible with. A structure containing point‐
ers to the memory routines. A SubServiceID identifying a particular
subservice within the module. Subservice IDs can be obtained from MDS
or gleaned from insertion events reported through the callback function
installed through CSSM_ModuleLoad(). Modules that provide only one ser‐
vice can use zero as their subservice ID. A service mask describing
the type of service the caller is requesting of the service provider
module. A mask representing the caller's request for session-specific
services. The CSSM_KEY_HIERARCHY option directing CSSM what embedded
key to use when verifying integrity of the named module. A table of
function-name and API function-pointer pairs. The caller provides the
name of the functions as input. The corresponding API function pointers
are returned on output. The function table allows dynamic linking of
CDSA interfaces, including interfaces to Elective Module Managers
(EMMs), which are transparently loaded by CSSM during CSSM_ModuleAt‐
tach(). The number of entries in the FunctionTable parameter. If no
FunctionTable is provided, this value must be zero. This field is
reserved for future use. It should always be set to zero A new module
handle that can be used to interact with the requested service
provider. The value will be set to CSSM_INVALID_HANDLE if the function
fails.
DESCRIPTION
This function attaches the service provider module and verifies that
the version of the module expected by the application is compatible
with the version on the system. The module can implement subservices
(described in your service provider's documentation). The caller can
specify a specific subservice provided by the module.
If the subservice is supported as part of the CSSM framework as well as
by an EMM, ModuleAttach attaches the Service Provider to the CSSM
framework. If the subservice is supported only by an EMM, ModuleAttach
loads the appropriate EMM. The service provider is given an indication
of whether it is being attached to the CSSM framework or an EMM.
The caller can provide a function table containing function names for
the desired services. On output each function name is matched with an
API function pointer. The caller can use the pointers to invoke service
module operations through CSSM.
RETURN VALUE
A CSSM_RETURN value indicating success or specifying a particular error
condition. The value CSSM_OK indicates success. All other values repre‐
sent an error condition.
ERRORS
Errors are described in the CDSA technical standard. See
CDSA_intro(3). CSSMERR_CSSM_INVALID_ADDIN_FUNCTION_TABLE CSS‐
MERR_CSSM_EMM_AUTHENTICATE_FAILED CSSMERR_CSSM_ADDIN_AUTHENTI‐
CATE_FAILED CSSMERR_CSSM_INVALID_SERVICE_MASK CSSMERR_CSSM_MOD‐
ULE_NOT_LOADED CSSMERR_CSSM_INVALID_SUBSERVICEID CSS‐
MERR_CSSM_INVALID_KEY_HIERARCHY CSSMERR_CSSM_INVALID_GUID
SEE ALSO
Books
Intel CDSA Application Developer's Guide (see CDSA_intro(3))
Reference Pages
Functions: CSSM_ModuleDetach(3)CSSM_ModuleAttach(3)