/*
 * Copyright 1999-2002 Sun Microsystems, Inc.  All rights reserved.
 * Use is subject to license terms.
 *
 * ident	"@(#)llib-lsmartcard	1.19	02/02/24 SMI"
 *
 */

/*LINTLIBRARY*/
/*PROTOLIB1*/

#include <smartcard.h>
#include <scf.h>


/* In ocf_authenticate.c... */

uint32_t OCF_Authenticate(OCF_ClientHandle_t, OCF_CardHandle_t, void *,
	OCF_ClientAuthenticationCallback_t);
uint32_t OCF_CardValid(OCF_ClientHandle_t, OCF_CardHandle_t);


/* In ocf_card_service.c... */

uint32_t OCF_CardService(OCF_CardServiceClass_t, OCF_CardServiceMethod_t,
	OCF_ClientHandle_t, OCF_CardHandle_t, OCF_CardServiceParams_t,
	OCF_CardServiceReturn_t);
uint32_t OCF_UserInfoCardService(OCF_CardServiceMethod_t,
	OCF_ClientHandle_t, OCF_CardHandle_t, OCF_CardServiceParams_t,
	OCF_CardServiceReturn_t);
uint32_t OCF_PINCardService(OCF_CardServiceMethod_t,
	OCF_ClientHandle_t, OCF_CardHandle_t, OCF_CardServiceParams_t,
	OCF_CardServiceReturn_t);
uint32_t OCF_PassThruCardService(OCF_CardServiceMethod_t,
	OCF_ClientHandle_t, OCF_CardHandle_t, uint8_t *, size_t,
	uint8_t **, size_t *);


/* In ocf_cardwait.c... */

uint32_t OCF_WaitForCardInserted(OCF_ClientHandle_t,
	OCF_CardSpec_t, OCF_CardHandle_t *);
uint32_t OCF_WaitForCardRemoved(OCF_ClientHandle_t, OCF_CardHandle_t,
	OCF_Timeout_t);
uint32_t OCF_CardPresent(OCF_ClientHandle_t, OCF_CardSpec_t);


/* In ocf_cardwait_private.c... */
uint32_t OCF_TimeSinceValidated(OCF_ClientHandle_t, OCF_CardHandle_t,
	uint64_t *);


/* In ocf_error.c... */

char *ocf_strerror(int);


/* In ocf_event.c... */

uint32_t OCF_RegisterEventHandler(OCF_ClientHandle_t, void *,
	OCF_EventHandler_t);
uint32_t OCF_DeregisterEventHandler(OCF_ClientHandle_t);
uint32_t OCF_RegisterForEvent(OCF_ClientHandle_t, OCF_Event_t,
	OCF_EventRegistrationData_t, void *, OCF_EventHandle_t *);
uint32_t OCF_DeregisterForEvent(OCF_EventHandle_t);


/* In ocf_init.c... */

uint32_t OCF_RegisterClient(int8_t *, int8_t *, OCF_ClientHandle_t *);
uint32_t OCF_DeregisterClient(OCF_ClientHandle_t);


/* In ocf_list.c... */

uint32_t OCF_ListCardServices(int8_t *, OCF_CardServicesList_t *);
uint32_t OCF_ListCardsPresent(OCF_CardsList_t *);
uint32_t OCF_ListCardsConfigured(OCF_CardsList_t *);
uint32_t OCF_ListReadersPresent(OCF_ReadersList_t *);
uint32_t OCF_ListReadersConfigured(OCF_ReadersList_t *);
int8_t *OCF_ListCardServices_First(OCF_CardServicesList_t);
int8_t *OCF_ListCardServices_Next(OCF_CardServicesList_t);
int8_t *OCF_ListCards_First(OCF_CardsList_t);
int8_t *OCF_ListCards_Next(OCF_CardsList_t);
int8_t *OCF_ListReaders_First(OCF_ReadersList_t);
int8_t *OCF_ListReaders_Next(OCF_ReadersList_t);
uint32_t OCF_DestroyCardServicesList(OCF_CardServicesList_t);
uint32_t OCF_DestroyCardsList(OCF_CardsList_t);
uint32_t OCF_DestroyReadersList(OCF_ReadersList_t);
uint32_t OCF_ListProperties(OCF_PropertyList_t *);
uint32_t OCF_ListClientProperties(OCF_ClientHandle_t, OCF_PropertyList_t *);
uint32_t OCF_ListCardProperties(OCF_ClientHandle_t, OCF_CardHandle_t,
	OCF_PropertyList_t *);


/* In ocf_property.c... */

uint32_t OCF_SetProperty(int8_t *, int8_t *);
uint32_t OCF_GetProperty(int8_t *, int8_t **);
uint32_t OCF_DeleteProperty(int8_t *);
uint32_t OCF_SetClientProperty(OCF_ClientHandle_t, int8_t *, int8_t *);
uint32_t OCF_GetClientProperty(OCF_ClientHandle_t, int8_t *, int8_t **);
uint32_t OCF_DeleteClientProperty(OCF_ClientHandle_t, int8_t *);
uint32_t OCF_SetCardProperty(OCF_ClientHandle_t, OCF_CardHandle_t, int8_t *,
	int8_t *);
uint32_t OCF_GetCardProperty(OCF_ClientHandle_t, OCF_CardHandle_t, int8_t *,
	int8_t **);
uint32_t OCF_DeleteCardProperty(OCF_ClientHandle_t, OCF_CardHandle_t, int8_t *);
int8_t *OCF_ListProperty_First(OCF_PropertyList_t);
int8_t *OCF_ListProperty_Next(OCF_PropertyList_t);
uint32_t OCF_DestroyPropertiesList(OCF_PropertyList_t);


/* In ocf_service.c... */

uint32_t OCF_LockCard(OCF_ClientHandle_t, OCF_CardHandle_t, OCF_Timeout_t);
uint32_t OCF_UnlockCard(OCF_ClientHandle_t, OCF_CardHandle_t);
