Fix possible implicit extended length usage support

This commit is contained in:
Arnaud Fontaine 2022-01-10 16:16:38 +01:00
parent c2d7070f2d
commit 4fbafe513b
3 changed files with 4 additions and 34 deletions

View File

@ -2,15 +2,6 @@ diff --git a/src/fr/anssi/smartpgp/Constants.java b/src/fr/anssi/smartpgp/Consta
index b3c0f80..2ee1107 100644
--- a/src/fr/anssi/smartpgp/Constants.java
+++ b/src/fr/anssi/smartpgp/Constants.java
@@ -30,7 +30,7 @@ public final class Constants {
protected static final short INTERNAL_BUFFER_MAX_LENGTH =
(short)0x500;
- protected static final short APDU_MAX_LENGTH = (short)256;
+ protected static final short APDU_MAX_LENGTH = (short)0x400;
protected static final byte[] KEY_DERIVATION_FUNCTION_DEFAULT = {
(byte)0x81, (byte)0x01, (byte)0x00
@@ -149,7 +149,7 @@ public final class Constants {
(byte)0x73, /* card capabilities */
(byte)0xC0, /* 1st byte: "methods supported" see ISO 7816-4 */
@ -20,25 +11,3 @@ index b3c0f80..2ee1107 100644
(byte)0x05, /* status indicator byte : operational state */
(byte)0x90, /* SW1 */
diff --git a/src/fr/anssi/smartpgp/SmartPGPApplet.java b/src/fr/anssi/smartpgp/SmartPGPApplet.java
index c47870f..78d446d 100644
--- a/src/fr/anssi/smartpgp/SmartPGPApplet.java
+++ b/src/fr/anssi/smartpgp/SmartPGPApplet.java
@@ -25,7 +25,7 @@ import javacard.security.*;
import javacardx.apdu.*;
import javacardx.crypto.*;
-public final class SmartPGPApplet extends Applet {
+public final class SmartPGPApplet extends Applet implements ExtendedLength {
private final Persistent data;
@@ -104,7 +104,7 @@ public final class SmartPGPApplet extends Applet {
short blen = apdu.setIncomingAndReceive();
final short lc = apdu.getIncomingLength();
- final short offcdata = ISO7816.OFFSET_CDATA;
+ final short offcdata = apdu.getOffsetCdata();
short off = transients.chainingInputLength();

View File

@ -27,7 +27,7 @@ public final class Constants {
protected static final short INTERNAL_BUFFER_MAX_LENGTH =
(short)0x500;
protected static final short APDU_MAX_LENGTH = (short)256;
protected static final short APDU_MAX_LENGTH = (short)0x400;
protected static final byte[] KEY_DERIVATION_FUNCTION_DEFAULT = {
(byte)0x81, (byte)0x01, (byte)0x00

View File

@ -23,8 +23,9 @@ package fr.anssi.smartpgp;
import javacard.framework.*;
import javacard.security.*;
import javacardx.crypto.*;
import javacardx.apdu.ExtendedLength;
public final class SmartPGPApplet extends Applet {
public final class SmartPGPApplet extends Applet implements ExtendedLength {
private final Common common;
private final Persistent data;
@ -100,7 +101,7 @@ public final class SmartPGPApplet extends Applet {
short blen = apdu.setIncomingAndReceive();
final short lc = apdu.getIncomingLength();
final short offcdata = ISO7816.OFFSET_CDATA;
final short offcdata = apdu.getOffsetCdata();
short off = transients.chainingInputLength();