21163

SW 0x6f50 when trying to install crypto applet

Question:

I am trying to install an applet which uses security classes (Cipher, RandomData and 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 byte[] and 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.

Recommend

  • Convert Triple Level List Structure into data.frame
  • ActivityIndicator in Xamarin.Forms
  • Can I execute a local program from a Chrome Plugin?
  • Can I execute a local program from a Chrome Plugin?
  • (oracle) insert in stored procedure very slow compared to insert run manually
  • Non-detached PKCS#7 SHA1+RSA signature without M2Crypto
  • websocket handshake on node.js
  • Secure Box in JCOP card
  • AJAX problem in Internet Explorer
  • Transpose table then set and rename index
  • Spring Security bcrypt encoding login is not working
  • jhipster run embedded jar with prod profile - issue with liquibase
  • ConfigurationBuilder not working in azure function
  • Raphael.js function getBBox give back NAN/NAN/NAN in IE8
  • matching similar elements in between two lists
  • Unable to play media with vlc ocx
  • Sybase Error Implicit Conversion from datatype 'VARCHAR' to 'INT' not allowed
  • IE10 strips out hashtag from the URL
  • Create a link to a web page that runs a Javascript function on the page
  • android google indoor map
  • C# program and C++ DLL compiled for 32-bit system crash on 64-bit system
  • Loading .coffee files via a view in Rails
  • How can I enlarge video fullscreen without the affected interface project in as3?
  • Create DicomImage from scratch using Dcmtk
  • How do I get HTML corresponding to current DOM tree?
  • PHP buffered output depending on server setting?
  • Why does access(2) check for real and not effective UID?
  • Is it possible to access block's scope in method?
  • Meteor helpers not available in Angular template
  • Splitting given String into two variables - php
  • How to recover from a Spring Social ExpiredAuthorizationException
  • Java applet as stand-alone Windows application?
  • ILMerge & Keep Assembly Name
  • Large data - storage and query
  • WOWZA + RTMP + HTML5 Playback?
  • 0x202A in filename: Why?
  • how does django model after text[] in postgresql [duplicate]
  • Cant find why the layout is getting smaller
  • How does Linux kernel interrupt the application?
  • How to load view controller without button in storyboard?