OwnerPIN类为PIN接口的具体实现类,在该类中定义了PIN使用过程所需的一些接口方法。
OwnerPIN
public OwnerPIN(byte tryLimit, byte maxPINSize)throws PINException
函数说明:
构造函数,负责创建一个PIN实例,并将其初始状态置为false,表示未经验证。
参数说明:
tryLimit,PIN允许尝试的最大错误次数,必须>=1;
maxPINSize,PIN的最大长度,必须>=1。
update
public void update(byte[] pin, short offset, byte length)throws PINException
函数说明:
该函数负责为PIN实例设置新值,同时将PIN的允许尝试次数更新为最大值,并将PIN的状态置为false。
参数说明:
pin,包含新PIN值的数组;
offset,PIN新值在数组中的偏移量;
length,PIN新值的长度。
getTriesRemaining
public byte getTriesRemaining()
函数说明:
返回在PIN锁定前,还可以进行尝试的错误次数,若进行超出此次数的错误PIN验证,PIN将会被锁定。
isValidated
public boolean isValidated()
函数说明:
若在卡片复位后或调用reset()后,已经进行了正确的PIN校验,则返回true,否则返回false。
PIN的状态位是一个CLEAR_ON_RESET临时变量,因此在卡片复位后,该状态将会被置为false。
check
public boolean check(byte[] pin, short offset, byte length)throws ArrayIndexOutOfBoundsException, NullPointerException
函数说明:
将输入的pin同PIN值相比较,若两者相符且PIN未被锁定,则置当前PIN的状态为有效,并将错误尝试次数改为最大值;否则,将当前错误尝试次数减1,并判断该数值是否为零,若为零则锁定PIN,PIN锁定后将不能再进行PIN校验直至其被解锁。
参数说明:
pin,包含PIN值的数组;
offset,PIN值在数组中的偏移量;
length,PIN值的长度。
reset
public void reset()
函数说明:
如果PIN的状态为true,则修改状态为false,并将PIN的错误尝试次数改为最大值;如果PIN的状态为false,则什么都不做。