IP Library Granted Patent US 10,922,682
Granted Patent B2
US 10,922,682 · App. 16/327,271 · Granted Feb 16, 2021

Java card application memory footprint optimization

Inventors: Sylvain Chafer (Meudon, FR); Valentin Favreau (Meudon, FR); Chandra Gondowisito (Meudon, FR); Guillaume Phan (Meudon, FR)
Assignee: THALES DIS FRANCE SA
G06Q20/355G06F9/44505G06F9/468G06F9/5016G06F21/77G06Q20/34G06Q20/3563G06Q20/3672G07F7/1008
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,922,682
App. No.
16/327,271
Granted
Feb 16, 2021
Kind
B2
Abstract

There is described a method for Java Card application memory footprint optimization which relies on the separation in advance of the code related to the personalization from the rest of the code. It allows this code to perform the personalization of an application installed from a main package while being itself included and installed from a separated package dedicated to the personalization, namely the Card Personalization Specifications (CPS) package. This way, the CPS package and all the code inherent to the personalization can be removed once all the personalization steps have been completed.

Claims (37)

1. A method of reducing the memory footprint of a Java Card application, the method comprising:

loading two distinct packages into the memory of a Java Card, namely a first, main package containing a main application and dedicated to the installation and transaction phase of said main application in the Java Card, and a second package, capable of sharing resources with the main package;

using the second package during execution of the personalization phase of the main application;

changing the firewall context of a personalization object of the second package by assigning thereto a firewall context of the main applet;

changing the ownership of the personalization object from a personalization applet instance ownership to a main applet instance ownership;

changing back the ownership of the personalization object from the main applet ownership to the personalization applet ownership; and

deleting the second package after said execution of said main application.

2. The method of claim 1 , wherein the main package and the second package use Java Card Shareable Interface to be capable of sharing resources with each other.

3. The method of claim 1 , wherein the main package is associated to a transaction phase and the second package is associated to a personalization phase, respectively.

4. The method of claim 3 , wherein the second package is a Card Personalization Specification (CPS) package and said personalization applet is a CPS applet dedicated to the creation of a CPS object into the memory of the Java Card.

5. The method of claim 4 , wherein the CPS package has a firewall context and an ownership, and is configured to execute a personalization code used for the personalization of the main application.

6. The method of claim 1 , further comprising handling the personalization of the main application by having the main application access the personalization object and execute the personalization code which initializes main application data.

7. The method of claim 1 , wherein the firewall context of the CPS object is changed by a first Application Programming Interface, API.

8. The method of claim 7 , wherein the first API and/or the second API used for changing the ownership and the firewall context of the personalization object is/are rendered unusable after having performed the change back of the personalization object ownership from the main applet to the personalization applet.

9. The method of claim 1 , wherein the ownership of the personalization object is changed and/or changed back by the first API, or by a second API distinct from said first API.

10. The method of claim 7 , wherein the first API and/or the second API, used for changing the ownership and/or the firewall context of the personalization object, respectively, are provided by the Java Card platform or are created specifically.

11. The method of claim 9 wherein the first API and/or the second API used for changing the ownership and the firewall context of the personalization object is/are deleted from the Java Card memory after the change back of the personalization object ownership from the main applet to the personalization applet has been performed.

12. The method of claim 1 , wherein the firewall context of the personalization object is changed by implementing a specific parameter in the standard install command used to install the personalization applet and defined by the Global Platform Card specification.

13. The method of claim 1 wherein the main application installed from the main package is a Europay Mastercard Visa application.

14. The method of claim 1 , wherein the main package is loaded into the Read-Only Memory of the Java Card.

15. The method of claim 1 , wherein the personalization package is loaded into the Non-volatile Memory of the Java Card.

16. The method of claim 1 , further comprising dividing the Java Card application into the main package and the second package.

17. A computer program product comprising:

one or more stored sequences of instructions that are accessible to a processor and which, when executed by the processor, cause the processor to perform the step of:

loading two distinct packages into the memory of a Java Card, namely a first, main package containing a main application and dedicated to the installation and transaction phase of said main application in the Java Card, and a second package, capable of sharing resources with the main package;

using the second package during execution of the personalization phase of the main application;

changing the firewall context of a personalization object of the second package by assigning thereto a firewall context of the main applet;

changing the ownership of the personalization object from a personalization applet instance ownership to a main applet instance ownership;

changing back the ownership of the personalization object from the main applet ownership to the personalization applet ownership; and

deleting the second package after said execution of said main application.

18. A device for reducing the memory footprint of a Java Card Application, comprising a non-transitory memory containing instructions for:

loading two distinct packages into the memory of a Java Card, namely a first, main package containing a main application and dedicated to the installation and transaction phase of said main application in the Java Card, and a second package, capable of sharing resources with the main package;

using the second package during execution of the personalization phase of the main application;

changing the firewall context of a personalization object of the second package by assigning thereto a firewall context of the main applet;

changing the ownership of the personalization object from a personalization applet instance ownership to a main applet instance ownership;

changing back the ownership of the personalization object from the main applet ownership to the personalization applet ownership; and

deleting the second package after said execution of said main application.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 28, 2023
From: THALES DIS FRANCE SA
To: THALES DIS FRANCE SAS
Reel/Frame 064730/0307 →
CHANGE OF NAME Recorded Jan 12, 2021
From: GEMALTO SA
To: THALES DIS FRANCE SA
Reel/Frame 054971/0922 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 12, 2020
From: CHAFER, SYLVAIN; FAVREAU, VALENTIN; PHAN, GUILLAUME; GONDOWASITO, CHANDRA
To: GEMALTO SA
Reel/Frame 054347/0058 →