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

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

C.3 Attestation Protocol<br />

56 private byte [ ] <strong>User</strong>IdentityTag = {( byte ) 0x5F , ( byte ) 0x03 } ;<br />

57 private byte [ ] S C P r o t o c o l I n i t i a t o r T a g = {(byte ) 0xA1 , ( byte ) 0xB2 } ;<br />

58 public ConstructedTLV MessageHandler = ConstructedTLV . getConstructedTLV<br />

59 ( MessageHandlerTagOne ) ;<br />

60 private ConstructedTLV C MSignatureCertificate =<br />

61 ConstructedTLV . getConstructedTLV ( CMSignatureCertTag ) ;<br />

62 private PrimitiveTLV CMIdentityTLV = PrimitiveTLV . getPrimitiveTLV<br />

63 ( CMIdentityTag , CMIdentity ) ;<br />

64 private PrimitiveTLV CMSigVerificationKey = PrimitiveTLV . getPrimitiveTLV<br />

65 ( this . CMSigVerificationKeyTag ) ;<br />

66 private PrimitiveTLV CMRandomNumber = PrimitiveTLV . getPrimitiveTLV<br />

67 ( this . CMRandomNumberTag) ;<br />

68 private PrimitiveTLV CMCookie = PrimitiveTLV . getPrimitiveTLV<br />

69 ( this . CMCookieTag ) ;<br />

70 private ConstructedTLV EncryptedData = ConstructedTLV . getConstructedTLV<br />

71 ( this . EncryptedDataTag ) ;<br />

72 private PrimitiveTLV MACedData = PrimitiveTLV . getPrimitiveTLV<br />

73 ( this . MACedDataTag) ;<br />

74 private PrimitiveTLV SignedData = PrimitiveTLV . getPrimitiveTLV<br />

75 ( this . SignedDataTag ) ;<br />

76 private PrimitiveTLV PublicExponent = PrimitiveTLV . getPrimitiveTLV<br />

77 ( this . PublicExponentTag ) ;<br />

78 private PrimitiveTLV PublicModulus = PrimitiveTLV . getPrimitiveTLV<br />

79 ( this . PublicModulusTag ) ;<br />

80 private PrimitiveTLV SCRandomNumber = PrimitiveTLV . getPrimitiveTLV<br />

81 ( this . SCRandomNumberTag) ;<br />

82 private PrimitiveTLV SCIdentity = PrimitiveTLV . getPrimitiveTLV<br />

83 ( SCIdentityTag ) ;<br />

84 private ConstructedTLV S C U s e r C e r t i f i c a t e =<br />

85 ConstructedTLV . getConstructedTLV ( this . SC<strong>User</strong>CertificateTag ) ;<br />

86 private ConstructedTLV S C C e r t i f i c a t e = ConstructedTLV . getConstructedTLV<br />

87 ( this . SCCertificateTag ) ;<br />

88 private PrimitiveTLV Plat<strong>for</strong>mHash = PrimitiveTLV . getPrimitiveTLV<br />

89 ( this . Plat<strong>for</strong>mHashTag ) ;<br />

90 private PrimitiveTLV U s e r I d e n t i t y = PrimitiveTLV . getPrimitiveTLV<br />

91 ( this . <strong>User</strong>IdentityTag ) ;<br />

92 private PrimitiveTLV S C P r o t o c o l I n i t i a t o r = PrimitiveTLV . getPrimitiveTLV<br />

93 ( this . S C P r o t o c o l I n i t i a t o r T a g ) ;<br />

94 private P r o t o c o l H e l p e r C l a s s myProtocolHelperObject = new<br />

95 P r o t o c o l H e l p e r C l a s s ( ) ;<br />

96 private byte [ ] mySessionEncryptionKey = new byte [ 1 6 ] ;<br />

97 private byte [ ] mySessionMacKey = new byte [ 1 6 ] ;<br />

98 private PublicKey SC<strong>User</strong>VerificationKey = null ;<br />

99 private PublicKey SCVerificationKey = null ;<br />

100 public P r o t o c o l H a n d l e r A t t e s t a t i o n ( ) {<br />

101 myProtocolHelperObject . p r o t o c o l I n i t i a l i s e ( ) ;<br />

102 RSAPublicKey tempKey = ( RSAPublicKey )<br />

103 myProtocolHelperObject . getPublicKey ( ) ;<br />

104 byte [ ] tempExponent = tempKey . getPublicExponent ( ) . toByteArray ( ) ;<br />

105 this . PublicExponent . i n i t i a l i s a t i o n P T L V ( this . PublicExponentTag ,<br />

106 tempExponent . l e n g t h ) ;<br />

284

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

Saved successfully!

Ooh no, something went wrong!