Changeset 1951 for trunk/reader-common.c
- Timestamp:
- 04/05/10 09:13:48 (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/reader-common.c
r1948 r1951 5 5 #include "icc_async_exports.h" 6 6 7 uchar cta_res[CTA_RES_LEN];8 ushort cta_lr;9 7 static int cs_ptyp_orig; //reinit=1, 10 8 extern int Sc8in1_Card_Changed (struct s_reader * reader); 9 extern int selectslot(struct s_reader * reader, int slot); 11 10 extern pthread_mutex_t sc8in1; //FIXME 11 12 12 #define SC_IRDETO 1 13 13 #define SC_CRYPTOWORKS 2 … … 59 59 } 60 60 61 extern int selectslot(struct s_reader * reader, int slot); 62 63 int reader_cmd2icc(struct s_reader * reader, uchar *buf, int l) 61 int reader_cmd2icc(struct s_reader * reader, uchar *buf, int l, uchar * cta_res, ushort * p_cta_lr) 64 62 { 65 63 int rc; 66 64 #ifdef HAVE_PCSC 67 if (reader ->typ == R_PCSC) {68 return (pcsc_reader_do_api(reader, buf, cta_res, &cta_lr,l));65 if (reader[ridx].typ == R_PCSC) { 66 return (pcsc_reader_do_api(reader, buf, cta_res, p_cta_lr,l)); 69 67 } 70 68 … … 72 70 73 71 cs_ddump(buf, l, "write to cardreader %s:",reader->label); 74 cta_lr=sizeof(cta_res)-1;72 *p_cta_lr=CTA_RES_LEN-1; //FIXME not sure whether this one is necessary 75 73 cs_ptyp_orig=cs_ptyp; 76 74 cs_ptyp=D_DEVICE; … … 80 78 selectslot(reader, reader->slot); 81 79 } 82 rc=ICC_Async_CardWrite(reader, buf, l, cta_res, &cta_lr);80 rc=ICC_Async_CardWrite(reader, buf, (unsigned short)l, cta_res, p_cta_lr); 83 81 if (reader->typ == R_SC8in1) { 84 82 cs_debug("SC8in1: unlocked for CardWrite of slot %i", reader->slot); … … 86 84 } 87 85 cs_ptyp=cs_ptyp_orig; 88 cs_ddump(cta_res, cta_lr, "answer from cardreader %s:", reader->label);86 cs_ddump(cta_res, *p_cta_lr, "answer from cardreader %s:", reader->label); 89 87 return rc; 90 88 } … … 92 90 #define CMD_LEN 5 93 91 94 int card_write(struct s_reader * reader, uchar *cmd, uchar *data )92 int card_write(struct s_reader * reader, uchar *cmd, uchar *data, uchar *response, ushort * response_length) 95 93 { 96 94 if (data) { … … 98 96 memcpy(buf, cmd, CMD_LEN); 99 97 if (cmd[4]) memcpy(buf+CMD_LEN, data, cmd[4]); 100 return(reader_cmd2icc(reader, buf, CMD_LEN+cmd[4] ));98 return(reader_cmd2icc(reader, buf, CMD_LEN+cmd[4], response, response_length)); 101 99 } 102 100 else 103 return(reader_cmd2icc(reader, cmd, CMD_LEN ));101 return(reader_cmd2icc(reader, cmd, CMD_LEN, response, response_length)); 104 102 } 105 103
Note:
See TracChangeset
for help on using the changeset viewer.