Develop Mutiple application java card?

how does the multiple application java card works?I mean do we have to write different applets for different applications? and if yes then how does the card reader will recognize for which application the card should be used? Can anyone help me???

Hi,
how does the multiple application java card works?Multiple applets can exist on a single card because each applet instance is identified by a unique AID (application identifier). The card knows which applet is currently active and manages this for you. The active applet is the last applet that has been selected in the current session or the default applet for the card. If there is no default applet the card manager will be active.
do we have to write different applets for different applications? If the different application requires different functionality you may want to use a separate applet but you can have multiple instances of the same applet as long as each instance has a unique instance AID. The instance AID is different to the applet/module AID (but it can be the same value). Each instance will have the same applet AID. You need to be careful with static variables when you have multiple instances of an applet as in any Java application, as there is still only on copy of the class in the JVM.
how does the card reader will recognize for which application the card should be used?The card reader does not care which applet is being used. It only cares about the physical card. The card manager handles the currently active applet.
I hope I have explained this clearly enough. One thing to remember is there are 3 AID's. The package AID, the module AID (for the applet class in the package) and the instance AID (for the instance of the applet created in the JVM with an install for install command).
Cheers,
Shane

Similar Messages

  • Java Card Kit - development environment

    Hello!
    I need to upgrade to the latest Java Card Kit, because I need some of the classes in javacardx.framework, which is not supported by version 2.2.1.
    But some problems arises when I'm trying to use version 2.2.2
    1) It requires jdk1.5. Ok, no problem (ehh)
    2) I'm using eclipseME 1.6.0. This requires jdk 1.4.2.
    3) I downloaded WTK2.5 which supports jdk 1.5, but I cannot get this to work properly. This is the error output of WTK when my application tries to connect to the running cref-simulator:
    java.io.IOException: error 10054 during TCP read
    I have not found a solution for this problem yet. But my question is:
    What is the optimal development environment for java card 2.2.2? What kind of MIDlet-emulator and which version are people using together with java card 2.2.2? Is there a eclipse plugin that supports jdk 1.5?
    Regards
    Haavard

    Only cref can create and use EEPROM images.
    You do not communicate with cref via SATSA apdu.... In emulation environment APDU commands are forwarded via satsa-apduio.jar to any process which can accept these commands. It's a pity but you just cannot replace satsa-apduio.jar with apduio.jar from JCDK 2.2.2 (which uses T=0 by default).
    As for my proxy - it's not necessary to include it in your project - it's just an utility to accept T=0 APDU and forward them to smart-card. I think there's need to add new functionality - forwarding T=0 APDUs to other process which accepts T=1. I think it will solve your problem.

  • Is it possible to simulate whole java card application on simulator?

    Hello all,
    currently i dont have any real java card yet,not either reader . I already made a simple applet and check its working by CJCRE (net beans simulator), it is working fine,
    now i want to move to host application which will communicate with java card via card reader. Is this possible to simulate complete application ( host application + java card applets)?
    I want to check it out that:- which line of java program would be helpful to know that:-
    1-"how real host application will talk to reader"
    2- how it connect and disconnect the reader
    3- how it send apdu to java card by reader
    and much more.
    I am using netbeans 7.1 and it is using CJCRE as a simulator....

    you mean to say this
    http://askra.de/software/jcdocs/app-notes-2.2.2/apduio.html
    I am quite confused now, i read this but still can not imagine the concept ,
    an applet code is :-
    public class GetName extends Applet
         final static byte CLASS     = (byte) 0x80;  // Class of the APDU commands
         final static byte INS_READ  = (byte) 0x02;  // instruction for the READ APDU command
         final static byte INS_WRITE = (byte) 0x03;  // instruction for the READ APDU command
         final static byte INS_DY_CO = (byte) 0x04;  // instruction for the READ APDU command
         final static byte[] text    = {(byte) 'A', (byte) 'M', (byte) 'I', (byte) 'T'};
         public static byte[] holder;
         public static void install(byte[] bArray, short bOffset, byte bLength)
            new GetName();
        protected GetName()
            holder = new byte[5];// allocation of memory in runtime
            register();
        public void process(APDU apdu)
              if(selectingApplet())
                   return;
            byte[] cmd_apdu = apdu.getBuffer();         
             if (cmd_apdu[ISO7816.OFFSET_CLA] == CLASS)
                   switch(cmd_apdu[ISO7816.OFFSET_INS])
                        case INS_READ:  
                        if ((cmd_apdu[ISO7816.OFFSET_P1] != 0) || (cmd_apdu[ISO7816.OFFSET_P2] != 0))
                        ISOException.throwIt(ISO7816.SW_WRONG_P1P2);
                        short le = (short)(cmd_apdu[ISO7816.OFFSET_LC] & 0x00FF); 
                        short len_text = (short)text.length;                      
                        if (le != len_text)
                        ISOException.throwIt((short)(ISO7816.SW_CORRECT_LENGTH_00 + len_text)); 
                        apdu.setOutgoing();                      
                        apdu.setOutgoingLength((short)len_text);
                        apdu.sendBytesLong(text, (short)0, (short)len_text);
                        break;
                    // here we save data from apdu and will keep inside the data byte                   
                        case INS_WRITE:
                    short lc = (short)(cmd_apdu[ISO7816.OFFSET_LC] & 0x00FF); 
                    Util.arrayCopy(cmd_apdu, (short) ((ISO7816.OFFSET_CDATA) & 0xff), holder, (short) 0, lc);
                        short len_holder_inside_write= (short) holder.length;
                       apdu.setOutgoing();
                    apdu.setOutgoingLength((short)len_holder_inside_write);
                    apdu.sendBytesLong(holder, (short) 0, (short) len_holder_inside_write);
                    break;
                    case INS_DY_CO:
                        short len_holder= (short) holder.length;
                    apdu.setOutgoing();
                    apdu.setOutgoingLength((short)len_holder);
                    apdu.sendBytesLong(holder, (short) 0, (short) len_holder);
                    break;
                        default : 
                        ISOException.throwIt(ISO7816.SW_INS_NOT_SUPPORTED);
             else
                    ISOException.throwIt(ISO7816.SW_CLA_NOT_SUPPORTED);
    }now i think i need to make a another java file which would contain a main class, Is this both file would be inside a single java card project. and how these both would be connect to each other.
    for manually run a applet- there were two steps 1-
    C:\java_card_kit-2_2\samples\src\demo>jcwde jcwde-getname.app
    Java Card 2.2 Workstation Development Environment (version 0.18).
    Copyright 2002 Sun Microsystems, Inc. All rights reserved.
    jcwde is listening for T=0 Apdu's on TCP/IP port 9,025.
    and in second terminal we wrote-
    C:\java_card_kit-2_2\samples\src\demo>apdutool -nobanner -noatr getname.scr > ge
    tname.scr.jcwde.out
    Here it is clear that, if i will use javacardio then no need to pass the apdu from a file .....but i am confuse about how it possible, ie. is both file lie in same project , because i m using simulator so i need to run these both file simoltaneously........give me some roughly steps to implement this.

  • Java Card Development Tool and Cards.

    Hello all,
    I'm thinking to purchase some Java Card Development Tools and Java Cards.
    Could you guys recommend any?
    Now I'm checking the Schlumberger's Cyberflex Access SDK. If I buy this, which card do I have to choose? 'Cyberflex Access Developer Card'?
    Howabout Gemplus? Oberthur? or G&D? and anything else?
    I look forward to hearing from you guys,
    Thank you.
    Julie.

    A list of Java Card development tools is available at http://wireless.java.sun.com/allsoftware/index.html#jcardtools

  • Choosing java card and jcdk

    hi all,
    we are planning to use java card for our project.can you suggest a java card development kit and java card which are appropriate for beginners?also
    what are the required tools for developing applet on the card and host side applet(that resides on pc) that communicates with the card?

    I bought a few of them in past but didn't work together. Not sure it is reader or card's problem. Do you think those two work together?
    http://www.usasmartcard.com/component/page,shop.product_details/flypage,shop.flypage/product_id,138/category_id,10/manufacturer_id,0/option,com_virtuemart/Itemid,26/
    and
    http://www.usasmartcard.com/shop/java-card_20/10404_137.html
    Thanks

  • [Ask] Getting Started to Java Card 2.2.2 or 3.0

    Hi Friends..
    I'm currently tasked to create Java Card application that would be loaded to MIFARE / DESFIRE Card..
    How to solve it?..
    I have Omnikey Cardman 5321 SmartCard Reader, and i have MIFARE and DESFIRE Card.
    I've tried to created simple Java Card application (Java Card 3.0)..
    Actually, i prefer Java Card 3.0 because its based on Servlet.. (i'm more familiar with Servlet than Applet :) )
    Could i load that application onto MIFARE / DESFIRE Card?..
    Is there any Card that have supported for Java Card 3.0?..
    or do i've to use Java Card 2.2.2?..
    How to getting started with Java Card 2.2.2?..
    is there any books that described about it?..
    Thanks in advanced..

    hanks safarmer for your reply..
    yes, i've compiled and run that code in Netbeans 6.9m1, but i got this message error :
    Exception in thread "main" javax.smartcardio.CardException: connect() failed
            at sun.security.smartcardio.TerminalImpl.connect(TerminalImpl.java:67)
            at javaapplication1.Main.main(Main.java:32)
    Caused by: sun.security.smartcardio.PCSCException: SCARD_W_UNRESPONSIVE_CARD
            at sun.security.smartcardio.PCSC.SCardConnect(Native Method)
            at sun.security.smartcardio.CardImpl.<init>(CardImpl.java:65)
            at sun.security.smartcardio.TerminalImpl.connect(TerminalImpl.java:61)
            ... 1 more
    Java Result: 1The card's status is SCARD_W_UNRESPONSIVE_CARD.
    How to solve this? How to make the SmartCard become a "RESPONSIVE CARD"?..
    Please help me regarding this..
    Thanks in advance..

  • Step by step approach to develope the java card application

    Do anybody know how to develope a smart card application using java card.i have downloaded java card kit,but the documentation provided by the sun is bit complex to use.
    so please anybody know how to proceed?
    It would be appreciated if i am given a step by step approach to develope a smart card application using java card.

    Do anybody know how to develope a smart card
    application using java card.i have downloaded java
    card kit,but the documentation provided by the sun is
    bit complex to use.
    so please anybody know how to proceed?I would suggest to read these articles
    http://developers.sun.com/techtopics/mobility/javacard/articles/
    Jan

  • Java Card Applet Development

    Please I am doing my final year project on secure mobile application using Java Card Technology.
    I need to write and an application that can send SMS on a SIM card to another SIM card with the same application. The application will have a server side which manage the storage of messages and at the same time communicate information to the client on the SIM remotely. I am suppose to use wi-fi (TCP/IP) for transmission.
    Can anybody please give me ideas and possible working codes and simulators.
    I mean step by step procedure of how to start.
    THANK YOU.

    1. Good.
    2. I suggest you start testing using the simulator, however if you want to test directly on the card at once, select your card reader using the /term command and use the commands as described in help to start sending APDUs to the card.
    3. This is not a part of the JCOP tools for eclipse (which is developed by IBM and maintained by NXP), but part of the JavaCard development toolkit developed and maintained by Sun. See http://java.sun.com/products/javacard/dev_kit.html.
    4. Read the above. None of this is part of JCOP tools for eclipse.
    5. As far as I know, there is no independent newbie guide for JCOP tools, but I would check out the help function included in the tools themselves if I were you.
    Good luck!

  • Seeking Help for Guidance in developing a product using JAVA CARD

    Hi All,
    I am using windows environment with netbeans 6.8 as developer tool and MySql Server connectivity for back end process.My requirement is to develop applets and installing them to my Smart card and reader.my question is
    1. how i am supposed to create applets to get the student id of particular student whose id is already registered in the database?
    2. how to install them into the smart card?
    3.what are the commands i am supposed to follow if other than APDU commands?
    4.i found there is APDU commands but what do that each CLA,INS,p1,p2,Lc,le..commands used for?how can i use them in my creation of applets.i found the command varies for certain requirements.
    5.if possible please help me with a small example so that i will start developing it.
    can anyone help me in developing this application.i will be so helpful if anyone helps me in guiding me to develop the java card product.
    Edited by: Sijukj on Mar 4, 2010 7:04 AM

    Hi,
    Welcome to the wonderful world of embedded Java development!
    Sijukj wrote:
    1. how i am supposed to create applets to get the student id of particular student whose id is already registered in the database?The first step is to download the Java Card Development Kit (JCDK) from the Sun website (along with the related documentation/specifications). If you plan on using your code on a real card, I would recommend JC version 2.2.1 or 2.2.2. If it is sufficient to run your applet on a simulator (as a proof of concept or for assignments) with no intention on running on real hardware you could go for JC 3.0.2 and use the supplied simulator. This version of JC does not have commercially available cards as of yet.
    Once you have the applet coded and installed on your card, you would personalise the card for the card holder. This means loading card holder specific data into your application. This may also involve registering the smart card ID with the student in your database.
    2. how to install them into the smart card?The procedure for loading and installing applets is outlined in the Java Card documentation (available with the JC development kits from Sun) and the GlobalPlatform card specifications (available from [http://www.globalplatform.org]). You can look into some open source tools for doing this (GPShell and the Java Card Development Kit).
    3.what are the commands i am supposed to follow if other than APDU commands?This depends on what you are trying to achieve with your applet. If you want interoperability you could implement a standard like ISO7816 or IOS24727. This is a lot of work so you may just want to implement the proprietary you require for each operation you need (e.g. set student ID, get student ID etc).
    4.i found there is APDU commands but what do that each CLA,INS,p1,p2,Lc,le..commands used for?how can i use them in my creation of applets.i found the command varies for certain requirements.These are defined in ISO7816 part 4.
    The CLA byte gives information on the command you are sending such as secure messaging, command chaining, ISO or proprietary command
    The INS is the instruction or command you are trying to perform
    P1 and P2 are parameters to the command. These may not be required for each command but are able to be used to convey further information to the applet.
    Lc is the length of the data field you are sending (e.g. for a PUT DATA command this would be the amount of data you are sending)
    Le is the length of the data you expect to receive back from the card. If this is absent you do not expect the card to return any data, 0x00 means send all the data you have left (up to the limit of the response APDU)
    5.if possible please help me with a small example so that i will start developing it.You can find example code in the Java Card Development Kit. There are a wide range of examples there that can help you get started.
    Cheers,
    Shane

  • Java Card for healthcare applications

    I am quite new to Java Card and I am currently developing a healthcare applications using Java Card. What is best:
    Storing the patients medical history on the card itself
    OR
    storing it on a database and use the Java Card as a access token?
    Thanks.

    Besides the fact that the storage capacity of todays JavaCards is very limited. This question is IMHO more a plitical question (and a question of privacy) than a technical question.
    Jan

  • How to start java card development?

    Good Evening all,
    I am novice for java card development , from last some days I study java card and terms related to it, now i have some knowledge about applets , and API. as i read about java card 2 and 3, I think i moved to java card 2 that's why i download jcdk 2.1.
    Now i want to do something in development rather than further conceptual study. Frankly speaking I m confused where to move because different sites have different point of view so i want to execute my knowledge which i earned from last some days...
    so I want to ask
    1- which IDE would be best for java card development? { eclipse or net beans or something other}
    2- what things i would be require during java card application?{ java sdk version? jcdk version? ocf? or what}
    3- at start i want to use simulation technique to test what i made and how its work, so for this which tool or IDE would be best work for me,
    so kindly request you to guide me and show me the path where i can move and achieve what i want..
    ---------------------------------------------------------------------------------------------------Thank you in advance------------------------------------------
    Edited by: 911936 on Feb 2, 2012 10:01 AM

    Hello umer,
    last night it seems very tough to execute sample program of jcdk 2.2 but finally i make it, and i also i got the IDE - net beans that is very good for java card...
    I think i should share my knowledge here for next novice people...
    ----------------------------------------------------------------------------java card development require-------------------------------------------------------------
    Because here we use java for java card so we require
    1- java development kit (JDK) - use below link to get this.
    [get jdk here|http://download.oracle.com/otn-pub/java/jdk/6u30-b12/jdk-6u30-windows-i586.exe]
    2- Java card require java card development kit (JCDK) I think java card version 3 is latest but i used jcdk 2.2.1
    [get jcdk here|http://download.oracle.com/otn-pub/java/java_card_kit/2.2_01/java_card_kit-2_2_01-win-gl.zip]
    now  i think this is enough to start java card development...
    follow below steps
    1- install jdk 6 in c:/java/jdk1.6
    2-keep jcdk in c:/java_card_kit-2_2
    3- open command prompt and run
    a)-set JC_HOME=c:\java_card_kit-2_2
    b)-set JAVA_HOME=c:\java/jdk1.6
    c)-set PATH=%JC_HOME%\bin;%PATH%
    4-there are some sample project in scdk, if you want to get confidence , u should run one of them..
    run command- jcwde jcwde.app { jcwde is a simulator where u check what u made }
    and run this command in another command prompt- apdutool -nobanner -noatr demo1.scr > demo1.scr.jcwde.out
    You can get detail of 3 and 4 step from cJDK_Users_Guide.pdf which is present in jcdk.
    ------------------------this  is all which u need to do to get confidence in java card, but dont be over confident because in reality "the ball is not in your court yet"
    Note- if you are searching which java IDE is best for java card development then
    [click here- this is one of the best ide for java card|http://dlc.sun.com.edgesuite.net/netbeans/7.1/final/bundles/netbeans-7.1-ml-windows.exe]
    Edited by: 911936 on Feb 3, 2012 8:58 AM

  • 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.

  • Writing Java Card Application

    Please I am doing my final year project on secure mobile application using Java Card Technology.
    I need to write and an application that can send SMS on a SIM card to another SIM card with the same application. The application will have a server side which manage the storage of messages and at the same time communicate information to the client on the SIM remotely. I am suppose to use wi-fi (TCP/IP) for transmission.
    Can anybody please give me ideas and possible working codes and simulators.
    I mean step by step procedure of how to start.
    THANK YOU.

    Dear Friend,
    I would recomend you to start with learning 3GPP TS 43.019. Please surf the internet and download it. There you can also find a sample applet using SIM API.
    For a simulator you can download JavaCard Development Suite from Gemalto web site.
    Yours
    Dmitri

  • Reg: java card application needs

    Dear experts,
    i am a newbie to java card, After a lot of googling, i found JACCAL to aid java card programming development. I have downloaded and installed it but i dont know how to use it? any help will be greatly appreciated,
    By the way, i need to know why do we need IDE or tools for java card programming?. Cant we complete right from typing program to till burning on card using the java card kit ? please correct me, if i am wrong.
    I have tested the sample programs successfully with java card kit 2.1.2. My doubt is, What are the needs for java card application, like what CAD, card and tools should be used or purchased(most of them ,i found from the web are outdated like JCOP, OCF).
    Thanks in advance.
    SRI.

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

  • Beginner's Question on simulation of java card application

    Hi,
    I am trying to run a basic Java card application.
    To simulate the java card application, I created jcwde.app and tried C:\>jcwde -p 9025 jcwde.app
    I got and exception like:
    Exception in thread "main" java.lang.UnsatisfiedLinkError: markHeap
    at com.sun.javacard.impl.NativeMethods.markHeap(Native Method)
    at javacard.framework.Dispatcher.cardInit(Dispatcher.java:188)
    at javacard.framework.Dispatcher.main(Dispatcher.java:63)
    at javacard.framework.JCWDEDispatcher.main(JCWDEDispatcher.java:28)
    at com.sun.javacard.jcwde.Main.run(Main.java:85)
    at com.sun.javacard.jcwde.Main.main(Main.java:148)
    Can anyone help me to find out the reason for this exception?
    The content of jcwde.app is
    // applet AID
    com.sun.javacard.installer.InstallerApplet 0xa0:0x0:0x0:0x0:0x62:0x3:0x1:0x8:0x1
    wallet.Wallet
    Thanx in advance.
    anju

    I see terms like ...
    Core Java: The main libraries.
    JDK: (J)ava (D)evelopement (K)it) - AKA: (S)oftware (D)evelopement (K)it although the terms are not exactly synonomous
    J2EE:(J)ava 2 (E)nterprise (E)dition (builds on the J2SE with additional librarities for true business application building)
    J2SE: (J)ava 2 (S)tandard (E)dition (The core libraries for general Java program developement, w/o the extra stuff that is in the J2EE
    Go to java.sun.com and check out the tutorials, the readme files that come with the downloads, the release notes, etc ... HTH

Maybe you are looking for

  • CRM - BI Implementation

    Hi Guru's, I have been asked to work in a BI CRM implementation project. Could someone who has already worked on it or has knowledge related to BI - CRM implementation guide me as to how do I go about starting it. Thanks in advance.

  • Swf won't play in captivate

    Hello all, I am trying to import a swf file I made with Crystal Xcelsius. When i open the swf in any program (flash player, flash 8, ppt, etc) it works fine. When i import it into captivate 2 I can see it properly in the placeholder but when I previe

  • Sharing a music library also shares podcasts??

    My wife and I have our own logins for this computer. She has her own iTunes, although we share the same Music folder. That way we can listen to some of the same songs without having duplicates on our machine. Anyway, here is the problem: Because we s

  • Query 4 tables

    Hi, I am creating a conveyancing tracker.I need to select data from 4 tables. They are [list] [*]Client Details- Holds each client once [*]Buy- Is a purchase transaction links buy client id [*]Sale- Is a Saletransaction links buy client id [*]Remortg

  • Can i bring back my iphones ios5.0.1 when i already updated it to ios5.1?

    can i bring back my iphones ios5.0.1 when i already updated it to ios5.1?