NXP has Java Cards?

7.3k views Asked by At

Why there is no search result about "JCOP" or terms like J2A040 and j3d081 in NXP website? I want to start Java Card developement and find Java Cards in market named

  • JCOP21-72
  • J2A040 NXP JAVA based smart card, 40k EEPROM
  • jcop31
  • jcop41
  • ...

But the terms in NXP website are: - SmartMX, MIFARE DESFire, etc., or - P5CC021, P5CC040, P5CC073, P5CC080, P5CC144

Why does the market and the manufacturer use such different terms?


UPDATE:

  1. If I buy a SmartMX does it come with OS or not? NXP programs the OS or the vendor? Am I capable of doing it myself?

  2. Where can I find a detailed specification of each JCOP OS?

3

There are 3 answers

5
Michael Roland On BEST ANSWER

The difference is that the smartcard chip manufacturer NXP produces smartcard chips. NXP's most known smartcard chips are SmartMX (P5C*) and SmartMX2 (P40C*, P60D*). Besides these, NXP also produces some not-so-smart smartcard chips (e.g. MIFARE DESFire MF3ICD*).

JCOP on the other hand is the name of a Java Card compliant and Global Platform compliant operating system. JCOP was initially developed by IBM and is now maintained by NXP. JCOP is only one option for an operating system that can be used on NXP's smartcard chips (note that the "not-so-smart" smartcard chips don't use such a complex operating system). J* is the version number of the JCOP platform (yes, there are many of them).

So why do smartcard vendors avertise their product by operating system name & version while NXP avertises their products by chip name?

Simply because that's what each of them sells:

  • NXP mainly sells chips. NXP's customers decide what operating system they want to have (many of the SmartMX* datasheets list some of the supported systems as product options).
  • Smartcard manufacturers sell smartcards that have a certain configuration. In terms of Java Card products that's typically the type of operating system and the supported Java Card version. After all, one of the main ideas of Java Card is that it abstracts programming from the actual smartcard hardware.

Note: with many parts of this answer NXP and their product names can be replaced by "arbitrary smartcard chip manufaturer X" and their respective products.


UPDATE:

  • If you buy a smartcard (you typically don't easily get chips without the card) from a smartcard vendor, you buy one that contains a specific OS (that's why the vendor will advertise it with a a specific OS name + version).
  • If you happen to be a smartcard manufacturer/direct integrator of smartcard chips and buy them directly from NXP, you will choose the OS that the chips will contain when they are delivered to you.
  • The OS is typically "installed" during production time (ROM mask) so you can't install/modify it after the production process.
  • The best overview of JCOP versions I found so far is in this document. Though it does not contain the latest versions.
0
Kenneth On

Just as a for your info concerning NXP, their P5CC series chips are used by a company called Cardcontact in Germany to create a smartcard that is also a HSM (Hardware Security Module). It's called the Smartcard-HSM and at 16 euros, for a HSM that cannot be beat! And no, I'm not affiliated with them, I just wish I had 16 euros right now. It uses JCOP 2.4.1 and the one they advertise has about 55K free space for keys and certificates. Or an addin applet.

1
David On

Here is the product type naming convention

For JCOP up to v2.3.2

P 5 31 V 072 V0 / T 0P rr ff 1
  • P = NXP
  • 5 = HW-family is Smart MX
  • 31 = Platform (values are 10, 20, 21, 30, 31, and 41)
  • V = Type
    • G=Java Std-Generic
    • V=Java Std-VISA
    • C=Java Std-Customized
    • M=Java Std-MasterCard
    • C=Java Static-Generic
    • U=Java Static-VISA
    • T=Java Static-MasterCard
  • 072 = EEPROM
  • V0 = Package
    • W=wafer sawed on FFC
    • U=unsawn wafer
    • V0=PCM or PDM module
    • V1=PDM 1.1 plug-in type
    • V4=MOB4
  • T = Fab
  • 0P = Chip version
  • rr = ROM code ID
  • ff = Fabkey ID
  • 1 = Options
    • 0=no Mifare
    • 1=1k Mifare
    • 4=4k Mifare

For JCOP v2.4.1 and higher

J3 A 080 G dd(d) / T 0B rr ff o
  • J3 = NXP JCOP
    • J5=NFC(S2C)
    • J3=DIF,CD=PKI+DES
    • J2=CT,CD=PKI+DES
    • J1=CT,DES
  • A = JCOP version
    • A=JCOP 2.4.1(on SmartMX CMOS 14)
    • C=JCOP 2.4.2(on SmartMX CMOS 14)
    • D=JCOP 2.4.3(on SmartMX CMOS 14)
    • E=JCOP 2.5(on SmartMX2 CMOS 090)
  • 080 = EEPROM
  • G = JCOP type
    • G=Java Std-Generic
    • V=Java Std-VISA
    • C=Java Std-Customized
    • M=Java Std-MasterCard
    • C=Java Static-Generic
    • U=Java Static-VISA
    • T=Java Static-MasterCard
  • dd(d) = Delivery type
    • UA=sawn wafer 150u FFC
    • X0=PDM module
    • A4=MOB4
    • A6=MOB6
    • HN1=HVQFN32 package
  • T = FAB ID
  • 0B = HW Version
  • rr = ROM code ID
  • ff = FAB key ID
  • o = Option
    • 0=no Mifare
    • 1=1k Mifare
    • 4=4k Mifare
    • 7=7k DESFire
    • 8=8k DESFire