Presentation is loading. Please wait.

Presentation is loading. Please wait.

Java Card Open Platform Combines tomorrow's technology and platforms C:\Presentations - JavaCard_OpenPlatform.ppt - bsc - 26.02.02 - page 1 Programming.

Similar presentations


Presentation on theme: "Java Card Open Platform Combines tomorrow's technology and platforms C:\Presentations - JavaCard_OpenPlatform.ppt - bsc - 26.02.02 - page 1 Programming."— Presentation transcript:

1 Java Card Open Platform Combines tomorrow's technology and platforms C:\Presentations - JavaCard_OpenPlatform.ppt - bsc - 26.02.02 - page 1 Programming a Java Card The Applet Model –Installation Create an applet instance Register the applet with the JCRE –Selection Select the applet, do some initialization –Processing Process commands send from the host –Deselection Clean up and state saving – get SIO Deliver the reverence of the own instance Applet Install Select Process Deselect getShareableInterfaceObject

2 Java Card Open Platform Combines tomorrow's technology and platforms C:\Presentations - JavaCard_OpenPlatform.ppt - bsc - 26.02.02 - page 2 Programming a Java Card (2) Installation –Create an Applet instance –Call the Constructor –Create Applet objects –Register the Applet with the JCRE –Do Error Handling package com.gieseckedevrient.applets.myfirst; import javacard.framework.*; public class MyFirst extends Applet { // ---------------------------------------------- // Constructor // ---------------------------------------------- private MyFirst () { register (); } // -- END - static elements --------------------- // ---------------------------------------------- // Install method // ----------------------------------------------------------------- public static void install(byte[] buffer, short offset, byte length) { new MyFirst(); } // -- END - Public static void install(... ) ----------------------

3 Java Card Open Platform Combines tomorrow's technology and platforms C:\Presentations - JavaCard_OpenPlatform.ppt - bsc - 26.02.02 - page 3 Programming a Java Card (3) Selection / Deselection –When an ISO 7816-4 select command is received –JCRE checks if the AID corresponds to an registered applet –If so, the active applet is first deselected and the applet with the correct AID is selected –Otherwise the command is transfered to the selected applet for processing Command Processing – Get the APDU buffer –Decode the command header –Receive command data if needed –Perform command –Send response –Throw ISOException if status is not 90 00

4 Java Card Open Platform Combines tomorrow's technology and platforms C:\Presentations - JavaCard_OpenPlatform.ppt - bsc - 26.02.02 - page 4 Programming a Java Card (8) - Processing (1) public void process(APDU o_apdu) throws ISOException { if( selectingApplet() ) { m_sz_Verified = false; return; } byte[] ba_buffer = o_apdu.getBuffer(); //Examination of the buffer. switch( ba_buffer[ ISO7816.OFFSET_INS ] ) { //PIN Verification as defined in ISO 7816-4. case VERIFY: // ---------------------------- s_databytes = receive( o_apdu ); s_dataoffset = Util.getShort( ba_buffer, ISO7816.OFFSET_P1 ); b_result = Util.arrayCompare( ba_buffer, (short) (ISO7816.OFFSET_CDATA & 0x00FF), m_sba_aPin, (short)0, s_databytes );

5 Java Card Open Platform Combines tomorrow's technology and platforms C:\Presentations - JavaCard_OpenPlatform.ppt - bsc - 26.02.02 - page 5 Programming a Java Card (8) - Processing (2) if( b_result == (byte)0x00 ) { m_sz_Verified = true; } else ISOException.throwIt( ISO7816.SW_SECURITY_STATUS_NOT_SATISFIED ); break; case READ: // ----------------------------------------------------- if( !m_sz_Verified ) ISOException.throwIt(ISO7816.SW_SECURITY_STATUS_NOT_SATISFIED); o_apdu.setOutgoing(); o_apdu.setOutgoingLength( (short) 80 ); o_apdu.sendBytesLong( m_sba_userdata, (short)0, (short)80 ); break; default : // ------------------------------------------------------ ISOException.throwIt( ISO7816.SW_INS_NOT_SUPPORTED ); } } // -- END - public void process(... ) throws ISOException -----------------

6 Java Card Open Platform Combines tomorrow's technology and platforms C:\Presentations - JavaCard_OpenPlatform.ppt - bsc - 26.02.02 - page 6 Programming a Java Card (1) The ISO-7816 APDU communication model Command APDU Response APDU Host Java Card

7 Java Card Open Platform Combines tomorrow's technology and platforms C:\Presentations - JavaCard_OpenPlatform.ppt - bsc - 26.02.02 - page 7 Programming a Java Card (2) Command APDU –CLA - indicates the type of command (ISO, prop.) –INS - specifies the instruction to be performed –P1 and P2 - instruction parameters –Lc - number of bytes in the data field –Data - command optional data –Le - number of bytes expected in the response Header (mandatory) CLAINSP1P2 Body (optional) LcDATALe

8 Java Card Open Platform Combines tomorrow's technology and platforms C:\Presentations - JavaCard_OpenPlatform.ppt - bsc - 26.02.02 - page 8 Programming a Java Card (3) Response APDU –Data - command optional response –SW1 and SW2 - status word Trailer (mandatory)Body (optional) SW1DATASW2

9 Java Card Open Platform Combines tomorrow's technology and platforms C:\Presentations - JavaCard_OpenPlatform.ppt - bsc - 26.02.02 - page 9 Programming a Java Card (4) Naming conventions in Java Card All named resources use ISO 7816-5 AIDs Named resources are –Packages (for loading, linking and deletion) –Applet Classes (for installation of applets) –Applet Instances (the real card applications) 0 to 11 bytes PIX proprietary identifier extension RID register identifier 5 bytes


Download ppt "Java Card Open Platform Combines tomorrow's technology and platforms C:\Presentations - JavaCard_OpenPlatform.ppt - bsc - 26.02.02 - page 1 Programming."

Similar presentations


Ads by Google