| 23 |
|
|
| 24 |
#include <string.h> |
#include <string.h> |
| 25 |
#include <stdlib.h> |
#include <stdlib.h> |
| 26 |
#include <pcsclite.h> |
#include <PCSC/pcsclite.h> |
| 27 |
#include <ifdhandler.h> |
#include <PCSC/ifdhandler.h> |
| 28 |
|
|
| 29 |
#include "commands.h" |
#include "commands.h" |
| 30 |
#include "protocol_t1/protocol_t1.h" |
#include "openct/proto-t1.h" |
| 31 |
#include "ccid.h" |
#include "ccid.h" |
| 32 |
#include "defs.h" |
#include "defs.h" |
| 33 |
#include "ccid_ifdhandler.h" |
#include "ccid_ifdhandler.h" |
| 75 |
|
|
| 76 |
if (buffer[STATUS_OFFSET] & CCID_COMMAND_FAILED) |
if (buffer[STATUS_OFFSET] & CCID_COMMAND_FAILED) |
| 77 |
{ |
{ |
| 78 |
ccid_error(buffer[ERROR_OFFSET], __FILE__, __LINE__); /* bError */ |
ccid_error(buffer[ERROR_OFFSET], __FILE__, __LINE__, __FUNCTION__); /* bError */ |
| 79 |
|
|
| 80 |
/* Protocol error in EMV mode */ |
/* Protocol error in EMV mode */ |
| 81 |
if (buffer[ERROR_OFFSET] == 0xBB && |
if (buffer[ERROR_OFFSET] == 0xBB && |
| 230 |
|
|
| 231 |
if (cmd_out[STATUS_OFFSET] & CCID_COMMAND_FAILED) |
if (cmd_out[STATUS_OFFSET] & CCID_COMMAND_FAILED) |
| 232 |
{ |
{ |
| 233 |
ccid_error(cmd_out[ERROR_OFFSET], __FILE__, __LINE__); /* bError */ |
ccid_error(cmd_out[ERROR_OFFSET], __FILE__, __LINE__, __FUNCTION__); /* bError */ |
| 234 |
return_value = IFD_COMMUNICATION_ERROR; |
return_value = IFD_COMMUNICATION_ERROR; |
| 235 |
} |
} |
| 236 |
|
|
| 277 |
|
|
| 278 |
if (cmd[STATUS_OFFSET] & CCID_COMMAND_FAILED) |
if (cmd[STATUS_OFFSET] & CCID_COMMAND_FAILED) |
| 279 |
{ |
{ |
| 280 |
ccid_error(cmd[ERROR_OFFSET], __FILE__, __LINE__); /* bError */ |
ccid_error(cmd[ERROR_OFFSET], __FILE__, __LINE__, __FUNCTION__); /* bError */ |
| 281 |
return_value = IFD_COMMUNICATION_ERROR; |
return_value = IFD_COMMUNICATION_ERROR; |
| 282 |
} |
} |
| 283 |
|
|
| 315 |
|
|
| 316 |
if (buffer[STATUS_OFFSET] & CCID_COMMAND_FAILED) |
if (buffer[STATUS_OFFSET] & CCID_COMMAND_FAILED) |
| 317 |
{ |
{ |
| 318 |
ccid_error(buffer[ERROR_OFFSET], __FILE__, __LINE__); /* bError */ |
ccid_error(buffer[ERROR_OFFSET], __FILE__, __LINE__, __FUNCTION__); /* bError */ |
| 319 |
return_value = IFD_COMMUNICATION_ERROR; |
return_value = IFD_COMMUNICATION_ERROR; |
| 320 |
} |
} |
| 321 |
|
|
| 432 |
|
|
| 433 |
if (cmd[STATUS_OFFSET] & CCID_COMMAND_FAILED) |
if (cmd[STATUS_OFFSET] & CCID_COMMAND_FAILED) |
| 434 |
{ |
{ |
| 435 |
ccid_error(cmd[ERROR_OFFSET], __FILE__, __LINE__); /* bError */ |
ccid_error(cmd[ERROR_OFFSET], __FILE__, __LINE__, __FUNCTION__); /* bError */ |
| 436 |
*rx_length = 0; /* nothing received */ |
*rx_length = 0; /* nothing received */ |
| 437 |
return IFD_COMMUNICATION_ERROR; |
return IFD_COMMUNICATION_ERROR; |
| 438 |
} |
} |
| 549 |
|
|
| 550 |
if (cmd[STATUS_OFFSET] & CCID_COMMAND_FAILED) |
if (cmd[STATUS_OFFSET] & CCID_COMMAND_FAILED) |
| 551 |
{ |
{ |
| 552 |
ccid_error(cmd[ERROR_OFFSET], __FILE__, __LINE__); /* bError */ |
ccid_error(cmd[ERROR_OFFSET], __FILE__, __LINE__, __FUNCTION__); /* bError */ |
| 553 |
return IFD_COMMUNICATION_ERROR; |
return IFD_COMMUNICATION_ERROR; |
| 554 |
} |
} |
| 555 |
|
|