Annotation of qemu/libcacard/vcard_emul.h, revision 1.1

1.1     ! root        1: /*
        !             2:  * This is the actual card emulator.
        !             3:  *
        !             4:  * These functions can be implemented in different ways on different platforms
        !             5:  * using the underlying system primitives. For Linux it uses NSS, though direct
        !             6:  * to PKCS #11, openssl+pkcs11, or even gnu crypto libraries+pkcs #11 could be
        !             7:  * used. On Windows CAPI could be used.
        !             8:  *
        !             9:  * This work is licensed under the terms of the GNU LGPL, version 2.1 or later.
        !            10:  * See the COPYING.LIB file in the top-level directory.
        !            11:  */
        !            12: 
        !            13: #ifndef VCARD_EMUL_H
        !            14: #define VCARD_EMUL_H 1
        !            15: 
        !            16: #include "card_7816t.h"
        !            17: #include "vcard.h"
        !            18: #include "vcard_emul_type.h"
        !            19: 
        !            20: /*
        !            21:  * types
        !            22:  */
        !            23: typedef enum {
        !            24:     VCARD_EMUL_OK = 0,
        !            25:     VCARD_EMUL_FAIL,
        !            26:     /* return values by vcard_emul_init */
        !            27:     VCARD_EMUL_INIT_ALREADY_INITED,
        !            28: } VCardEmulError;
        !            29: 
        !            30: /* options are emul specific. call card_emul_parse_args to change a string
        !            31:  * To an options struct */
        !            32: typedef struct VCardEmulOptionsStruct VCardEmulOptions;
        !            33: 
        !            34: /*
        !            35:  * Login functions
        !            36:  */
        !            37: /* return the number of login attempts still possible on the card. if unknown,
        !            38:  * return -1 */
        !            39: int vcard_emul_get_login_count(VCard *card);
        !            40: /* login into the card, return the 7816 status word (sw2 || sw1) */
        !            41: vcard_7816_status_t vcard_emul_login(VCard *card, unsigned char *pin,
        !            42:                                      int pin_len);
        !            43: 
        !            44: /*
        !            45:  * key functions
        !            46:  */
        !            47: /* delete a key */
        !            48: void vcard_emul_delete_key(VCardKey *key);
        !            49: /* RSA sign/decrypt with the key, signature happens 'in place' */
        !            50: vcard_7816_status_t vcard_emul_rsa_op(VCard *card, VCardKey *key,
        !            51:                                   unsigned char *buffer, int buffer_size);
        !            52: 
        !            53: void vcard_emul_reset(VCard *card, VCardPower power);
        !            54: void vcard_emul_get_atr(VCard *card, unsigned char *atr, int *atr_len);
        !            55: 
        !            56: /* Re-insert of a card that has been removed by force removal */
        !            57: VCardEmulError vcard_emul_force_card_insert(VReader *vreader);
        !            58: /* Force a card removal even if the card is not physically removed */
        !            59: VCardEmulError vcard_emul_force_card_remove(VReader *vreader);
        !            60: 
        !            61: VCardEmulOptions *vcard_emul_options(const char *args);
        !            62: VCardEmulError vcard_emul_init(const VCardEmulOptions *options);
        !            63: void vcard_emul_replay_insertion_events(void);
        !            64: void vcard_emul_usage(void);
        !            65: #endif

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.