Skip to content
17 changes: 17 additions & 0 deletions Applet/src/com/android/javacard/keymaster/KMDecoder.java
Original file line number Diff line number Diff line change
Expand Up @@ -719,6 +719,23 @@ private void incrementStartOff(short inc) {
}
}

public short readKeyblobVersion(byte[] buf, short bufOffset, short bufLen) {
bufferRef[0] = buf;
scratchBuf[START_OFFSET] = bufOffset;
scratchBuf[LEN_OFFSET] = (short) (bufOffset + bufLen);
short arrayLen = readMajorTypeWithPayloadLength(ARRAY_TYPE);
if (arrayLen == 0) {
ISOException.throwIt(ISO7816.SW_DATA_INVALID);
}
short version = KMType.INVALID_VALUE;
try {
version = decodeInteger(KMInteger.exp());
} catch(Exception e) {
// Fail to decode Integer. It can happen if it is an old KeyBlob.
}
return version;
}

public short readCertificateChainLengthAndHeaderLen(byte[] buf, short bufOffset,
short bufLen) {
bufferRef[0] = buf;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -167,7 +167,6 @@ public static short makeSbEnforced(short keyParamsPtr, byte origin,
short bootPatchObjPtr, byte[] scratchPad) {
final short[] hwEnforcedTagArr = {
// HW Enforced
KMType.ENUM_TAG, KMType.ORIGIN,
KMType.ENUM_ARRAY_TAG, KMType.PURPOSE,
KMType.ENUM_TAG, KMType.ALGORITHM,
KMType.UINT_TAG, KMType.KEYSIZE,
Expand Down
Loading