Sun Microsystems Logo
Products and Services
 
Support and Training
 
 

A  B  C  D  E  F  G  H  I  J  K  L  M  N  O  P  Q  R  S  T  U  V  W  X  Y  Z  
 
Smartcard Library FunctionsSCF_Card_reset(3SMARTCARD)


NAME

 SCF_Card_reset - perform a reset of a smartcard

SYNOPSIS

 
cc [ flag... ] file... -lsmartcard [ library...] 
#include <smartcard/scf.h>
SCF_Status_t SCF_Card_reset(SCF_Card_t card);

PARAMETERS

 
card
The card (from SCF_Terminal_getCard(3SMARTCARD)) to be reset

DESCRIPTION

 

The SCF_Card_reset() function causes the specified smartcard to be reset by the terminal.

A card can be reset only if it has not been locked (with SCF_Card_lock(3SMARTCARD)) by another client. A client wishing to reset a card should either first call SCF_Card_lock() to obtain the card lock, or be prepared to retry the reset operation if it fails because another client holds the card lock.

When the card is reset, any SCF_Card_t object representing the card will continue to remain valid after the reset. When the reset occurs, an SCF_EVENT_CARDRESET event will be sent to all registered event listeners for the terminal (assuming they registered for this event). This is the only notification of a reset provided to SCF clients. When a client receives this event, it should be prepared to reinitialize any state on the card that might have been interrupted by the reset. New information about the card (for example, ATR, if it changed) can also be available from SCF_Card_getInfo(3SMARTCARD).


RETURN VALUES

 

If the card is successfully reset, SCF_STATUS_SUCCESS is returned. Otherwise, the status of the card remains unchanged and an error value is returned.


ERRORS

 

The SCF_Card_reset() function will fail if:

SCF_STATUS_BADHANDLE
The specified card has been closed or is invalid.
SCF_STATUS_CARDLOCKED
The card cannot be reset because another client holds a lock on the card.
SCF_STATUS_CARDREMOVED
The card cannot be reset because the card represented by the SCF_Card_t has been removed.
SCF_STATUS_COMMERROR
The connection to the server was lost.
SCF_STATUS_FAILED
An internal error occured.

EXAMPLES

 Example 1. Reset a card.
 
 
SCF_Status_t status;
SCF_Card_t myCard;

/* (...call SCF_Terminal_getCard to open myCard...) */

status = SCF_Card_lock(myCard, SCF_TIMEOUT_MAX);
if (status != SCF_STATUS_SUCCESS) exit(1);

status = SCF_Card_reset(myCard); 
if (status != SCF_STATUS_SUCCESS) exit(1);

status = SCF_Card_unlock(myCard);
if (status != SCF_STATUS_SUCCESS) exit(1);

/* ... */

ATTRIBUTES

 

See attributes(5) for descriptions of the following attributes:

ATTRIBUTE TYPEATTRIBUTE VALUE
Interface StabilityEvolving
MT-LevelMT-Safe

SEE ALSO

 

libsmartcard(3LIB), SCF_Card_getInfo(3SMARTCARD), SCF_Card_lock(3SMARTCARD), SCF_Terminal_addEventListener(3SMARTCARD), SCF_Terminal_getCard(3SMARTCARD), attributes(5)



SunOS 5.9Go To TopLast Changed 28 Feb 2001


Updated: 2004-01-16, 18:27