|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
@TransactionType(value=NOT_SUPPORTED) @SensitiveType(sensitivity=FULL) public interface PIN
This interface represents a PIN. An implementation must maintain these internal values:
PIN
becomes blocked.
An owner implementation of this interface must provide a way to initialize/update the PIN value. The owner implementation of the interface must protect against attacks based on program flow prediction. In addition, even if a transaction is in progress, update of internal state such as the try counter, the validated flag, and the blocking state, shall not participate in the transaction during PIN presentation.
A typical card global PIN usage will combine an instance of
OwnerPIN
class and a a Proxy PIN interface which extends both
the PIN
and the Shareable
interfaces and
re-declares the methods of the PIN interface. The OwnerPIN
instance would be manipulated only by the owner who has update privilege. All
others would access the global PIN functionality via the proxy PIN interface.
OwnerPIN
,
Shareable
Method Summary | |
---|---|
boolean |
check(byte[] pin,
short offset,
byte length)
Compares pin against the PIN value. |
byte |
getTriesRemaining()
Returns the number of times remaining that an incorrect PIN can be presented before the PIN is blocked. |
boolean |
isValidated()
Returns true if a valid PIN value has been presented since
the last card reset or last call to reset() . |
void |
reset()
If the validated flag is set, this method resets the validated flag and resets the PIN try counter to the value of the
PIN try limit. |
Method Detail |
---|
byte getTriesRemaining()
PIN
is blocked.
boolean check(byte[] pin, short offset, byte length) throws ArrayIndexOutOfBoundsException, NullPointerException
pin
against the PIN value. If they match and the
PIN
is not blocked, it sets the validated flag and resets
the try counter to its maximum. If it does not match, it decrements the
try counter and, if the counter has reached zero, blocks the
PIN
. Even if a transaction is in progress, update of
internal state - the try counter, the validated flag, and the blocking
state, shall not participate in the transaction.
Note:
NullPointerException
or ArrayIndexOutOfBoundsException
is
thrown, the validated flag must be set to false, the try counter must be decremented
and, the PIN
blocked if the counter reaches zero.
offset
or length
parameter
is negative an ArrayIndexOutOfBoundsException
exception is thrown.
offset+length
is greater than pin.length
, the length
of the pin
array, an ArrayIndexOutOfBoundsException
exception is thrown.
pin
parameter is null
a NullPointerException
exception is thrown.
pin
- the byte array containing the PIN value being checkedoffset
- the starting offset in the pin
arraylength
- the length of pin
true
if the PIN value matches; false
otherwise
ArrayIndexOutOfBoundsException
- if the check operation would cause access of data outside
array bounds.
NullPointerException
- if pin
is null
boolean isValidated()
true
if a valid PIN value has been presented since
the last card reset or last call to reset()
.
true
if validated; false
otherwisevoid reset()
PIN
try counter to the value of the
PIN
try limit. If the validated flag is not set, this
method does nothing.
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |