Category Archives: Miscellaneous

All kinds of topics related to Java Card.

JC101-10C: Adding a password and state management

In the last tutorial entry, we have seen in theory how it is possible to add a password and to manage an application’s state. In the present entry, we will actually add support for a password in the application. This support will be provided using the OwnerPIN class, which goes beyond simple PIN codes, and […]

JC101-9C: Authentication and lifecycle

We now have reached the point where we have a fully functional password manager, which is able to store login information. However, this application is not complete, since it does not include any protection of these sensitive assets. Anybody who is able to select the application and who knows the application’s protocol will be able […]

JC101-8C: Processing APDU’s (2/2)

In the previous tutorial entry, we have looked at APDU processing, with an initial focus on processing a first command with incoming data. We will here look at the next commands, focusing on the ones that return data.

JC101-7C: Processing APDU’s (1/2)

In the last post, we have defined a specification for an APDU-based application. It is now time to implement this application, i.e., to start processing a few APDU’s. We’ll do that in the style that characterizes this tutorial, which is a mix of simple code with a few basic optimizations.

Android Security

Mobile application platforms are interesting for smart card developers, because most mobile phones host some kind of a SIM card, which stands good chances to be a Java Card. Of course, if we are thinking in terms of Java Card 3.0, since the card is a Web server, there is very little to do in […]

JC101-6C: Specifying the APDU’s

In our previous posts, we have written a class that is able to manage login information as password entries. This time, we will look at our application’s user interface. Well, user interface may be a bit overstated, since we will simply be defining a way to exchange information between the card and a terminal to […]

10 years ago: Java Card 1.0 on JavaWorld

At the end of 1997 and at the beginning of 1998, and around the release of Java Card 2.0, JavaWorld ran a series of articles on Java Card. Most of these articles were written by Sun employees, and in particular Rinaldo di Giorgio, Zhiqun Chen, and Arthur Coleman. These articles are interesting, because they show […]

JC101-5C: Data management and transactions

The Java Card framework is very limited, and it does not include any container classes. A simple way to organize data is to use linked lists. This structure is very classical, so we will use this opportunity to discuss the way in which Java Card manages the atomicity of updates.

Happy Birthday, Java Card 2.0 !

I think that today marks the real anniversary of Java Card technology, as the first official release of the Java Card 2.0 specification is dated October 13, 1997. This is just 6 months after the creation of the Java Card Forum, and the result is far from negligible. Many of the concepts that are still […]

Java Card 2.0

I finally found some of the original Java Card 2.0 specifications. It was not all that straightforward, but globally, it was not that difficult, and I should have found all that earlier. The first interesting is that there still is a Java Card 2.0 product page on Sun’s web site. Most of the content is […]