Modification example 3 – ACS ACR83 PINeasy Smart Card Reader User Manual
Page 31

ACR83 – Reference Manual
Version 1.05
www.acs.com.hk
Page 31 of 49
PIN (bits)
Original
1 0011 0000 0011 0000 0011 0000 0011 0000 001
1 0000
0011 0000 0011 0000 1100 0000
Input New PIN
0 0010 0100 0110 1000 1010 1100 1111 0000 000
Result PIN
0 0010 0100 0110 1000 1010 1100 1111 0000 000
1 0000
0011 0000 0011 0000 1100 0000
Result APDU in bit
format
01
10 01
1
0 0010 0100 0110 1000 1010 1100 1111 0000 000
1
0000 0011 0000 0011 0000 0011 0000
Result APDU in byte
format
66 24 68 AC F0 10 30 30 30
The whole APDU in byte format will be:
00 24 00 01 0A 20 66 24 68 ac f0 10 30 30 30h
If arrangement is Right:
bmFormatString change to=3Dh
00 24 00 01 0A 20 67 30 30 30 31 23 45 67 80h
If SpeOffsetNew = 00h and abPINApdu = 00 24 00 01 09 57 30 30 30 30 30 30 30 30h
bmFormatString change to=39h
The result formatting APDU = 00 24 00 01 09 66 24 68 ac f0 10 30 30 30h
12.11. Modification Example 3
bConfirmPIN Bit1 = 0
(No current/Old PIN entry requested)
System unit is Byte.
Command Header
OffsetNew
Offset SpePINPos
SpePINLen
APDU
Command
Header
APDU
Lc
OffsetNew
Offset SpePINPos
PIN
CLA INS P1 P2
Lc
OffsetNew
Offset
SpePINLenPos SpePINSize
Not used
field
PIN
Check points in implementing the PIN Modification Data Structure:
1. Lc must be equal to SpePINLen + SpePINPos + SpeOffsetNew
2. SpePINPos must be equal or larger than SpePINLenPos + SpePINSize
3. SpePINLen – SpePINPos must be larger or equal to SpePinMax (if BCD, need multiple 4)
4. SpePinMax must be equal or larger than SpePinMin
5. SpePinMax cannot be larger than 16 digits because LCD one row only have 16 digits
6. SpePinMin must be equal or larger than 1