Previous section.

CDSA/CSSM Authenticaton: Human Recognition Service (HRS) API
Copyright © 2000 The Open Group

HRS Service Provider Interface

HRS Function Pointer Table

This structure defines the function table for all the HRS functions that a service provider can return to the CSSM Framework on CSSM_ModuleAttach().

The CSSM Framework uses these pointers to dispatch corresponding application programming interface functions to the HRS Service Provider for processing.


#define CSSMHRI CSSMAPI typedef struct cssm_spi_hrs_funcs { CSSM_RETURN (CSSMAPI *FreeBIRHandle) (CSSM_HRS_HANDLE ModuleHandle, CSSM_HRS_BIR_HANDLE Handle); CSSM_RETURN (CSSMAPI *GetBIRFromHandle) (CSSM_HRS_HANDLE ModuleHandle, CSSM_HRS_BIR_HANDLE Handle, CSSM_HRS_BIR_PTR *BIR); CSSM_RETURN (CSSMAPI *GetHeaderFromHandle) (CSSM_HRS_HANDLE ModuleHandle, CSSM_HRS_BIR_HANDLE Handle, CSSM_HRS_BIR_HEADER_PTR Header); CSSM_RETURN (CSSMAPI *EnableEvents) (CSSM_HRS_HANDLE ModuleHandle, CSSM_MODULE_EVENT_MASK *Events); CSSM_RETURN (CSSMAPI *SetGUICallbacks) (CSSM_HRS_HANDLE ModuleHandle, CSSM_HRS_GUI_STREAMING_CALLBACK GuiStreamingCallback, void *GuiStreamingCallbackCtx, CSSM_HRS_GUI_STATE_CALLBACK GuiStateCallback, void *GuiStateCallbackCtx); CSSM_RETURN (CSSMAPI *CancelGUICallbacks) (CSSM_HRS_HANDLE ModuleHandle); CSSM_RETURN (CSSMAPI *SetStreamCallback) (CSSM_HRS_HANDLE ModuleHandle, CSSM_HRS_STREAM_CALLBACK StreamCallback, void *StreamCallbackCtx); CSSM_RETURN (CSSMAPI *CancelStreamCallbacks) (CSSM_HRS_HANDLE ModuleHandle); CSSM_RETURN (CSSMAPI *StreamInputOutput) (CSSM_HRS_HANDLE ModuleHandle, CSSM_DATA_PTR InMessage, CSSM_DATA_PTR OutMessage); CSSM_RETURN (CSSMAPI *Capture) (CSSM_HRS_HANDLE ModuleHandle, CSSM_HRS_BIR_PURPOSE Purpose, CSSM_HRS_BIR_HANDLE_PTR CapturedBIR, sint32 Timeout, CSSM_HRS_BIR_HANDLE_PTR AuditData); CSSM_RETURN (CSSMAPI *CreateTemplate) (CSSM_HRS_HANDLE ModuleHandle, CSSM_HRS_BIR_PURPOSE Purpose, const CSSM_HRS_INPUT_BIR *CapturedBIR, const CSSM_HRS_INPUT_BIR *StoredTemplate, CSSM_HRS_BIR_HANDLE_PTR NewTemplate, const CSSM_DATA *Payload); CSSM_RETURN (CSSMAPI *Process) (CSSM_HRS_HANDLE ModuleHandle, const CSSM_HRS_INPUT_BIR *CapturedBIR, CSSM_HRS_BIR_HANDLE_PTR ProcessedBIR); CSSM_RETURN (CSSMAPI *VerifyMatch) (CSSM_HRS_HANDLE ModuleHandle, const CSSM_HRS_FAR *MaxFARRequested, const CSSM_HRS_FRR *MaxFRRRequested, const CSSM_BOOL *FARPrecedence, const CSSM_HRS_INPUT_BIR *ProcessedBIR, const CSSM_HRS_INPUT_BIR *StoredTemplate, CSSM_HRS_BIR_HANDLE *AdaptedBIR, CSSM_BOOL *Result, CSSM_HRS_FAR_PTR FARAchieved, CSSM_HRS_FRR_PTR FRRAchieved, CSSM_DATA_PTR *Payload); CSSM_RETURN (CSSMAPI *IdentifyMatch) (CSSM_HRS_HANDLE ModuleHandle, const CSSM_HRS_FAR *MaxFARRequested, const CSSM_HRS_FRR *MaxFRRRequested, const CSSM_BOOL *FARPrecedence, const CSSM_HRS_INPUT_BIR *ProcessedBIR, const CSSM_HRS_IDENTIFY_POPULATION *Population, CSSM_BOOL Binning, uint32 MaxNumberOfResults, uint32 *NumberOfResults, CSSM_HRS_CANDIDATE_ARRAY_PTR *Candidates, sint32 Timeout); CSSM_RETURN (CSSMAPI *Enroll) (CSSM_HRS_HANDLE ModuleHandle, CSSM_HRS_BIR_PURPOSE Purpose, const CSSM_HRS_INPUT_BIR *StoredTemplate, CSSM_HRS_BIR_HANDLE_PTR NewTemplate, const CSSM_DATA *Payload, sint32 Timeout, CSSM_HRS_BIR_HANDLE_PTR AuditData); CSSM_RETURN (CSSMAPI *Verify) (CSSM_HRS_HANDLE ModuleHandle, const CSSM_HRS_FAR *MaxFARRequested, const CSSM_HRS_FRR *MaxFRRRequested, const CSSM_BOOL *FARPrecedence, const CSSM_HRS_INPUT_BIR *StoredTemplate, CSSM_HRS_BIR_HANDLE_PTR AdaptedBIR, CSSM_BOOL *Result, CSSM_HRS_FAR_PTR FARAchieved, CSSM_HRS_FRR_PTR FRRAchieved, CSSM_DATA_PTR *Payload, sint32 Timeout, CSSM_HRS_BIR_HANDLE_PTR AuditData); CSSM_RETURN (CSSMAPI *Identify) (CSSM_HRS_HANDLE ModuleHandle, const CSSM_HRS_FAR *MaxFARRequested, const CSSM_HRS_FRR *MaxFRRRequested, const CSSM_BOOL *FARPrecedence, const CSSM_HRS_INPUT_BIR *ProcessedBIR, const CSSM_HRS_IDENTIFY_POPULATION *Population, CSSM_BOOL Binning, uint32 MaxNumberOfResults, uint32 *NumberOfResults, CSSM_HRS_CANDIDATE_ARRAY_PTR *Candidates, sint32 Timeout, CSSM_HRS_BIR_HANDLE_PTR AuditData); CSSM_RETURN (CSSMAPI *Import) (CSSM_HRS_HANDLE ModuleHandle, const CSSM_DATA *InputData, CSSM_HRS_BIR_BIOMETRIC_DATA_FORMAT InputFormat, CSSM_HRS_BIR_PURPOSE Purpose, CSSM_HRS_BIR_HANDLE_PTR ConstructedBIR); CSSM_RETURN (CSSMAPI *SetPowerMode) (CSSM_HRS_HANDLE ModuleHandle, CSSM_HRS_POWER_MODE PowerMode); CSSM_RETURN (CSMAPI *DbOpen) (CSSM_HRS_HANDLE ModuleHandle, const uint8 *DbName, CSSM_HRS_DB_ACCESS_TYPE AccessRequest, CSSM_HRS_DB_HANDLE_PTR DbHandle, CSSM_HRS_DB_CURSOR_PTR Cursor); CSSM_RETURN (CSSMAPI *DbClose) (CSSM_HRS_HANDLE ModuleHandle, CSSM_HRS_DB_HANDLE_PTR DbHandle); CSSM_RETURN (HRS *DbCreate) (CSSM_HRS_HANDLE ModuleHandle, const uint8 *DbName, CSSM_HRS_DB_ACCESS_TYPE AccessRequest, CSSM_HRS_DB_HANDLE_PTR DbHandle); CSSM_RETURN (CSSMAPI *DbDelete) (CSSM_HRS_HANDLE ModuleHandle, const uint8 *DbName); CSSM_RETURN (CSSMAPI *DbSetCursor) (CSSM_HRS_HANDLE ModuleHandle, CSSM_HRS_DB_HANDLE DbHandle, const CSSM_GUID *KeyValue, CSSM_HRS_DB_CURSOR_PTR Cursor); CSSM_RETURN (CSSMAPI *DbFreeCursor) (CSSM_HRS_HANDLE ModuleHandle, CSSM_HRS_DB_CURSOR_PTR Cursor); CSSM_RETURN (CSSMAPI *DbStoreBIR) (CSSM_HRS_HANDLE ModuleHandle, const CSSM_HRS_INPUT_BIR *BIRToStore, CSSM_HRS_DB_HANDLE DbHandle, CSSM_GUID_PTR Guid); CSSM_RETURN (CSSMAPI *DbGetBIR) (CSSM_HRS_HANDLE ModuleHandle, CSSM_HRS_DB_HANDLE DbHandle, const CSSM_GUID *KeyValue, CSSM_HRS_BIR_HANDLE_PTR RetrievedBIR, CSSM_HRS_DB_CURSOR_PTR Cursor); CSSM_RETURN (CSSMAPI *DbGetNextBIR) (CSSM_HRS_HANDLE ModuleHandle, CSSM_HRS_DB_CURSOR_PTR Cursor, CSSM_HRS_BIR_HANDLE_PTR RetrievedBIR, CSSM_GUID_PTR Guid); CSSM_RETURN (CSSMAPI *DbQueryBIR) (CSSM_HRS_HANDLE ModuleHandle, CSSM_HRS_DB_HANDLE DbHandle, const CSSM_HRS_INPUT_BIR *BIRToQuery, CSSM_GUID_PTR Guid); CSSM_RETURN (CSSMAPI *DbDeleteBIR) (CSSM_HRS_HANDLE ModuleHandle, CSSM_HRS_DB_HANDLE DbHandle, const CSSM_GUID *KeyValue); } CSSM_SPI_HRS_FUNCS, *CSSM_SPI_HRS_FUNCS_PTR;

SPI Definitions

To avoid unnecessary duplication of function call definitions, the SPI function call definitions are included with their corresponding API function call definitions, in API Definition.
Why not acquire a nicely bound hard copy?
Click here to return to the publication details or order a copy of this publication.

Contents Next section Index