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.5 Secure and Trusted Channel Protocol Smart Card<br />

36 private byte [ ] SCRandomNumberTag = {(byte ) 0x5A , ( byte ) 0x02 } ;<br />

37 private byte [ ] SCIdentityTag = {( byte ) 0x5F , ( byte ) 0x02 } ;<br />

38 private byte [ ] SC<strong>User</strong>CertificateTag = {(byte ) 0xF0 , ( byte ) 0x03 } ;<br />

39 private byte [ ] SCCertificateTag = {( byte ) 0xF0 , ( byte ) 0x02 } ;<br />

40 private byte [ ] Plat<strong>for</strong>mHashTag = {( byte ) 0x5E , ( byte ) 0xAF} ;<br />

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

42 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 />

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

44 ( MessageHandlerTagOne ) ;<br />

45 private ConstructedTLV S P S i g n a t u r e C e r t i f i c a t e =<br />

46 ConstructedTLV . getConstructedTLV ( SPSignatureCertTag ) ;<br />

47 private PrimitiveTLV SPIdentityTLV = PrimitiveTLV . getPrimitiveTLV<br />

48 ( SPIdentityTag , SPIdentity ) ;<br />

49 private PrimitiveTLV SPSigVerificationKey = PrimitiveTLV . getPrimitiveTLV<br />

50 ( this . SPSigVerificationKeyTag ) ;<br />

51 private PrimitiveTLV SPDHChanllenger = PrimitiveTLV . getPrimitiveTLV<br />

52 ( this . SPDHChallengeTag ) ;<br />

53 private PrimitiveTLV SPRandomNumber = PrimitiveTLV . getPrimitiveTLV<br />

54 ( this . SPRandomNumberTag) ;<br />

55 private PrimitiveTLV SPCookie = PrimitiveTLV . getPrimitiveTLV<br />

56 ( this . SPCookieTag ) ;<br />

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

58 ( this . EncryptedDataTag ) ;<br />

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

60 ( this . MACedDataTag) ;<br />

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

62 ( this . SignedDataTag ) ;<br />

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

64 ( this . PublicExponentTag ) ;<br />

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

66 ( this . PublicModulusTag ) ;<br />

67 private PrimitiveTLV SCDHChallenge = PrimitiveTLV . getPrimitiveTLV<br />

68 ( this . SCDHChallengeTag ) ;<br />

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

70 ( this . SCRandomNumberTag) ;<br />

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

72 ( SCIdentityTag ) ;<br />

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

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

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

76 ( this . SCCertificateTag ) ;<br />

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

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

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

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

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

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

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

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

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

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

326

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

Saved successfully!

Ooh no, something went wrong!