NAME
SpringCard Calypso API :: Card command set (security and transactions)
COPYRIGHT
(c) 2008 PRO ACTIVE SAS - See LICENCE.txt for licence information
AUTHOR
Johann Dantant / PRO ACTIVE
HISTORY
JDA 21/10/2008 : first public release JDA 04/01/2010 : implemented GetChallenge
NAME
CalypsoCardCloseSecureSession
DESCRIPTION
Close a secure session
INPUTS
CALYPSO_CTX_ST *ctx : library context BOOL ratify_now : if set, the session is immediately ratified BYTE sam_sign[4] : the signature provided by the Calypso SAM BYTE resp[] : buffer to receive the response BYTE *respsize : input = size of the response buffer output = actual length of the response (EXCLUDING the status word that must be 9000)
RETURNS
CALYPSO_RC : 0 or an error code
NOTES
This function is only a command sent to the card. The response is not interpreted by this function. It is up to the caller to 1. check that the returned content is valid 2. ask the SAM to verify card's signature For an automated implementation, use CalypsoCommitTransaction instead.
NAME
CalypsoCardGetChallenge
DESCRIPTION
Ask the card to generate an 8-byte challenge
INPUTS
CALYPSO_CTX_ST *ctx : library context BYTE challenge[8] : the challenge returned by the card
RETURNS
CALYPSO_RC : 0 or an error code
SEE ALSO
CalypsoSamGiveRandom
NAME
CalypsoCardOpenSecureSession1
DESCRIPTION
Open a secure session, Revision 1 implementation
INPUTS
CALYPSO_CTX_ST *ctx : library context BYTE resp[] : buffer to receive the response CALYPSO_SZ *respsize : input = size of the response buffer output = actual length of the response (EXCLUDING the status word that must be 9000) BYTE key_no : identifier of the cryptographic key BYTE sfi : identifier of the file to read (0 for current file) BYTE rec_no : identifier of the record to read (0 for none) const BYTE sam_chal[4] : challenge returned by the SAM (see CalypsoSamGetChallenge) BYTE card_chal[4] : buffer to receive card's challenge BOOL *ratified : tells whether last card session was ratified or not BYTE data[] : buffer to receive record data (if some) CALYPSO_SZ *datasize : input = size of the record data buffer output = actual length of record data
RETURNS
CALYPSO_RC : 0 or an error code
NAME
CalypsoCardOpenSecureSession2
DESCRIPTION
Open a secure session, Revision 2 implementation
INPUTS
CALYPSO_CTX_ST *ctx : library context BYTE resp[] : buffer to receive the response CALYPSO_SZ *respsize : input = size of the response buffer output = actual length of the response (EXCLUDING the status word that must be 9000) BYTE key_no : identifier of the cryptographic key BYTE sfi : identifier of the file to read (0 for current file) BYTE rec_no : identifier of the record to read (0 for none) const BYTE sam_chal[4] : challenge returned by the SAM (see CalypsoSamGetChallenge) BYTE card_chal[4] : buffer to receive card's challenge BOOL *ratified : tells whether last card session was ratified or not BYTE data[] : buffer to receive record data (if some) CALYPSO_SZ *datasize : input = size of the record data buffer output = actual length of record data BYTE *kvc : KVC specified by the card according to key_no
RETURNS
CALYPSO_RC : 0 or an error code
NAME
CalypsoCardOpenSecureSession3
DESCRIPTION
Open a secure session, Revision 3 implementation
INPUTS
CALYPSO_CTX_ST *ctx : library context BYTE resp[] : buffer to receive the response CALYPSO_SZ *respsize : input = size of the response buffer output = actual length of the response (EXCLUDING the status word that must be 9000) BYTE key_no : identifier of the cryptographic key BYTE sfi : identifier of the file to read (0 for current file) BYTE rec_no : identifier of the record to read (0 for none) const BYTE sam_chal[4] : challenge returned by the SAM (see CalypsoSamGetChallenge) BYTE card_chal[4] : buffer to receive card's challenge BOOL *ratified : tells whether last card session was ratified or not BYTE data[] : buffer to receive record data (if some) CALYPSO_SZ *datasize : input = size of the record data buffer output = actual length of record data BYTE *kvc : KVC specified by the card according to key_no BYTE *kif : KIF specified by the card according to key_no
RETURNS
CALYPSO_RC : 0 or an error code
NAME
CalypsoCardOpenSecureSessionEx
DESCRIPTION
Open a secure session on the card, with user-defined parameters
INPUTS
CALYPSO_CTX_ST *ctx : library context BYTE apdu_p1 : the P1 parameter BYTE apdu_p2 : the P2 parameter BYTE sam_chal[4] : the challenge provided by the Calypso SAM (see CalypsoSamSelectDiversifier) BYTE resp[] : buffer to receive the response BYTE *respsize : input = size of the response buffer output = actual length of the response (EXCLUDING the status word that must be 9000)
RETURNS
CALYPSO_RC : 0 or an error code
NOTES
This function is only a command sent to the card. The response is not interpreted by this function. It is up to the caller to 1. check that the returned content is valid 2. feed the SAM with card's challenge 3. use CalypsoSamDigestUpdate to feed the SAM with future exchanges For an automated implementation, use CalypsoStartTransaction instead.
NAME
CalypsoCardSendRatificationFrame
DESCRIPTION
Ask card to compute a challenge, specifying an invalid length (1 byte instead of 4). This command is used to ratify the session in a card not implementing the 'ratify on deselect' feature
INPUTS
CALYPSO_CTX_ST *ctx : library context
RETURNS
CALYPSO_RC : 0 or an error code