I am trying to install an applet which uses security classes (
MessageDigest), but always get an
6F50 error when trying to install it. The package is loaded correctly but the applet cannot be instantiated. I am allocating all objects in the
constructor and the algorithms are supported by the card (at least according to the datasheet). If I comment out all security classes references, the applet loads and installs properly. I've tried allocating
Object's and it works, so this is not a space related problem (64K card with nothing else on it). I am using the SIM Alliance Loader v2 to load the applet. 'Regular' (non-crypto and STK) applets work fine.
The card supports Java Card 2.1.1 and a subset of Global Platform 2.1.1. Specs are here: <a href="http://shop.shadytel.com/sim_datasheet.pdf" rel="nofollow">http://shop.shadytel.com/sim_datasheet.pdf</a>
Any ideas as to what the problem might be?Answer1:
It's hard to tell what the problem is as the card returns a proprietary status word that it normally should not return. The
6Fxx error codes are used for unknown errors in the ISO/IEC 7816-4 standards. The value
50 is therefore proprietary to the smart card implementation. Contact the vendor.
The datasheet shows us a <em>very</em> limited Java Card platform, it only shows support for the following cryptographic algorithms:<ul><li>DES and TDEA (triple DES)</li> <li>secure and pseudo random</li> <li>SHA-1</li> </ul>
So if you go outside of these specifications you should expect a status word denoting an error. Normally you would expect
6A80 though, indicating something is wrong within the command data. The fact that you get an error while instantiating the applet shows that the code is accepted, but that instantiating or initializing one of the cryptographic algorithms fails.
If you have a good debugging environment (as good as a must for Java Card development), then you should be able to step through the Java Card
static install method and applet constructor.