aboutsummaryrefslogtreecommitdiff
path: root/src/cz/crcs/ectester/applet/AppletBase.java
diff options
context:
space:
mode:
authorJ08nY2019-03-14 13:38:22 +0100
committerJ08nY2019-03-14 13:38:22 +0100
commitf3accb655d349bb6d78fdc3c66a5d2d0cd15731d (patch)
tree440a0b1c90af555c5363271fff6d0cccc2ea6bbb /src/cz/crcs/ectester/applet/AppletBase.java
parentdd620345feba56c413fcba1376c8a536033940b6 (diff)
downloadECTester-f3accb655d349bb6d78fdc3c66a5d2d0cd15731d.tar.gz
ECTester-f3accb655d349bb6d78fdc3c66a5d2d0cd15731d.tar.zst
ECTester-f3accb655d349bb6d78fdc3c66a5d2d0cd15731d.zip
Add better chunking support and detect it at runtime.
Diffstat (limited to 'src/cz/crcs/ectester/applet/AppletBase.java')
-rw-r--r--src/cz/crcs/ectester/applet/AppletBase.java9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/cz/crcs/ectester/applet/AppletBase.java b/src/cz/crcs/ectester/applet/AppletBase.java
index 94f790b..31ddbd9 100644
--- a/src/cz/crcs/ectester/applet/AppletBase.java
+++ b/src/cz/crcs/ectester/applet/AppletBase.java
@@ -97,10 +97,13 @@ public abstract class AppletBase extends Applet {
// go to proprietary data
dataOffset++;
*/
+ short resetMemory = JCSystem.getAvailableMemory(JCSystem.MEMORY_TYPE_TRANSIENT_RESET);
+ short deselectMemory = JCSystem.getAvailableMemory(JCSystem.MEMORY_TYPE_TRANSIENT_DESELECT);
+ byte memoryType = (resetMemory > deselectMemory) ? JCSystem.CLEAR_ON_RESET : JCSystem.CLEAR_ON_DESELECT;
- ramArray = JCSystem.makeTransientByteArray(ARRAY_LENGTH, JCSystem.CLEAR_ON_RESET);
- ramArray2 = JCSystem.makeTransientByteArray(ARRAY_LENGTH, JCSystem.CLEAR_ON_RESET);
- apduArray = JCSystem.makeTransientByteArray(APDU_MAX_LENGTH, JCSystem.CLEAR_ON_RESET);
+ ramArray = JCSystem.makeTransientByteArray(ARRAY_LENGTH, memoryType);
+ ramArray2 = JCSystem.makeTransientByteArray(ARRAY_LENGTH, memoryType);
+ apduArray = JCSystem.makeTransientByteArray(APDU_MAX_LENGTH, memoryType);
randomData = RandomData.getInstance(RandomData.ALG_SECURE_RANDOM);
EC_Consts.randomData = randomData;