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.9 Plat<strong>for</strong>m Binding Protocol<br />

17 import javacard . s e c u r i t y . S i g n a t u r e ;<br />

18 import javacardx . apdu . ExtendedLength ;<br />

19 import javacardx . crypto . Cipher ;<br />

20 public class ProtocolHandler extends Applet implements ExtendedLength<br />

21 {<br />

22 private byte [ ] SCBDHChanllengerArray ;<br />

23 private byte [ ] SCBRandomNumberArray ;<br />

24 private byte [ ] SCBCookieArray ;<br />

25 private byte [ ] SCASCBDHGeneratedValue ;<br />

26 private byte [ ] SCARandomNumberArray ;<br />

27 private byte [ ] SCA<strong>User</strong>Certificate ;<br />

28 private byte [ ] SCACertificate ;<br />

29 private byte [ ] SCBDHChallengeTag = {<br />

30 ( byte ) 0x1F , ( byte ) 0x5F , ( byte ) 0x5C , ( byte ) 0x01 } ;<br />

31 private byte [ ] MessageHandlerTagOne = {<br />

32 ( byte ) 0x1F , ( byte ) 0xC0 , ( byte ) 0xAA, ( byte ) 0xAA, ( byte ) 0x00 , ( byte )<br />

33 0x00 , ( byte ) 0x00 } ;<br />

34 private byte [ ] MessageHandlerTagTwo = {<br />

35 ( byte ) 0x1F , ( byte ) 0xC0 , ( byte ) 0xBB, ( byte ) 0xBB, ( byte ) 0x00 , ( byte )<br />

36 0x00 , ( byte ) 0x00 } ;<br />

37 private byte [ ] SCBIdentity = null ;<br />

38 private byte [ ] SCBRandomNumberTag = {<br />

39 ( byte ) 0x1F , ( byte ) 0x5F , ( byte ) 0x5A , ( byte ) 0x01 } ;<br />

40 private byte [ ] SCBCookieTag = {<br />

41 ( byte ) 0x1F , ( byte ) 0x5F , ( byte ) 0x5B , ( byte ) 0x01 } ;<br />

42 private byte [ ] EncryptedDataTag = {<br />

43 ( byte ) 0x1F , ( byte ) 0xC0 , ( byte ) 0xFE , ( byte ) 0x01 } ;<br />

44 private byte [ ] SignedDataTag = {<br />

45 ( byte ) 0x1F , ( byte ) 0x5F , ( byte ) 0x5D , ( byte ) 0x02 } ;<br />

46 private byte [ ] MACedDataTag = {<br />

47 ( byte ) 0x1F , ( byte ) 0x5F , ( byte ) 0x5D , ( byte ) 0x01 } ;<br />

48 private byte [ ] Plat<strong>for</strong>mHash = {<br />

49 ( byte ) 0x1F , ( byte ) 0x5F , ( byte ) 0x5E , ( byte ) 0xAF} ;<br />

50 private byte [ ] SCAIdentityTag = {<br />

51 ( byte ) 0x1F , ( byte ) 0x5F , ( byte ) 0x5F , ( byte ) 0x02 , ( byte ) 0x00 , ( byte )<br />

52 0x12 , ( byte ) 0x7A , ( byte ) 0xD5 , ( byte ) 0xB7 , ( byte ) 0xD0 , ( byte ) 0xB6 ,<br />

53 ( byte ) 0xC1 , ( byte ) 0x22 , ( byte ) 0x07 , ( byte ) 0xC9 , ( byte ) 0xF9 ,<br />

54 ( byte ) 0x8D , ( byte ) 0x11 , ( byte ) 0xED, ( byte ) 0x34 , ( byte ) 0xDB,<br />

55 ( byte ) 0xF6 , ( byte ) 0x0B , ( byte ) 0x2C } ;<br />

56 private byte [ ] U s e r I d e n t i t y = {<br />

57 ( byte ) 0x1F , ( byte ) 0x5F , ( byte ) 0x5F , ( byte ) 0x03 , ( byte ) 0x00 , ( byte )<br />

58 0x14 , ( byte ) 0x7A , ( byte ) 0xD5 , ( byte ) 0xB7 , ( byte ) 0xD0 , ( byte ) 0xB6 ,<br />

59 ( byte ) 0xC1 , ( byte ) 0x22 , ( byte ) 0x07 , ( byte ) 0xC9 , ( byte ) 0xC9 ,<br />

60 ( byte ) 0x8D , ( byte ) 0xD1 , ( byte ) 0xED, ( byte ) 0xFC, ( byte ) 0xDB,<br />

61 ( byte ) 0xF6 , ( byte ) 0x0B , ( byte ) 0x2C , ( byte ) 0x0B , ( byte ) 0x2C } ;<br />

62 private byte [ ] ExponentTag = {<br />

63 ( byte ) 0x1F , ( byte ) 0x5F , ( byte ) 0xEE , ( byte ) 0x01 } ;<br />

64 private byte [ ] ModulusTag = {<br />

65 ( byte ) 0x1F , ( byte ) 0x5F , ( byte ) 0xEE , ( byte ) 0x02 } ;<br />

66 private byte [ ] SCADHChalleneTag = {<br />

67 ( byte ) 0x1F , ( byte ) 0x5F , ( byte ) 0x5C , ( byte ) 0x02 } ;<br />

405

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

Saved successfully!

Ooh no, something went wrong!