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.7 Application Binding Protocol - Local<br />

37 }<br />

38 public s t a t i c ServerApp o b j e c tGenerator ( ) {<br />

39 return new ServerApp ( ) ;<br />

40 }<br />

41 public void o b j e c t I n s t a n t i a t i o n ( ) {<br />

42 server_SignKeyPair . genKeyPair ( ) ;<br />

43 SerTpmKey . setKey ( RandomNumberServer , ( short ) 0) ;<br />

44 }<br />

45 public void serverUpdate (ScTPM obScTPM, ClientApp obClientApp ) {<br />

46 myTPMRef = obScTPM ;<br />

47 myClientAppRef = obClientApp ;<br />

48 myClientAppRef . s e r v e r S i g n V e r i f i c a t i o n U p d a t e<br />

49 ( server_SignKeyPair . g e t P u b l i c ( ) ) ;<br />

50 obScTPM . serverTPMKeyAgreement (SerTpmKey) ;<br />

51 }<br />

52 public void c l i e n t S i g n V e r i f i c a t i o n U p d a t e ( PublicKey s i g n V e r i f i c a t i o n )<br />

53 {<br />

54 myClientVerificationKey = s i g n V e r i f i c a t i o n ;<br />

55 }<br />

56 public void digestUpdate ( byte [ ] s p C l i e n t D i g e s t ) {<br />

57 C l i e n t D i g e s t = s p C l i e n t D i g e s t ;<br />

58 }<br />

59 public void protocolManager ( short stage , byte [ ] p_Message ) {<br />

60 this . pMessage = p_Message ;<br />

61 i f ( s t a g e == 1) {<br />

62 pMessage [ 3 ] = ( byte ) 6 4 ;<br />

63 v e r i f ySignedData ( ) ;<br />

64 U t i l . arrayCopyNonAtomic ( pMessage , ( short ) (4<br />

65 +C l i e n t I d e n t i t y . l e n g t h +<br />

66 S e r v e r I d e n t i t y . l e n g t h ) ,<br />

67 RandomNumberClient , ( short ) 0 , ( short )<br />

68 RandomNumberClient . l e n g t h ) ;<br />

69 pMessage [ 3 ] = ( byte ) 6 8 ;<br />

70 pMessage [ 2 ] = pMessage [ 3 ] ;<br />

71 pMessage [ 3 ] = ( byte ) U t i l . arrayCopyNonAtomic ( S e r v e r I d e n t i t y ,<br />

72 ( short ) 0 , pMessage , ( short ) pMessage [ 3 ] , ( short )<br />

73 S e r v e r I d e n t i t y . l e n g t h ) ;<br />

74 pMessage [ 3 ] = ( byte ) U t i l . arrayCopyNonAtomic ( C l i e n t I d e n t i t y ,<br />

75 ( short ) 0 , pMessage , ( short ) pMessage [ 3 ] , ( short )<br />

76 C l i e n t I d e n t i t y . l e n g t h ) ;<br />

77 myServerAppRandomData . generateData ( RandomNumberServer , (short ) 0 ,<br />

78 ( short ) RandomNumberServer . l e n g t h ) ;<br />

79 pMessage [ 3 ] = ( byte ) U t i l . arrayCopyNonAtomic ( RandomNumberServer ,<br />

80 ( short ) 0 , pMessage , ( short ) pMessage [ 3 ] , ( short )<br />

81 RandomNumberServer . l e n g t h ) ;<br />

82 pMessage [ 0 ] = ( byte ) ( C l i e n t I d e n t i t y . l e n g t h +<br />

83 S e r v e r I d e n t i t y . l e n g t h +<br />

84 RandomNumberServer . l e n g t h ) ;<br />

85 <strong>for</strong> ( short i = 0 ; i < 6 ; i ++) {<br />

86 pMessage [ ( short ) ( pMessage [ 3 ] + i ) ] = ( byte ) 0xCA;<br />

87 }<br />

370

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

Saved successfully!

Ooh no, something went wrong!