Annotation of qemu/libcacard/vcard.h, revision 1.1.1.1

1.1       root        1: /*
                      2:  * This work is licensed under the terms of the GNU LGPL, version 2.1 or later.
                      3:  * See the COPYING.LIB file in the top-level directory.
                      4:  */
                      5: #ifndef VCARD_H
                      6: #define VCARD_H 1
                      7: 
                      8: #include "vcardt.h"
                      9: 
                     10: /*
                     11:  * response buffer constructors and destructors.
                     12:  *
                     13:  * response buffers are used when we need to return more data than will fit in
                     14:  * a normal APDU response (nominally 254 bytes).
                     15:  */
                     16: VCardBufferResponse *vcard_buffer_response_new(unsigned char *buffer, int size);
                     17: void vcard_buffer_response_delete(VCardBufferResponse *buffer_response);
                     18: 
                     19: 
                     20: /*
                     21:  * clean up state on reset
                     22:  */
                     23: void vcard_reset(VCard *card, VCardPower power);
                     24: 
                     25: /*
                     26:  * applet utilities
                     27:  */
                     28: /*
                     29:  * Constructor for a VCardApplet
                     30:  */
                     31: VCardApplet *vcard_new_applet(VCardProcessAPDU applet_process_function,
                     32:                               VCardResetApplet applet_reset_function,
                     33:                               unsigned char *aid, int aid_len);
                     34: 
                     35: /*
                     36:  * destructor for a VCardApplet
                     37:  *  Can be called with a NULL applet
                     38:  */
                     39: void vcard_delete_applet(VCardApplet *applet);
                     40: 
                     41: /* accessor - set the card type specific private data */
                     42: void vcard_set_applet_private(VCardApplet *applet, VCardAppletPrivate *_private,
                     43:                               VCardAppletPrivateFree private_free);
                     44: 
                     45: /* set type of vcard */
                     46: void vcard_set_type(VCard *card, VCardType type);
                     47: 
                     48: /*
                     49:  * utilities interacting with the current applet
                     50:  */
                     51: /* add a new applet to a card */
                     52: VCardStatus vcard_add_applet(VCard *card, VCardApplet *applet);
                     53: /* find the applet on the card with the given aid */
                     54: VCardApplet *vcard_find_applet(VCard *card, unsigned char *aid, int aid_len);
                     55: /* set the following applet to be current on the given channel */
                     56: void vcard_select_applet(VCard *card, int channel, VCardApplet *applet);
                     57: /* get the card type specific private data on the given channel */
                     58: VCardAppletPrivate *vcard_get_current_applet_private(VCard *card, int channel);
                     59: /* fetch the applet's id */
                     60: unsigned char *vcard_applet_get_aid(VCardApplet *applet, int *aid_len);
                     61: 
                     62: /* process the apdu for the current selected applet/file */
                     63: VCardStatus vcard_process_applet_apdu(VCard *card, VCardAPDU *apdu,
                     64:                                       VCardResponse **response);
                     65: /*
                     66:  * VCard utilities
                     67:  */
                     68: /* constructor */
                     69: VCard *vcard_new(VCardEmul *_private, VCardEmulFree private_free);
                     70: /* get a reference */
                     71: VCard *vcard_reference(VCard *);
                     72: /* destructor (reference counted) */
                     73: void vcard_free(VCard *);
                     74: /* get the atr from the card */
                     75: void vcard_get_atr(VCard *card, unsigned char *atr, int *atr_len);
                     76: void vcard_set_atr_func(VCard *card, VCardGetAtr vcard_get_atr);
                     77: 
                     78: /* accessor functions for the response buffer */
                     79: VCardBufferResponse *vcard_get_buffer_response(VCard *card);
                     80: void vcard_set_buffer_response(VCard *card, VCardBufferResponse *buffer);
                     81: /* accessor functions for the type */
                     82: VCardType vcard_get_type(VCard *card);
                     83: /* get the private data */
                     84: VCardEmul *vcard_get_private(VCard *card);
                     85: 
                     86: #endif

unix.superglobalmegacorp.com