SAMV71 Xplained Ultra Software Package 1.5

cciddriver.h File Reference

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

Detailed Description

------------------------------------------------------------------------------

Purpose

Definition of methods for using a CCID device driver.

Usage

  1. CCIDDriver_Initialize
  2. CCID_Read
  3. CCID_Write
  4. CCID_SmartCardRequest
  5. CCID_Insertion
  6. CCID_Removal
  7. RDRtoPCHardwareError

Definition in file cciddriver.h.


Variable Documentation

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.

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
  • 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 protocol. 0001h indicates support for the 2-wire protocol 1 0002h indicates support for the 3-wire protocol 1 0004h indicates support for the I2C protocol 1 All other values are outside of this specification, and must be handled by vendor-supplied drivers.

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.

 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines