06.11.2014 Views

A User Centric Security Model for Tamper-Resistant Devices

A User Centric Security Model for Tamper-Resistant Devices

A User Centric Security Model for Tamper-Resistant Devices

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

C.10 Abstract Virtual Machine<br />

603 }<br />

604 }<br />

C.10 Abstract Virtual Machine<br />

In this section, we illustrate the implementation of the abstract virtual machine that counts<br />

the number of selected opcodes a Java Card application has and calculate the associated<br />

cost <strong>for</strong> individual security mechanism.<br />

1 package abstractVM ;<br />

2<br />

3 import java . i o . ∗ ;<br />

4 import java . u t i l . I t e r a t o r ;<br />

5 import org . apache . l u c e n e . a n a l y s i s . Analyzer ;<br />

6 import org . apache . l u c e n e . a n a l y s i s . standard . StandardAnalyzer ;<br />

7 import org . apache . l u c e n e . document . Document ;<br />

8 import org . apache . l u c e n e . document . F i e l d ;<br />

9 import org . apache . l u c e n e . index . CorruptIndexException ;<br />

10 import org . apache . l u c e n e . index . IndexReader ;<br />

11 import org . apache . l u c e n e . index . IndexWriter ;<br />

12 import org . apache . l u c e n e . queryParser . ParseException ;<br />

13 import org . apache . l u c e n e . queryParser . QueryParser ;<br />

14 import org . apache . l u c e n e . s e a r c h . Hit ;<br />

15 import org . apache . l u c e n e . s e a r c h . Hits ;<br />

16 import org . apache . l u c e n e . s e a r c h . IndexSearcher ;<br />

17 import org . apache . l u c e n e . s e a r c h . Query ;<br />

18 import org . apache . l u c e n e . s t o r e . D i r e c t o r y ;<br />

19 import org . apache . l u c e n e . s t o r e . FSDirectory ;<br />

20 import org . apache . l u c e n e . s t o r e . LockObtainFailedException ;<br />

21 public class abstractVirtualMachine {<br />

22 private S t r i n g inputClassFileName = " e v a l u a t i o n F i l e " ;<br />

23 private S t r i n g mnemonicOutputFileName = inputClassFileName + " . t x t " ;<br />

24 public s t a t i c f i n a l S t r i n g FILES_TO_INDEX_DIRECTORY =<br />

25 "D: \ \ e v a l u a t i o n F o l d e r " ;<br />

26 public s t a t i c f i n a l S t r i n g INDEX_DIRECTORY =<br />

27 "D: \ \ e v a l u a t i o n F o l d e r \\ indexFolder " ;<br />

28 public s t a t i c f i n a l S t r i n g FIELD_PATH = " path " ;<br />

29 public s t a t i c f i n a l S t r i n g FIELD_CONTENTS = " c o n t e n t s " ;<br />

30 public s t a t i c f i n a l S t r i n g [ ] keywordList = {<br />

31 " aaload " , " iand " , " a a s t o r e " , " i a s t o r e " , " aconst_null " , "icmp" ,<br />

32 " aload " , " iconst_0 " , " aload_0 " , " iconst_1 " , " aload_1 " ,<br />

33 " iconst_2 " , " aload_2 " , " iconst_3 " , " aload_3 " , " iconst_4 " ,<br />

34 " anewarray " , " iconst_5 " , " areturn " , " iconst_m1 " , " a r r a y l e n g t h " ,<br />

35 " i d i v " , " a s t o r e " , " if_acmpeq " , " astore_0 " , "if_acmpeq_w" ,<br />

36 " astore_1 " , "if_acmpne" , " astore_2 " , "if_acmpne_w" , " astore_3 " ,<br />

37 " if_scmpeq " , " athrow " , "if_scmpeq_w" , " baload " , " if_scmpge " ,<br />

38 " b a s t o r e " , "if_scmpge_w" , " bipush " , " if_scmpgt " , " bspush " ,<br />

39 "if_scmpgt_w" , " c h e c k c a s t " , " if_scmple " , "dup" , "if_scmple_w" ,<br />

40 "dup_x" , " if_scmplt " , "dup2" , "if_scmplt_w" , " g e t f i e l d _ a " ,<br />

41 " if_scmpne " , " g e t f i e l d _ a _ t h i s " , "if_scmpne_w" , " getfield_a_w " ,<br />

430

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!