Modification example 5 – ACS ACR83 PINeasy Smart Card Reader User Manual
Page 36
ACR83 – Reference Manual
Version 1.05
www.acs.com.hk
Page 36 of 49
And then, handle the New PIN.
New PIN (Byte)
Original
00 24 00 01 12 08 0
6
12 34 56
30 30 30 30 09 03
30 30 30 30
30 30 30h
Input
12 34 56 78 90h
Result PIN
00 24 00 01 12 08 0
6
12 34 56
30 30 30 30 09 0
A
12 34 56 78
90
30 30h
The whole APDU after the format will be:
00 24 00 01 12 08 0
6
12 34 56
30 30 30 30 09 0
A
12 34 56 78
90
30 30h
12.13. Modification Example 5
BConfirmPIN Bit1 = 1
(Current/Old PIN entry requested)
System unit is byte.
APDU Command
SpeOffsetOld
Offset SpePINPos
SpePINLen
APDU Header APDU
Lc
Maybe not
Offset SpePINPos
Old PIN
CLA INS P1 P2
Lc
Exists
Offset
SpePINLenPos SpePINSize
Not used
field
Old PIN
SpeOffsetNew
Offset SpePINPos
SpePINLen
Maybe not
Offset SpePINPos
New PIN
Exists
Offset
SpePINLenPos
SpePINSize
Not used field
New PIN
Check points in implementing the PIN Modification Data Structure:
•
SpePINLen + SpeOffsetNew + SpePINPos must be equal to Lc
•
SpeOffsetNew >= SpeOffsetOld + SpePINPos + SpePINLen
•
SpePINPos must be equal or larger than SpePINLenPos + SpePINSize
•
SpePINLen – SpePINPos must be larger or equal to SpePinMax (if BCD, need multiple 4)
•
SpePinMax must be equal or larger than SpePinMin
•
SpePinMax cannot be larger than 16 digits because LCD one row only have 16 digits
•
SpePinMin must be equal or larger than 1
abPINApdu = 00 24 00 01 12 2F 0A A6 30 30 30 30 30 30 2E FB C7 30 30 30 30 30 30h
bConfirmPIN =
03h
(if bConfirmPIN = 03h, bNumberMessage must equal to 03h or FFh)