Go to the source code of this file.
Data Structures | |
struct | _S_ccid_bulk_in_header |
struct | _S_ccid_bulk_out_header |
struct | _S_ccid_PIN_Verification |
struct | _S_ccid_PIN_Modification |
struct | _S_ccid_protocol_t0 |
struct | _S_ccid_protocol_t1 |
struct | _CCIDDescriptor |
Defines | |
#define | ABDATA_SIZE 260 |
#define | PROTOCOL_TO 0 |
#define | PROTOCOL_T1 1 |
#define | CCID_FEATURES_NADA 0x00000000 |
#define | CCID_FEATURES_AUTO_PCONF 0x00000002 |
#define | CCID_FEATURES_AUTO_ACTIV 0x00000004 |
#define | CCID_FEATURES_AUTO_VOLT 0x00000008 |
#define | CCID_FEATURES_AUTO_CLOCK 0x00000010 |
#define | CCID_FEATURES_AUTO_BAUD 0x00000020 |
#define | CCID_FEATURES_AUTO_PNEGO 0x00000040 |
#define | CCID_FEATURES_AUTO_PPS 0x00000080 |
#define | CCID_FEATURES_ICCSTOP 0x00000100 |
#define | CCID_FEATURES_NAD 0x00000200 |
#define | CCID_FEATURES_AUTO_IFSD 0x00000400 |
#define | CCID_FEATURES_EXC_TPDU 0x00010000 |
#define | CCID_FEATURES_EXC_SAPDU 0x00020000 |
#define | CCID_FEATURES_EXC_APDU 0x00040000 |
#define | CCID_FEATURES_WAKEUP 0x00100000 |
Functions | |
struct _CCIDDriverConfigurationDescriptors | __attribute__ ((packed)) |
Driver structure for an CCID device. | |
unsigned char | RDRtoPCHardwareError (unsigned char bSlot, unsigned char bSeq, unsigned char bHardwareErrorCode) |
void | USBDCallbacks_RequestReceived (const USBGenericRequest *request) |
void | CCID_SmartCardRequest (void) |
void | CCIDDriver_Initialize (void) |
unsigned char | CCID_Read (void *pBuffer, unsigned int dLength, TransferCallback fCallback, void *pArgument) |
unsigned char | CCID_Write (void *pBuffer, unsigned int dLength, TransferCallback fCallback, void *pArgument) |
unsigned char | CCID_Insertion (void) |
unsigned char | CCID_Removal (void) |
Variables | |
unsigned char | bMessageType |
unsigned long | wLength |
unsigned char | bSlot |
unsigned char | bSeq |
unsigned char | bStatus |
unsigned char | bError |
unsigned char | bSpecific |
unsigned char | abData [ABDATA_SIZE] |
unsigned char | bSizeToSend |
unsigned char | bSpecific_0 |
unsigned char | bSpecific_1 |
unsigned char | bSpecific_2 |
unsigned char | APDU [ABDATA_SIZE] |
unsigned char | bTimerOut |
unsigned char | bmFormatString |
unsigned char | bmPINBlockString |
unsigned char | bmPINLengthFormat |
unsigned char | wPINMaxExtraDigit |
unsigned char | bEntryValidationCondition |
unsigned char | bNumberMessage |
unsigned char | wLangId |
unsigned char | bMsgIndex |
unsigned char | bTeoPrologue [3] |
unsigned char | abPINApdu [255] |
unsigned char | bTimeOut |
unsigned char | bmFormatString4 |
unsigned char | bmPinLengthFormat |
unsigned char | bInsertionOffsetOld |
unsigned char | bInsertionOffsetNew |
unsigned char | bConfirmPIN |
unsigned char | bMsgIndex1 |
unsigned char | bMsgIndex2 |
unsigned char | bMsgIndex3 |
unsigned char | bmFindexDindex |
unsigned char | bmTCCKST0 |
unsigned char | bGuardTimeT0 |
unsigned char | bWaitingIntegerT0 |
unsigned char | bClockStop |
unsigned char | bmTCCKST1 |
unsigned char | bGuardTimeT1 |
unsigned char | bmWaitingIntegersT1 |
unsigned char | bIFSC |
unsigned char | bNadValue |
unsigned char | bLength |
unsigned char | bDescriptorType |
unsigned short | bcdCCID |
unsigned char | bMaxSlotIndex |
unsigned char | bVoltageSupport |
unsigned long | dwProtocols |
unsigned long | dwDefaultClock |
unsigned long | dwMaximumClock |
unsigned char | bNumClockSupported |
unsigned long | dwDataRate |
unsigned long | dwMaxDataRate |
unsigned char | bNumDataRatesSupported |
unsigned long | dwMaxIFSD |
unsigned long | dwSynchProtocols |
unsigned long | dwMechanical |
unsigned long | dwFeatures |
unsigned long | dwMaxCCIDMessageLength |
unsigned char | bClassGetResponse |
unsigned char | bClassEnvelope |
unsigned short | wLcdLayout |
unsigned char | bPINSupport |
unsigned char | bMaxCCIDBusySlots |
------------------------------------------------------------------------------
Definition of methods for using a CCID device driver.
Definition in file cciddriver.h.
unsigned char abData[ABDATA_SIZE] |
Data block sent to the CCID.
Definition at line 150 of file cciddriver.h.
unsigned char abPINApdu |
APDU to send to the ICC
Byte array APDU to send to the ICC
Definition at line 209 of file cciddriver.h.
unsigned char APDU[ABDATA_SIZE] |
Application Protocol Data Unit
Definition at line 169 of file cciddriver.h.
unsigned short bcdCCID |
Integrated Circuit(s) Cards Interface Devices (CCID) Specification Release Number
Definition at line 399 of file cciddriver.h.
unsigned char bClassEnvelope |
Significant only for CCID that offers an extended APDU level for exchanges.
Definition at line 460 of file cciddriver.h.
unsigned char bClassGetResponse |
Significant only for CCID that offers an APDU level for exchanges.
Definition at line 458 of file cciddriver.h.
unsigned char bClockStop |
ICC Clock Stop Support 00 = Stopping the Clock is not allowed 01 = Stop with Clock signal Low 02 = Stop with Clock signal High 03 = Stop with Clock either High or Low
Definition at line 289 of file cciddriver.h.
unsigned char bConfirmPIN |
00h,01h,02h,03h Indicates if a confirmation is requested before acceptance of a new PIN (meaning that the user has to enter this new PIN twice before it is accepted) Indicates if the current PIN must be entered and set in the same APDU field of not.
Definition at line 256 of file cciddriver.h.
uint8_t bDescriptorType |
Functional Descriptor type
Descriptor type (USBGenericDescriptor_ENDPOINT).
Descriptor type (AUDGenericDescriptor_ENDPOINT).
Descriptor type (AUDGenericDescriptor_INTERFACE).
Descriptor type (AUDGenericDescriptor_INTERFACE).
Descriptor type .
Descriptor type (HIDGenericDescriptor_HID).
Descriptor type (USBGenericDescriptor_DEVICE).
Descriptor type (USBGenericDescriptor_OTG).
Descriptor type (USBDESC_DEVICE_QUALIFIER or "USB device types").
Descriptor type (USBDESC_CONFIGURATION of USB Descriptor types USB Descriptor types).
Descriptor type (USBGenericDescriptor_INTERFACE).
Descriptor type (USBGenericDescriptor_ENDPOINT).
Definition at line 396 of file cciddriver.h.
unsigned char bEntryValidationCondition |
The value is a bit wise OR operation.
The value is a bit wise OR operation. 01h Max size reached 02h Validation key pressed 04h Timeout occurred
Definition at line 199 of file cciddriver.h.
unsigned char bError |
Slot error
Definition at line 146 of file cciddriver.h.
unsigned char bGuardTimeT0 |
Extra Guardtime between two characters. Add 0 to 254 etu to the normal guardtime of 12etu. FFh is the same as 00h.
Definition at line 279 of file cciddriver.h.
unsigned char bGuardTimeT1 |
Extra Guardtime (0 to 254 etu between two characters). If value is FFh, then guardtime is reduced by 1.
Definition at line 320 of file cciddriver.h.
unsigned char bIFSC |
Size of negotiated IFSC
Definition at line 334 of file cciddriver.h.
unsigned char bInsertionOffsetNew |
Insertion position offset in byte for the new PIN
Definition at line 248 of file cciddriver.h.
unsigned char bInsertionOffsetOld |
Insertion position offset in byte for the current PIN
Definition at line 246 of file cciddriver.h.
uint8_t bLength |
Size of this descriptor, in bytes.
Size of the descriptor in bytes.
Size of descriptor in bytes.
Numeric expression identifying the length of each Physical descriptor
Size of this descriptor in bytes.
Definition at line 394 of file cciddriver.h.
unsigned char bMaxCCIDBusySlots |
Maximum number of slots which can be simultaneously busy.
Definition at line 466 of file cciddriver.h.
unsigned char bMaxSlotIndex |
Index of the highest available slot. An USB-ICC is regarded as a single slot CCID.
Definition at line 402 of file cciddriver.h.
unsigned char bmFindexDindex |
B7-4 FI Index into the table 7 in ISO/IEC 7816-3:1997 selecting a clock rate conversion factor B3-0 DI - Index into the table 8 in ISO/IEC 7816-3:1997 selecting a baud rate conversion factor
Definition at line 272 of file cciddriver.h.
unsigned char bmFormatString |
Several parameters for the PIN format options
Definition at line 191 of file cciddriver.h.
unsigned char bmFormatString4 |
Several parameters for the PIN format options (defined in § 6.1.11.4)
Definition at line 240 of file cciddriver.h.
unsigned char bmPINBlockString |
Define the length of the PIN to present in the APDU command
Definition at line 193 of file cciddriver.h.
unsigned char bmPINLengthFormat |
Allows the length PIN insertion in the APDU command
Definition at line 195 of file cciddriver.h.
unsigned char bmPinLengthFormat |
Allows the length PIN insertion in the APDU command (defined in § 6.1.11.6)
Definition at line 244 of file cciddriver.h.
unsigned char bMsgIndex |
Message index in the Reader message table
Definition at line 205 of file cciddriver.h.
unsigned char bMsgIndex1 |
Message index in the Reader message table (should be 00h or 01h).
Definition at line 268 of file cciddriver.h.
unsigned char bMsgIndex2 |
Message index in the Reader message table (should be 01h or 02h).
Definition at line 270 of file cciddriver.h.
unsigned char bMsgIndex3 |
Message index in the Reader message table (should be 02h).
Definition at line 272 of file cciddriver.h.
unsigned char bmTCCKST0 |
For T=0 ,B0 0b, B7-2 000000b B1 Convention used (b1=0 for direct, b1=1 for inverse)
Definition at line 275 of file cciddriver.h.
unsigned char bmTCCKST1 |
For T=1, B7-2 000100b B0 Checksum type (b0=0 for LRC, b0=1 for CRC B1 Convention used (b1=0 for direct, b1=1 for inverse)
Definition at line 316 of file cciddriver.h.
unsigned char bmWaitingIntegersT1 |
B7-4 = BWI B3-0 = CWI
Definition at line 324 of file cciddriver.h.
unsigned char bNadValue |
Nad value used by CCID
Definition at line 337 of file cciddriver.h.
unsigned char bNumberMessage |
Number of messages to display for the PIN modify command
00h,01h,02h,03h,or FFh Number of messages to display for the PIN modify command.
Definition at line 201 of file cciddriver.h.
unsigned char bNumClockSupported |
The number of clock frequencies that are supported by the CCID. If the value is 00h, the supported clock frequencies are assumed to be the default clock frequency defined by dwDefaultClock and the maximum clock frequency defined by dwMaximumClock.
Definition at line 426 of file cciddriver.h.
unsigned char bNumDataRatesSupported |
The number of data rates that are supported by the CCID.
Definition at line 432 of file cciddriver.h.
unsigned char bPINSupport |
This value indicates what PIN support features the CCID has.
Definition at line 464 of file cciddriver.h.
unsigned char bSeq |
Sequence number for command.
Definition at line 142 of file cciddriver.h.
unsigned char bSlot |
Identifies the slot number for this command
Definition at line 140 of file cciddriver.h.
unsigned char bSpecific |
specific register
Definition at line 148 of file cciddriver.h.
unsigned char bSpecific_0 |
specific register
Definition at line 165 of file cciddriver.h.
unsigned char bStatus |
Slot status register
Definition at line 144 of file cciddriver.h.
unsigned char bTeoPrologue |
T=1 I-block prologue field to use
T=1 I-block prologue field to use. Significant only if protocol in use is T=1.
Definition at line 207 of file cciddriver.h.
unsigned char bTimeOut |
Number of seconds. If 00h then CCID default value is used.
Definition at line 238 of file cciddriver.h.
unsigned char bTimerOut |
Number of seconds.
Definition at line 189 of file cciddriver.h.
unsigned char bVoltageSupport |
This value indicates what voltages the CCID can supply to its slots. It is a bitwise OR operation performed on the following values: - 01h 5.0V - 02h 3.0V - 04h 1.8V Other bits are RFU.
Definition at line 409 of file cciddriver.h.
unsigned char bWaitingIntegerT0 |
WI for T=0 used to define WWT
Definition at line 282 of file cciddriver.h.
unsigned long dwDataRate |
Default ICC I/O data rate in bps. This is an integer value
Definition at line 428 of file cciddriver.h.
unsigned long dwDefaultClock |
Default ICC clock frequency in KHz. This is an integer value.
Definition at line 419 of file cciddriver.h.
unsigned long dwFeatures |
This value indicates what intelligent features the CCID has.
Definition at line 452 of file cciddriver.h.
unsigned long dwMaxCCIDMessageLength |
For extended APDU level the value shall be between 261 + 10 (header) and 65544 +10, otherwise the minimum value is the wMaxPacketSize of the Bulk-OUT endpoint.
Definition at line 456 of file cciddriver.h.
unsigned long dwMaxDataRate |
Maximum supported ICC I/O data rate in bps
Definition at line 430 of file cciddriver.h.
unsigned long dwMaxIFSD |
Indicates the maximum IFSD supported by CCID for protocol T=1.
Definition at line 434 of file cciddriver.h.
unsigned long dwMaximumClock |
Maximum supported ICC clock frequency in KHz. This is an integer value.
Definition at line 421 of file cciddriver.h.
unsigned long dwMechanical |
The value is a bitwise OR operation performed on the following values: - 00000000h No special characteristics - 00000001h Card accept mechanism 2 - 00000002h Card ejection mechanism 2 - 00000004h Card capture mechanism 2 - 00000008h Card lock/unlock mechanism
Definition at line 450 of file cciddriver.h.
unsigned long dwProtocols |
RRRR Upper Word- is RFU = 0000h PPPP Lower Word- Encodes the supported protocol types. A 1 in a given bit position indicates support for the associated ISO protocol. 0001h = Protocol T=0 0002h = Protocol T=1 All other bits are reserved and must be set to zero. The field is intended to correspond to the PCSC specification definitions.
Definition at line 417 of file cciddriver.h.
unsigned long dwSynchProtocols |
Definition at line 443 of file cciddriver.h.
unsigned char wLangId |
Language used to display the messages.
Language used to display the messages. The 16 bit
Definition at line 203 of file cciddriver.h.
unsigned short wLcdLayout |
Number of lines and characters for the LCD display used to send messages for PIN entry.
Definition at line 462 of file cciddriver.h.
unsigned long wLength |
Message-specific data length
Definition at line 138 of file cciddriver.h.
unsigned char wPINMaxExtraDigit |
Minimum PIN size in digit and Maximum PIN size in digit
XXYYh XX: Minimum PIN size in digit YY: Maximum PIN size in digit
Definition at line 197 of file cciddriver.h.