Java card Applet and sim toolkit applet

What is Difference between this two?
When i load java card applet on sim ,then applet is not visible on GSM phone. But sim toolkit Applet is visible on GSM phone.
i think,SIM uses sim.toolkit ad sim.access to interact with Applet.
is it so?
Plz solve my query.
Thankx 4 ur valuable time.
Regards
Divyesh.

for programming in sim card, you must use necessarily sim toolkit applet.
I thing that the difference between Javacard applet and Simtoolkit applet is that:
- sim toolkit applet is only for sim card
- java card applet is for another smart card
of course, both have some joint things.

Similar Messages

  • Java card application and applet

    Hi
    I' am developing a java card application which has three applets (1-ID, 2-Purse, 3-Library). I mean the same card should be use for personal ID, purse, and as library card. Using eclipse I first have to create a new project.
    File-New-New project-java card project. Then in the package Explorer view right click src then New-other-java card Applet. My question is because my java card application has more than one applet how do I add the other two. Should I add the other two by clicking src again or just add them under the same source code belonging to the java card Applet created at the beginning.

    you mean by again doing right click src then New-other-java card Applet.

  • SIM Toolkit Applet

    Hi! I am a Java card programmer and i have worked with Java card 2.1.1 and 2.2.1. now, we are going to have a mobile banking project. but i dont know anything about that. so if i am asking funny questions, dont laugh at me!:)
    - i dont know whats the difference between SIM card and the regular Java cards?
    - am i able to use regular JAVA card 2.2.1 to use for this purpose?
    - i dont know whats the difference between SIM and USIM?
    - i have found some sample SIM applet, which use sim.toolkit,sim.access / uicc.toolkit,uicc.access, but i dont know where can i find these packages! for JCDK, we have downloaded it from Oracle(SUN) , but for this?
    - can i use my regular reader to work with my card or i should put it on a mobile or a simulator?
    please help me! i really need your help! :(
    Narges

    For UICC, SIM etc check this link: [http://en.wikipedia.org/wiki/UICC]
    For ETSI, 3GPP etc., this is where it gets confusing, you should do the research for yourself. As for using the latest specification, you actually want to use the specification your card complies to, i.e. if the card is old it may not comply with the latest specifications.
    Regarding Java applets and toolkit applets:
    To send commands to a Java applet you first select (see GlobalPlatform standard) it and then you send it some APDUs as specified in the 7816-4 and GlobalPlatform standards. You can also implement custom APDUs that only your applet will recognize.
    The toolkit applets are Java applets, you can send them APDUs (first you select them) as well. The difference is that toolkit applets can also receive events from the mobile phone like SMS received or user selected some menu. You can also send commands to the phone to display text, menus etc.
    A Java applet can do what a toolkit applet does, but to implement it yourself you be very hard. The Java API that is used in toolkit applet programming provides facilities to (for example) show something on the phone's display without sending and receiving heaps of APDUs.
    If your card will be used in a mobile phone then you write a toolkit applet (to which you can still send APDUs if you have to). If your card will be used for something else, like access card or a bank card then you don't need toolkit applet functionality.
    The biggest problem with this technology that there are almost no books, only the standards, which you do have to read, and forums.

  • IDES for writing Java card applets and converting the applets as CAP FILE.

    I have developed a JAVA CARD APPLET , FindMFValueJCA.java . It gets compiles in net beans 6.0 But while converting the applet to CAP file i am getting some errors. Is there any other IDES which take care of converting the CAP files

    What's the Java version you are using?
    As the java card tool kit has version dependencies. If you are using java_card _kit 2.2.2 then 1.5 is fine.                                                                                                                                                                                                                                                                                                   

  • Events in a SIM toolkit applet

    Hi,
    I am looking at some sample (and simple) code:
    public MyApplet() {
              // Define the applet Menu Entry
              idMenu1 = reg.initMenuEntry(Menu1, (short) 0, (short) Menu1.length,
                        PRO_CMD_SELECT_ITEM, false, (byte) 0, (short) 0);
              // Define the Unformatted SMS PP event that trigger the applet
              reg.setEvent(EVENT_UNFORMATTED_SMS_PP_ENV);
    public void processToolkit(byte event) {
              EnvelopeHandler envHdlr = EnvelopeHandler.getTheHandler();          
              if (event == EVENT_MENU_SELECTION) {
                   byte selectedItemId = envHdlr.getItemIdentifier();
                   if (selectedItemId == idMenu1) {
                        menu1Action();
              if (event == EVENT_UNFORMATTED_SMS_PP_ENV) {
                   UnformattedSmsPpAction();
    In processToolkit we procees EVENT_MENU_SELECTION and EVENT_UNFORMATTED_SMS_PP_ENV, yet in the ctor we subscribed only for the latter. Does that mean that it is not necessary to subscribe to EVENT_MENU_SELECTION and that this event is always delivered to the applet (that created the menu)?

    For UICC, SIM etc check this link: [http://en.wikipedia.org/wiki/UICC]
    For ETSI, 3GPP etc., this is where it gets confusing, you should do the research for yourself. As for using the latest specification, you actually want to use the specification your card complies to, i.e. if the card is old it may not comply with the latest specifications.
    Regarding Java applets and toolkit applets:
    To send commands to a Java applet you first select (see GlobalPlatform standard) it and then you send it some APDUs as specified in the 7816-4 and GlobalPlatform standards. You can also implement custom APDUs that only your applet will recognize.
    The toolkit applets are Java applets, you can send them APDUs (first you select them) as well. The difference is that toolkit applets can also receive events from the mobile phone like SMS received or user selected some menu. You can also send commands to the phone to display text, menus etc.
    A Java applet can do what a toolkit applet does, but to implement it yourself you be very hard. The Java API that is used in toolkit applet programming provides facilities to (for example) show something on the phone's display without sending and receiving heaps of APDUs.
    If your card will be used in a mobile phone then you write a toolkit applet (to which you can still send APDUs if you have to). If your card will be used for something else, like access card or a bank card then you don't need toolkit applet functionality.
    The biggest problem with this technology that there are almost no books, only the standards, which you do have to read, and forums.

  • Memory optimization in sim toolkit applet

    Dear all
    i am developing one sim toolkit application.
    i am dispalying text on ME screen like this:
    name
    abcxyz(taking user input using GET INPUT)
    password
    abcxyz(taking user input using GET INPUT)
    bank
    ICICI(according to menu selection from user)
    for this ,i am copying all this information in one array using
    util.arraycopy
    and then displaying all this info using
    proHdlr.initdisplaytext
    i am declaring all arrays (whose content is not going to be changed like name ,password and bank as
    global) and all other arrays as transient.
    There is some kind of memory leak in aplication ,due to this my application runs for
    some(20 or 25) times and then it crash.(to make it work again i have to load it again on sim)
    is it necessary to free merory allocated by transient array? or it will released automatically after its use.
    // code for ur reference in which memory leaks is here
    confirm1 = JCSystem.makeTransientByteArray((short)65, JCSystem.CLEAR_ON_RESET);
    //buffer and tempBuffer are also transient arrays in which name and password from
    proactive command GET INPUT are stored.
         len = 0;
         Util.arrayCopy(name, (short)0, confirm1, (short)0, (short)name.length);
         len += name.length;
         Util.arrayCopy(newLine, (short)0, confirm1, (short)len,(short)newLine.length);
         len += newLine.length;
         Util.arrayCopy(buffer, (short)0, confirm1,(short)len ,(short)l);
         len += l;
         Util.arrayCopy(newLine, (short)0, confirm1, (short)len,(short)newLine.length);
         len += newLine.length;
         Util.arrayCopy(password, (short)0, confirm1, (short)len, (short)password.length);     len += password.length;
         Util.arrayCopy(newLine, (short)0, confirm1, (short)len,(short)newLine.length);
         len += newLine.length;
         Util.arrayCopy(tempBuffer, (short)0, confirm1, (short)len, (short)j);
         len += j;
         Util.arrayCopy(newLine, (short)0, confirm1, (short)len, (short)newLine.length);
         len += newLine.length;
         Util.arrayCopy(bank, (short)0, confirm1, (short)len, (short)bank.length);
         len += bank.length;
         Util.arrayCopy(newLine, (short)0, confirm1, (short)len, (short)newLine.length);
         len += newLine.length;
         Util.arrayCopy(card, (short)0, confirm1, (short)len, (short)card.length);
         len += card.length;
         ProactiveHandler proHdlr = ProactiveHandler.getTheHandler();
         proHdlr.initDisplayText((byte)0x81, DCS_8_BIT_DATA, confirm1, (short)0x0000, (short)len);
         proHdlr.send();
    //end of code
    any other way of performing same functionality?
    Thanx in advance.
    Regards
    Divyesh

    As you have written beforehand: the API provides no possibility to issue directly a VERIFY PIN. The only possibility would be to check the user entered pin against the pin stored in the corresponding EF. But when i remember correctly: the EFs storing the card holder verification values are protected by NEVER (read AC), aren't they? Check the 11.11. Or ask your Schlumberger support for proprietary solutions, if they are available.
    So you've got to find a workaround: another EF storing the same value which would rise some security concerns for your customer or storing the pin once at the first application startup (after the user entered it).
    The solution with sending APDUs directly to the card will not work in a ME (the ME would have to select your application and i don't know any ME which would do that ;o) That would only be possible at your PC in a card reader.

  • Java card simulator and WTK communication problem.

    Hi ,
    I am a newbie to java card .I am doing project on java card based sim.
    For that I am using JavaCard SDK 2.2.2 and WTK 2.5.2 .
    Now when i am trying to connect to cref(java card simulator) from java card midlet,I am getting protocol mismatch error.This is because of WTK runs on slot T=0 and cref runs on T=1.
    then i tried with jcdk3.0.1 classic edition.It provides cref configured to run on both slots T=0 and T=1.
    But when I tried to deploy jcrmi applet on cref running on T=0 i am getting the same error "Protocol mismatch error".
    Can anybody please tell, if there is any way to configure cref to run with T=0?
    Please reply ASAP, as i am stucked with the problem from more than a month.
    Thanks in advance,
    Saviy

    Thanks Anki for replying.
    I am trying to run RMISample from development kit.With steps given in guide as follows
    1.cref -o demoee
    2.Navigate to the
    JC_CLASSIC_HOME\samples\classic_applets\RMIPurse\applet
    directory.
    3.ant all
    it works fine but when i do it with following steps:
    1.cref -o -t0 demoee
    2.Navigate to the
    JC_CLASSIC_HOME\samples\classic_applets\RMIPurse\applet
    directory.
    3.ant all
    i am getting protocol mismatch error.

  • Java Card Product and Price List

    Where to find the Java Card, Card Reader to read Java Card and its Price List issued by Sun Microsystems.I want these products and price list.
    What is the tool needed to install the .CAP file in to Java Card?. I have read from the Sun Material, that there will be a off-card installer that loads the binary file of .CAP to Java Card through the CAD device. Where to find the off- card installer?
    I had tested a sample application in Eclipse IDE with JCDK 2.2.2 and EclipseJCDE.
    Please anyone provide me the details
    Edited by: sachindev on Oct 24, 2007 6:22 PM

    Hi there,
    I found this site with everything that you might need, I would say that prices are reasonable (correct me if I am wrong):
    Cards: http://www.smartcardsource.com/cards.htm
    Readers: http://www.smartcardsource.com/readers1.htm
    SDK: http://www.smartcardsource.com/sdk.htm
    Hope it helps...

  • Java card api and long

    Java card runtime does not have support for primitive long..... but if you absolutly had to have a long, how could one do it.
    I am thinking it would be some sort of byte[] representation. But I havent found any information. Can someone point me to the right direction

    The int keyword and its 32-bit integer data type are optionally supported.
    what is wrong with using a byte array ?
    you can convert long to byte array and vice versa with your
    own code.

  • Java Card / SIM Card proprietary APIs

    Hello all,
    I am finishing my graduation on Informatics Engineering and my final thesis is about Smart Cards.
    In the thesis I have to present all the development solutions available to create Smart Cards and SIM Cards applications
    This way, i not only have to talk about Java Card API and SIM Toolkit, but also about the UICC and USIM toolkit and about proprietary APIs, like Gemalto, G&D, etc APIs.
    I have searched on the web about proprietary APIs, or special events/features to each types of cards but I couldn't get any documentation on this. Of course if they are proprietary I am not expecting to get the implementation or the code of it, but I just need any documentation about these APIs, or any description about the methods or events on them.
    So, did any of you guys already used any proprietary APIs? or have any information about any proprietary API?
    Thank you very much,
    Helri

    Hi Joseph, thank you for your response, i'll search for .NET cards and for PKCS#15 cards as well.
    That was a great help, thank you

  • Default applets on brand new java card and spec support

    Hi,
    I have got brand new java card reader and real java card.
    I want to just access it using Java and see if I can access stuff on the java card before i go ahead with next things.
    I was thinking of just doing select on some applet which is present on brand new java card by default.
    1. Does anyone know if any default applet is present on java card?
    2. If yes, AID of that?
    3. Is there any APDU by which I can find out which java card spec that card supports?
    Btw, I am using Java Card 2.2.2 and the card i have should also have same support.
    Edited by: unic.man on Jul 12, 2008 2:11 AM

    >
    1. I know that any smart-card has a universally unique id which can be retrieved pro grammatically. Can you please tell me the APDU/API to retrieve it on Host app side? If not, card side at least?
    I don't know much about unique IDs but basically you've got the ATR which is given to you every time the card is powered on. The ATR identifies a particular family of cards. If you want to identify each card you need to have a look at the GET DATA command (in Global Platform) and especially the CPLC (Card Production Life Cycle). Apparently you can get a unique ID by combining the IC batch identifier and the IC serial number.
    2. I'm also struggling with deploying the app. It is not detecting the default installer applet via apdutool. I found some articles and netbeans plug-in talking about keys to download applet on card. Do you know standard keys/derivated keys to start secured channel?I don't think you can use the JCDK to install an applet on a real card. If you have a JCOP card I advise you to get the JCOP tools. And yes you will need the keys to establish a secure channel but I don't know what the default keys are on a JCOP card.

  • Java card applet dev

    Hi,
    I am new to the java card dev
    I have following tools
    1.Gemxplore admin
    2.Gemxporedeveloper (evaluation copy)
    3.Gemxplore xpresso card and a card reader
    are these what I need for the development.
    Please help if i need any other tools.
    It will be a great help to me if some one help me with
    some simple tutorial links.
    Thanks
    Seoul soul

    Hi Tushar
    First of all,never mail anyone to his/her personeel id,post ur question on Forum ,u will definitely get answer.And before putting ques to forum
    just check once in forum answer to ur ques is availabel or not.
    And what u need to start with Sim toolkit applet is
    java_card_kit-2_1_2
    TS GSM 11.14 (the proactive commans)
    TS GSM 11.11 (the SIM card File system)
    TS GSM 03.48 (OTA mechaism to be able to send data remotmy to your Applets using secure SMS, TS GSM 03.40 may be useful to read too)
    TS GSM 03.19 : the Java implementation of the 11.14 specifications
    a very well done document from the SIM Alliance ( @see http://www.simalliance.org/ ) named "Interoperability Stepping Stones"
    Take a look into the 3GPP TS 03.19. A Toolkit applet example is provided in the Annex D. The spec is located at the ftp-server ftp://ftp.3gpp.org/Specs/latest/R1999/03_series/ (this link points to release 1999, for REL-4 and higher you've got to look for the TS 43.019).
    Regards
    Divyesh.

  • How to load a java card applet into a java card

    Dear All,
    I am a novice to java card technology..
    I have done some search on how to load a java card applet into a smart card but haven't found a satisfactory answer. I have read about installer.jar and scriptgen tool but I want to load the applet from a java program and not from command line. It would be of great help if somebody can help me out.
    If somebody can share a sample program which load a javacard applet(.CAP file) into a smart card, I will be very thankful.
    I am able to find some client applications which help us send APDU commands and recieve response APDU's to interact with an applet loaded on to the smart card but not application which actually load the applet.
    I have heard of OCF and GP.. some say that OCF technology is outdated and no longer in use.. can somebosy throw some light on this too..
    cheers,
    ganesh

    hi siavash,
    thanks for the quick response.. i checked out GPShell as suggested, it looked like a tool by which one can load an applet on to card and send some sample apdu commands... but I want to load the applet from the code.
    My application should look something like this.. it will be a swing applicaton where I have a drop down with a list of readers, I select the one desired and then click on "LOAD" after inserting a blank java card, at this point my applet which is stored in my DB should get loaded on to the java card. The next step should be to personalize it where I enter the values for the static variables of my applet and click "PERSONALIZE", at this point all these values should be embedded into APDU commands and sent to the java card for processing.
    For achieving this I am yet to find a comprehensive sample or documentation on the net.
    Please help...
    regards,
    ganesh

  • Java card Applet RSA encryption Problems with Android

    hi all,I am new to java card development. I have used nxp jcop 31-36 java card and nexus s for testing the application.so i have faced lot of problems.first of all i want to encrypt data coming from the android app using RSA1024 and send back to the android application.there are the problems I faced
    1.RSA1024 and RSA2048 algorithms can't work with the nexus s Application.it means i can't receive any encrypt data from card.but when i test the application with eclipse jcop shell tool it is work properly.
    2.when i run the application in nexus s the application is crashed.it gives some wired sound when tap the java card to android phone.it may be java card application crashed or give some wired sound from android OS level.
    3.Then I Test the Application with Samsung S2. Sometimes it works but sometimes it crashed.in the S2 the encryption works fine(but we have to keep wile card 2 or 3 minutes).
    these are the steps i followed in established the connection i android phone.So fist i created the ISO dep connection and first select the Application(00A40400AID).Then using transive method i send data to java card.In the Java card in the installation i have created the RSA key pairs and get the RSA public key and private key.in some method i got the APDU buffer and read data and encrypt this data.Then those are send back to the card. First i want to know is there any problem in Android Os or JCOP 31/36 card.And other thing each time i requested to java crd is that need to reset the java card and how to reset the Java card.(some brief idea)

    Hi,
    1) Import android.smartcard libraries,
    2) Try to make a connection :
    ISmartcardConnectionListener connectionListener = new ISmartcardConnectionListener()3) create an instance of smartcardclient:
    smartcard = new SmartcardClient(this, connectionListener);4) get the list of readers :
    String[] readers = smartcard.getReaders();you can check if a specific reader is connected or nor with
    smartcard.isCardPresent(readers [0]);5) create a card channel and select your applet:
    cardChannel = smartcard.openLogicalChannel(cardReader, APPLET_AID);
    ICardChannel cardChannel = null;
    cardChannel = smartcard.openLogicalChannel(cardReader, APPLET_AID);6) you can send and receive APDUs with this line of code:
    byte[] response Apdu = cardChannel.transmit(commandApdu);Regards,
    Hana

  • Java Card and Random Data

    Hello,
    i�m a student working with smart cards in my spare time. I�ve never
    worked with Java Cards before. As far as i know, instead of
    applications there are Java Applets on the Java Card. And instead of a
    native smart card OS there is the Java Card VM from Sun, with all its
    libraries.
    What i would like to know now is, how can i write a simple applet to
    generate for example a random number. According to Sun�s JC API 2.1.1
    there is a class called RandomData (in library javacard.security)
    which allows me to generate a random number. But this class is an
    abstract class. That means, i have to overwrite its abstract class
    functions setSeed(...) and generateData(...).
    Do i have to add the implementation code for these functions? How are
    these function calls handled to the JavaCard VM and to the hard ware
    of the Java Card? Does it depend on the possibilities of the hardware
    functionality of a Java Card?
    I would be very greatful if you could help me out with this.
    Sami

    You can call:
    RandomData r = RandomData.getInstance(RandomData.ALG_SECURE_RANDOM);
    Usually, the chips have hardware RNG and thus provide true random.

Maybe you are looking for

  • Install AD / SQL Server 2012 and SharePoint 2013 on a single server as Development Environment

    Hi All,       I'm planning to prepare a SharePoint 2013 development environment. The current idea is to install Domain controller, SQL Server 2012 and SharePoint 2013 all on a single server. Even though this is for development purposes, would there b

  • How can I add a new certificate to be used with SFTP

    Hi, I wanted to know how to add a new certificate (from MS server) so it can be used by sftp. I tried certtool, but got error messages. It's a DSA cert, and I need to secure ftp to this site. Thanks in advance

  • Upgrade of Sourcesystem SAP EHP3 SAP ECC 6.0 to SAP EHP4 SAP ECC 6.0

    Hi, I noticed there is a lot of questions on the testing procedures for BI side when Upgrading the source system from R/3 to ECC 6.0. But noticed there aren't many posts on when doing Ehancement Packs. But I believe the process would be more or less

  • Debugging with command line flex 3?

    I am using Flex 3 from the command line and have downloaded the debugger Flash Player.  I get the debugging option on the context menu in the browser when I run my .swf but it is greyed out.  I do not seem to have any swf files with -debug in the fil

  • Why does this EPS graphic in my title keep disappearing?

    Someone sent me a logo in the form of an EPS file. I used it in a title frame and it was visible both in the title and when I put it in my timeline. Then I went to watch it and it wouldn't show up. I did it a second time, recreating the title frame,