martinpaljak / vJCRE

Virtual Java Card Runtime Environment RETIRED
52 stars 23 forks source link

OwnerPIN check and update issue when using an offset #2

Open vletoux opened 8 years ago

vletoux commented 8 years ago

in /src/javacard/framework/OwnerPIN.java (https://github.com/martinpaljak/vJCRE/blob/85c7828089fcde0fa8cde89a622b5ec582804947/src/javacard/framework/OwnerPIN.java)

The offset parameter of the functions check and update is not used. My opinion is that: Util.arrayCopy(pin, (short)0, value, (short)1, length); should be changed to Util.arrayCopy(pin, offset, value, (short)1, length);

and if (Util.arrayCompare(pin, (short) 0, value, (short) 1, length) == 0) { should be changed to if (Util.arrayCompare(pin, offset, value, (short) 1, length) == 0) {

vletoux commented 8 years ago

Moreover limit is set to 0 at the initialisation and its value is never changed

vletoux commented 8 years ago

see PR #4 for a fix