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.6 Application Acquisition and Contractual Agreement Protocol<br />

813 private void shortToBytes ( byte [ ] Array , short a r r a y O f f s e t , short<br />

inShort )<br />

814 {<br />

815 Array [ a r r a y O f f s e t ] = ( byte ) ( ( short ) ( inShort & ( short ) 0xFF00 ) >><br />

( short )<br />

816 0 x0008 ) ;<br />

817 Array [ ( short ) ( a r r a y O f f s e t + ( short ) 1) ] = ( byte ) ( inShort & ( short )<br />

818 0x00FF ) ;<br />

819 }<br />

820 }<br />

C.6.2<br />

Service Provider Implementation<br />

In this section, we detail the SP's implementation of the STCP ACA and the helper functions<br />

utlised during the STCP SP are discussed in appendices C.11.1 and C.11.2.<br />

1 package ACAPTerminal ;<br />

2<br />

3 import java . u t i l . Arrays ;<br />

4 import java . s e c u r i t y . i n t e r f a c e s . RSAPublicKey ;<br />

5 import javax . crypto . spec . SecretKeySpec ;<br />

6 import java . s e c u r i t y . spec . RSAPublicKeySpec ;<br />

7 import javax . crypto . ∗ ;<br />

8 import java . s e c u r i t y . ∗ ;<br />

9 import java . math . B i g I n t e g e r ;<br />

10 public class S e r v i c e P r o v i d e r P r o t o c o l H a n d l e r {<br />

11 private byte [ ] SPIdentity = {<br />

12 ( byte ) 0xC5 , ( byte ) 0x7D , ( byte ) 0xB1 , ( byte ) 0x7C , ( byte ) 0x62 ,<br />

13 ( byte ) 0x0A , ( byte ) 0x86 , ( byte ) 0x52 , ( byte ) 0xBE, ( byte ) 0x5E ,<br />

14 ( byte ) 0x90 , ( byte ) 0x01 , ( byte ) 0xA8 , ( byte ) 0xD6 , ( byte ) 0x6A ,<br />

15 ( byte ) 0xD7 , ( byte ) 0xB1 , ( byte ) 0x7C } ;<br />

16 private byte [ ] AppIdentity = {<br />

17 ( byte ) 0xC5 , ( byte ) 0x7D , ( byte ) 0xB1 , ( byte ) 0x7C , ( byte ) 0x62 ,<br />

( byte ) 0x0A ,<br />

18 ( byte ) 0x86 , ( byte ) 0x52 , ( byte ) 0xBE, ( byte ) 0x5E , ( byte ) 0x90 , ( byte )<br />

19 0x01 , ( byte ) 0xA8 , ( byte ) 0xD6 , ( byte ) 0x6A , ( byte ) 0xD7 , ( byte ) 0xB1 ,<br />

20 ( byte ) 0x7C , ( byte ) 0xA8 , ( byte ) 0xD6 , ( byte ) 0x6A , ( byte ) 0xD7 } ;<br />

21 private byte [ ] SCIP = {<br />

22 ( byte ) 0xC5 , ( byte ) 0x7D , ( byte ) 0xB1 , ( byte ) 0x7C } ;<br />

23 private byte [ ] Plat<strong>for</strong>mHashPreset = {<br />

24 ( byte ) 0xBF , ( byte ) 0xE5 , ( byte ) 0x45 , ( byte ) 0x86 , ( byte ) 0x2C ,<br />

( byte ) 0xA1 ,<br />

25 ( byte ) 0x02 , ( byte ) 0xAD, ( byte ) 0x1E , ( byte ) 0xED, ( byte ) 0xDB, ( byte )<br />

26 0x5F , ( byte ) 0xBF , ( byte ) 0xA5 , ( byte ) 0xBF , ( byte ) 0x85 , ( byte ) 0x5A ,<br />

27 ( byte ) 0xC4 , ( byte ) 0x99 , ( byte ) 0x5C , ( byte ) 0x56 , ( byte ) 0xA8 , ( byte )<br />

28 0xB4 , ( byte ) 0x08 , ( byte ) 0xCE, ( byte ) 0x3F , ( byte ) 0xE0 , ( byte ) 0x99 ,<br />

29 ( byte ) 0xDC, ( byte ) 0xE9 , ( byte ) 0x3A , ( byte ) 0x9D } ;<br />

30 private byte [ ] MessageHandlerTagOne = {(byte ) 0xAA, ( byte ) 0xAA} ;<br />

31 private byte [ ] MessageHandlerTagTwo = {(byte ) 0xBB, ( byte ) 0xBB} ;<br />

32 private byte [ ] MessageHandlerTagThree = {(byte ) 0xCC, ( byte ) 0xCC} ;<br />

33 private byte [ ] SPIdentityTag = {( byte ) 0x5F , ( byte ) 0x01 } ;<br />

350

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

Saved successfully!

Ooh no, something went wrong!