8

I'm getting started with GlobalPlatfrom Card spec and I cannot figure out how GLobalPlatform functinalify comes to JavaCard. Is there any applet that should be installed into a card to make this card GP-compatible? Or is the GP-functionality provided into a card during manufacturing as JRE extension? Or even is it possible to make non GP-compatible card to be GP-compatible?

Maarten Bodewes
  • 90,524
  • 13
  • 150
  • 263
Poni Poni
  • 113
  • 2
  • 5

3 Answers3

10

Global Platform (GP) mainly handles the management of Applets and life cycle management on a smart card. GP cannot be loaded as an Applet as a normal Applet does not have those kind of permissions. Applets may however have certain privileges assigned to them by GP. The GP is part of the runtime that also contains the Java Card implementation.

GP also has a relatively small API available to Java Card Applets. This GP API allows Java Cards to request and (if they are privileged) change the life cycle of the Applet. Furthermore, the GP authentication and secure message implementation may be used to personalize Applets.

Most Java Card implementations rely on Global Platform to perform the management and there certainly is collaboration between Global Platform and the Java Card Forum. This is of course largely due to the fact that many companies are members of both organizations.

Maarten Bodewes
  • 90,524
  • 13
  • 150
  • 263
  • Can you give further information about the GP API available to JC? Never encountered anything like that! – Paul Bastian Nov 18 '14 at 12:13
  • It's in the card spec. It's a separate package so it is controlled by GP. The package name is `org.globalplatform` and there are 3 classes: `CVM` (PIN), `GPSystem` and `SecureChannel`. – Maarten Bodewes Nov 18 '14 at 13:21
  • Thank you, for people intrested: detailed information is given in GP 2.2 Appendix A(or whatever version you need). – Paul Bastian Nov 21 '14 at 13:19
  • @MaartenBodewes How can I use this packages in my applet? (GP API.) Are they available to include them in Eclipse for example and use them in my applets? – Ebrahim Ghasemi Mar 13 '15 at 22:11
  • 1
    Yes, normally they are available as `.jar` and `.exp` files you can link to, e.g. `gp211.jar` and `gp211.exp`. It depends on the SDK if those files are included. I primarily use JCOP which already includes those files when I choose a specific configuration (posted as answer first because of misclick on Android app). – Maarten Bodewes Mar 14 '15 at 11:11
  • I was guessed it is a misclick. Really thank you. I didn't know anything about it! :) – Ebrahim Ghasemi Mar 14 '15 at 13:48
2

Global Platform is a specification for deploying and managing several applets on a smartcard. Probably every Java Card Smartcard that you can find out there is Global Platform compatible. However you usually don't need to worry about Global Platform interna as the tool you use for uploading and installing java card applets will do it for you(for example JCOP Tools, GP Shell, gpj, etc)

Paul Bastian
  • 2,597
  • 11
  • 26
  • 1
    GP does have a runtime API and component as well. This API can for instance be used to personalize the applet. So although you can certainly upload and install a pure Java Card applet, larger applets that require centralized personalization often include GP functionality. – Maarten Bodewes Nov 16 '14 at 22:32
1

You can see the 'Runtime Environment' section in the chapter ' Card Atchitecture ' of GP spec. The image 'GlobalPlatform Card Architecture' has showed you the relationship between Java and GP.

andy007
  • 248
  • 1
  • 10