public interface OwnerPINxWithPredecrement extends OwnerPINx
OwnerPINxWithPredecrement
interface represents an Owner PIN,
extends Personal Identification Number functionality as defined in the
PIN
interface, and provides the ability to update the PIN, update the try limit
and try counter and thus owner functionality.
The OwnerPINxWithPredecrement
interface extends the
OwnerPINx
to support the decrementing of the tries counter
before any PIN validation attempts.OwnerPINx
,
OwnerPINBuilder
Modifier and Type | Method and Description |
---|---|
boolean |
check(byte[] pin,
short offset,
byte length)
Compares
pin against the PIN value without decrementing the try
counter. |
byte |
decrementTriesRemaining()
Decrements the try counter if the
PIN is not blocked. |
getTryLimit, setTriesRemaining, setTryLimit, update
getTriesRemaining, isValidated, reset
byte decrementTriesRemaining()
PIN
is not blocked. It also resets
the validated flag. This method must be called prior to calling the
check
method; the state for enforcing this constraint
must be implemented as a CLEAR_ON_RESET
transient object; it must also be cleared
when the check
method is called as well as when any other public method
that affects the try counter, the validated flag, or the blocking state is called.
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.
In addition to returning a byte
result, platform-implementations of this method set the
result in an internal state which can be rechecked using assertion methods
of the SensitiveResult
class, if
supported by the platform.boolean check(byte[] pin, short offset, byte length) throws PINException, ArrayIndexOutOfBoundsException, NullPointerException
pin
against the PIN value without decrementing the try
counter. If the
PIN
is not blocked then:
if the PIN value matches, it sets the validated flag and resets
the try counter to its maximum; otherwise if the PIN value does not match, it resets the validated flag, decrements the
try counter - if not assumed to having been pre-decremented - 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:
decrementTriesRemaining
method.
If the decrementTriesRemaining
method has not been
called prior to calling this method then a PINException
exception is thrown;
the state for enforcing this constraint
must be implemented as a CLEAR_ON_RESET
transient object; it must also be cleared
when this method is called as well as when any other public method
that affects the try counter, the validated flag, or the blocking state is called.NullPointerException
or
ArrayIndexOutOfBoundsException
is thrown, the validated
flag must be set to false 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.boolean
result, platform-implementations of this method set the
result in an internal state which can be rechecked using assertion methods
of the SensitiveResult
class, if
supported by the platform.check
in interface PIN
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 comparison is successful, false
otherwise.ArrayIndexOutOfBoundsException
- if the check operation would
cause access of data outside array bounds.NullPointerException
- if pin
is null
PINException
- with the following reason codes:
ILLEGAL_STATE
if the decrementTriesRemaining
method has not been called prior to calling this method.Copyright © 1998, 2015, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms