[Muscle] finding the applet size required for installation

Karsten Ohme widerstand at t-online.de
Mon Mar 24 12:28:13 PDT 2008


kamal kumar schrieb:
> Hi,
> I am trying to find the size needs during
> instantiation to manage allocation. 
> I took this sample from javacard toolkit. Can you
> please tell me how to calculate the size needed during
> instantiation to manage allocation in
>  the below sample.

Count the used bytes and estimate the internal usage of the used 
objects. This is quite coarse. You can try to limit the size further by 
trial and error. I f want to know it exactly you have to study your 
compiled class and read the Java Card specification what it says.

Regards,
Karsten
> 
> ========================================================================================================================================================
> public class Wallet extends javacard.framework.Applet
> { 
> 
>     /* constants declaration */ 
>     // code of CLA byte in the command APDU header 
> 	 final static byte Wallet_CLA =(byte)0x80;
> 
> 	// codes of INS byte in the command APDU header
> 	 final static byte Deposit = (byte) 0x10; 
> 	 final static byte Debit = (byte) 0x20;
> 	 final static byte Balance = (byte) 0x30; 
> 	 final static byte Validate = (byte) 0x40;
> 	 final static byte Encrypt = (byte) 0x50;
> 	 final static byte PinChange = (byte) 0x60;
> 
> 	// maximum number of incorrect tries before the PIN
> is blocked
> 	 final static byte PinTryLimit =(byte)0x03;
> 
> 	// maximum size PIN
> 	 final static byte MaxPinSize =(byte)0x04;
> 
> 	// status word (SW1-SW2) to signal that the balance
> becomes negative;
> 	 final static short SW_NEGATIVE_BALANCE = (short)
> 0x6910;
> 	 final static short SW_WRONG_PIN = (short) 0x6300;
> 
>     /* instance variables declaration */ 
> 	OwnerPIN pin;
> 	static byte base_balance = (byte) 0x20;
> 	byte balance;
> 	DESKey      key;
> 	Signature   signature;
> 
> 	private Wallet(byte buffer[],short offset,byte
> length) { 
> 		
> 		// It is good programming practice to allocate
> 		// all the memory that an applet needs during its
> 		// lifetime inside the constructor
> 		pin = new OwnerPIN(PinTryLimit, MaxPinSize);
> 		balance = (byte) 0;
> 		key =
> 
> (DESKey)KeyBuilder.buildKey(KeyBuilder.TYPE_DES_TRANSIENT_RESET,KeyBuilder.LENGTH_DES,false);
> 		signature =
> 
> Signature.getInstance(Signature.ALG_DES_MAC8_ISO9797_M1,false);
> 		signature.init(key,Signature.MODE_SIGN);
> 		if (buffer[offset] == (byte)0) {
> 			register();
> 		}
> 		else {
> 			register(buffer, (short)(offset+1)
> ,(byte)(buffer[offset]));
> 		}
> 	} // end of the constructor 
> 
> ============================================================================
> 
> Regards,
> Kamal.
> 
> 
> --- sferey <s.ferey at wanadoo.fr> wrote:
> 
>> kamal kumar a écrit :
>>> HI all,
>>> I don't know whether it is right forum to ask.
>> you can try here or at alt.technology.smartcards
>> newgroup.
>>> I am new to java card applet development. I have
>>> written one sample applet. and loaded the applet
>> using
>>> sclumberger toolkit. But while installing the
>> applet I
>>> am facing problem. I need to tell the applet size
>>> required for install. I don't know how to find the
>>> required size  required for the installation.
>> option 1: bad card domain, change card domain (or
>> card).
>>
>> the CAP file's size should be used if:
>> - "installing" means "loading the CAP file" and
>> - "applet size" means "size need to store that
>> library".
>> (if so, the card is quite stupid, since this
>> information
>> is usually in the first 256 bytes of the CAP file)
>>
>>
>> option 2: card domain with memory allocation
>> controls
>>
>> OOH, if
>> - "installing" means "instantiating the applet" or
>> - "applet size" means "size needs during
>> instantiation
>>   to manage allocation in its constructor", the
>> response
>>   is up to you and only defined by what you have
>> insert
>>   in your applet constructor.
>>  (of course if instance, array, ..., instantiation
>> is
>>  also required during the applet's life you want
>> take
>>  such figures into account when computing that
>> "needed
>>  size").
>>
>> and such information makes sense for a card domain.
>>
>> Sylvain.
>>
>>
>>
>> _______________________________________________
>> Muscle mailing list
>> Muscle at lists.musclecard.com
>> http://lists.drizzle.com/mailman/listinfo/muscle
>>
> 
> 
> 
>       ____________________________________________________________________________________
> Looking for last minute shopping deals?  
> Find them fast with Yahoo! Search.  http://tools.search.yahoo.com/newsearch/category.php?category=shopping
> _______________________________________________
> Muscle mailing list
> Muscle at lists.musclecard.com
> http://lists.drizzle.com/mailman/listinfo/muscle
> 
> 



More information about the Muscle mailing list