Search code examples
smartcardjavacardglobalplatformjcop

pro.javacard.gp.GPException: STRICT WARNING: Unfused JCOP detected


When trying to list the content of smart card using following command

gp -l

Getting following exception :

pro.javacard.gp.GPException: STRICT WARNING: Unfused JCOP detected
at pro.javacard.gp.GlobalPlatform.printStrictWarning(GlobalPlatform.java:184)
at pro.javacard.gp.GlobalPlatform.select(GlobalPlatform.java:213)
at pro.javacard.gp.GPTool.main(GPTool.java:334)

When searched , I got to know that card is not pre-personalized. My question is what is Smart Card pre-personalization? Who does this pre-presonalization? is it a vendor?


Solution

  • Pre-personalization for JCOP Cards consists of sending a set of commands to an applet named Root Applet.

    Manufacturer installed this special applet to provide some special accesses for card providers (Mr Bodewes mentioned these accesses in his answer).

    Root Applet AID named Transport Key and is securely transferred to card's provider or anybody whom requested not-fused cards from NXP. (This AID is specific per card or a set of cards requested by a provider)

    The commands that this applet supports included some READ and WRITE commands for restrictrd area of EEPROM.

    Final step and mandatory step of pre-personalization is sending a command named FUSE command to ROOT Applet. This command make Root Applet disabled forever.

    Before pre-personalization, there is no Security Domain available to select on the card, and Root Applet is the only active entity on the card, but after pre-personalization you have access to security domain and no access to Root Applet anymore.

    I think this info is confidential, so do not publish them! :)