EMV文档:接收到的ATR不在EMV规定范围,终端需要的操作

时间:2021-08-03 16:00:28

Required terminal behaviour in the event that a terminal receives characters outside the range allowed by EMV.

/************************* TS *************************/

The terminal shall be capable of supporting both inverse and direct convention and shall accept an ATR containing TS having a value of either '3B' or '3F'. An ICC returning an ATR containing TS having any other value shall be rejected.

/************************* T0 *************************/

The terminal shall accept an ATR containing T0 of any value provided that the value returned correctly indicates and is consistent with the interface characters TA1 to TD1 and historical bytes actually returned.

/************************* TA1 *************************/

If TA1 is present in the ATR (indicated by b5 of T0 set to 1) and TA2 is returned with b5 = 0 (specific mode, parameters defined by the interface bytes), the terminal shall:

1. Accept the ATR if the value of TA1 is in the range '11' to '13', and

immediately implement the values of F and D indicated (F=372 and

D = 1, 2, or 4).

2. Reject the ATR if the value of TA1 is not in the range '11' to '13', unless it is

able to support and immediately implement the conditions indicated.

If TA1 is present in the ATR (indicated by b5 of T0 set to 1) and TA2 is not returned (negotiable mode), the terminal shall accept the ATR and shall continue using the default values of D = 1 and F = 372 during all subsequent exchanges, unless it supports a proprietary technique for negotiating the parameters to be used.

If TA1 is absent from the ATR, the default values of D = 1 and F = 372 shall be used during all subsequent exchanges.

/************************* TB1 *************************/

In response to a cold reset, the terminal shall accept only an ATR containing TB1 = '00'.

In response to a warm reset the terminal shall accept an ATR containing TB1 of any value (provided that b6 of T0 is set to 1) or not containing TB1 (provided that b6 of T0 is set to 0) and shall continue the card session as though TB1 = '00' had been returned.

VPP shall never be generated.

/************************* TC1 *************************/

If the value of TC1 is in the range '00' to 'FE', between 0 and 254 etus of extra guardtime shall be added to the minimum character to character duration, which for subsequent transmissions shall be between 12 and 266 etus.

If the value of TC1 = 'FF', then the minimum character to character duration for subsequent transmissions shall be 12 etus if T=0 is to be used, or 11 etus if T=1 is

to be used.

The terminal shall accept an ATR not containing TC1 (provided that b7 of T0 is set to 0), and shall continue the card session as though TC1 = '00' had been returned.

/************************* TD1 *************************/

The terminal shall accept an ATR containing TD1 with the m.s. nibble having any value (provided that the value returned correctly indicates and is consistent with the interface characters TA2 to TD2 actually returned), and the l.s. nibble having a value of '0' or '1'. The terminal shall reject an ATR containing other values of TD1.

/************************* TA2 *************************/

The terminal shall accept an ATR containing TA2 provided that all the following conditions are met:

1. The protocol indicated in the l.s. nibble is also the first indicated protocol in

the ATR.

2. b5 = 0

3. The terminal is able to support the exact conditions indicated in the applicable interface characters and immediately uses those conditions.

Otherwise, the terminal shall reject an ATR containing TA2.

/************************* TB2 *************************/

The terminal shall reject an ATR containing TB2.

/************************* TC2 *************************/

The terminal shall:

1. reject an ATR containing TC2 = '00'

2. accept an ATR containing TC2 = '0A'

3. reject an ATR containing TC2 having any other value unless it is able to support it.

/************************* TD2 *************************/

The terminal shall accept an ATR containing TD2 with the m.s. nibble having any value (provided that the value returned correctly indicates and is consistent with the interface characters TA3 to TD3 actually returned), and the l.s. nibble having a value of '1' (or 'E' if the l.s. nibble of TD1 is '0'). The terminal shall reject an ATR containing other values of TD2.

/************************* TA3 *************************/

The terminal shall accept an ATR not containing TA3 (provided that b5 of TD2 is set to 0), and shall continue the card session using a value of '20' for TA3.

The terminal shall reject an ATR containing TA3 having a value in the range '00' to '0F' or a value of 'FF'.

/************************* TB3 *************************/

TB3 (if T=1 is indicated in TD2) indicates the values of the CWI and the BWI used to compute the CWT and BWT respectively. The l.s. nibble (b1–b4) is used to indicate the value of CWI, whilst the m.s. nibble (b5–b8) is used to indicate the value of BWI.

The terminal shall reject an ATR not containing TB3, or containing a TB3 indicating BWI greater than 4 and/or CWI greater than 5, or having a value such that 2^CWI ≤ (N + 1). It shall accept an ATR containing a TB3 having any other value.

Note: N is the extra guardtime indicated in TC1. When using T=1, if TC1='FF', the value of N shall be taken as –1. Since the maximum value for CWI allowed by these specifications is 5, note that when T=1 is used, TC1 shall have a value in the range '00' to '1E' or a value of 'FF' in order to avoid a conflict between TC1 and TB3.

/************************* TC3 *************************/

The terminal shall accept an ATR containing TC3 = '00'. It shall reject an ATR containing TC3 having any other value.