Parent Directory
|
Revision Log
| Links to HEAD: | (view) (download) (annotate) |
| Sticky Revision: |
SecurePINModify(): separate the validation test in three different tests and add a debug message for each test
SecurePINVerify(): debug a debug message :-)
SecurePINModify(): circumvent a bug in Cherry XX44 keyboard firmware
SecurePINVerify/SecurePINModify: get the data from a T=1 TPDU block only if the exchange was successful (with special treatment for timeout and cancel cases)
SecurePINVerify(): move the prologue filing part to be homogenous with SecurePINModify()
SecurePINModify(): add support of T=1 cards with TPDU readers
SecurePINVerify(): add support of T=1 cards with TPDU readers
SecurePINVerify(): bug circumvention for the GemPC Pinpad (bNumberMessage)
SecurePINModify(): bug circumvention for the GemPC Pinpad
SecurePINModify(): modify the user command to make the SPR 532 and Cherry ST 2000C firmware happy
allow to select the power on voltage using Info.plist instead of recompiling the source code
remove PCSC/ from the pcsc-lite #include header files since the PCSC/ part is already given by `pkg-config --cflags libpcsclite`
SecurePINVerify()/SecurePINModify(): set the response length to 0 in case of (write) communication error
SecurePINModify(): set the response length to 0 in case of error in the command format
SecurePINModify(): set the readTimeout to at least 30 seconds since we are not waiting after an APDU but after a human (after the reader in fact).
SecurePINModify(): correct management of bMsgIndex2 and bMsgIndex3
SecurePINModify(): do not copy the ulDataLength field to the CCID frame
CCID_Transmit(): cmd[8-9] is the expected length in character mode only. It shall be 0x0000 for TPDU and short APDU modes.
SecurePINVerify(): set the readTimeout to at least 30 seconds since we are not waiting after an APDU but after a human.
SecurePINVerify(): update the size of ulDataLength field as defined in PCSCv2 part 10, revision 2.01.04, september 2005
add support of PC/SC v2 part 10 CM_IOCTL_GET_FEATURE_REQUEST add support of FEATURE_VERIFY_PIN_DIRECT and FEATURE_MODIFY_PIN_DIRECT remove support of IOCTL_SMARTCARD_VENDOR_VERIFY_PIN (now obsoleted)
CCID_Receive(): log time extension messages at priority COMM instead of CRITICAL. Thanks to Martin Paljak for the patch.
CmdPowerOn(): atr_len is unsigned avoids a "comparison between signed and unsigned" warning
CmdEscape(): replay the command if we receive STATUS_COMM_NAK
change licence from GNU GPL to GNU LGPL
CmdXfrBlockCHAR_T0(): move a variable declaration at the beginning of the function since ISO C89 forbids mixed declarations and code
SecurePIN(): proprietary command to add the PIN code in the APDU without any padding (this is not possible with the CCID specs). Thanks to Martin Paljak for the patch.
SecurePIN(), CCID_Transmit(), SetParameters(): check that the user provided command is not too large (avoid a possible buffer overflow)
SecurePIN(): directly use the user buffer passed instead of reversing the APDU/CCID structure. It is now as described in the CCID specifications. Thanks to Martin Paljak. I was wrong.
Add support of character level communication (CCID_CLASS_CHARACTER). Thanks to Jeffrey Dai
CmdGetSlotStatus(): card absent or mute is not an communication error (even if the CCID command result indicates a command failure)
CmdPowerOn(): do not use a null terminated C string for the EMV->ISO switch command since the command is NOT a C string
switch the Cherry xx33 reader in ISO mode if power up in EMV mode fails. Thanks to St�phane Durand for the bug report.
SetParameters(): returns IFD_NOT_SUPPORTED if the CCID error is "command not supported".
use (*ccid_descriptor->pbSeq)++ instead of ccid_descriptor->bSeq++
use reader_index instead of lun as reader identification
use bCurrentSlotIndex as the slot number in the CCID commands (instead of 0)
BUG: CmdPowerOn(): use memmove() instead of memcpy() to copy the ATR bytes since the source end destination buffers (with a more than 10 bytes long ATR) overlaps. Bug spotted by splint http://www.splint.org/
BUG in CmdXfrBlockTPDU_T1(): the t1_transceive() returned value was stored in an unsigned int and tested if < 0 (error case). Of course the test was never true.
i2dw() is not used outside commands.c so declare it static
CmdXfrBlockTPDU_T0() and CmdXfrBlockTPDU_T1() are internal functions so declare them static
lun is (unsigned int) instead of (int) Avoid a warning by splint in #define LunToReaderIndex(Lun) (Lun>>16) Left operand of >> may be negative (int): lun >> 16
CmdXfrBlockTPDU_T1(): use the T=1 TPDU layer from opensc/ instead of towitoko/
CCID_Receive() returns IFD_PARITY_ERROR if the error returned by the reader is 0xFD (parity error) and IFD_COMMUNICATION_ERROR otherwise (so that the T=1 TPDU layer can recover the error)
CCID_Transmit() now has a new "unsigned char bBWI" argument
CmdPowerOn(): add a mechanism to allow power on at 1.8V, 3V and then 5V as specified by ISO 7816. We still use 5V for now to avoid problems with non ISO compliant cards
add __FUNCTION__ as argument to ccid_error()
set *rx_length to 0 when a ReadPort() error is returned. The problem was not solved by ccid_usb.c 1.25.
bPINOperation is not passed in the user command since the command is "PIN Verification" and nothing else
recompile using gcc -pedantic and correct: - some C++ syntax comments - many signedness "problems"
add support for Secure PIN through SCardControl() (see sample code in examples/)
redefined CmdEscape() to pass the CCID message instead of just a tag
set received size to 0 in case of error in CmdXfrBlockTPDU_T1
in case of error exits CCID_Receive() without copying an nonexistent anwser
add SetParameters() CCID command
replace CmdXfrBlockTPDU() by CmdXfrBlockTPDU_T0() and CmdXfrBlockTPDU_T1()
split CmdXfrBlockShortAPDU() in CCID_Transmit() and CCID_Receive()
use an (int *) instead of a PDWORD for rx_length argument
comment out the automatic GET RESPONSE part. I don't think it should be in the driver. Maybe in pcscd instead?
correct a stupid bug that occurs with an APDU with 2 bytes response.
- support auto voltage at power on if reader support it - support Gemplus proprietary command to switch reader from TPDU to APDU mode - use APDU mode if reader support it. make it easy to support extended APDU but I have no reader to test this.
Initial revision
This form allows you to request diffs between any two revisions of this file. For each of the two "sides" of the diff, enter a numeric revision.
| ViewVC Help | |
| Powered by ViewVC 1.1.5 |