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

119 phSCAKeyPair = new KeyPair ( KeyPair .ALG_RSA,<br />

120 KeyBuilder .LENGTH_RSA_512) ;<br />

121 ph<strong>User</strong>KeyPair = new KeyPair ( KeyPair .ALG_RSA,<br />

122 KeyBuilder .LENGTH_RSA_512) ;<br />

123 phCipherKey = (AESKey) KeyBuilder . buildKey<br />

124 ( KeyBuilder .TYPE_AES_TRANSIENT_DESELECT,<br />

125 KeyBuilder .LENGTH_AES_128, f a l s e ) ;<br />

126 syCipher = Cipher . g e t I n s t a n c e ( Cipher .ALG_AES_BLOCK_128_CBC_NOPAD,<br />

127 f a l s e ) ;<br />

128 randomDataGen = RandomData . g e t I n s t a n c e<br />

129 (RandomData .ALG_SECURE_RANDOM) ;<br />

130 pkCipher = Cipher . g e t I n s t a n c e ( Cipher .ALG_RSA_NOPAD, f a l s e ) ;<br />

131 d h I n i t i a l i s a t i o n ( ) ;<br />

132 phSCAKeyPair . genKeyPair ( ) ;<br />

133 ph<strong>User</strong>KeyPair . genKeyPair ( ) ;<br />

134 }<br />

135 public s t a t i c void i n s t a l l ( byte bArray [ ] , short bOffset , byte<br />

136 bLength ) throws ISOException {<br />

137 new ProtocolHandler ( ) . r e g i s t e r ( ) ;<br />

138 }<br />

139 public void i n i t i a l i s e P r o t o c o l ( ) {<br />

140 short i n i t i a l P o i n t e r = 0 ;<br />

141 SCADHData = JCSystem . makeTransientByteArray ( ( short ) ( ( short )<br />

142 this . ClassDH . dhModulus . l e n g t h + PTLVDataOffset ) ,<br />

143 JCSystem .MEMORY_TYPE_TRANSIENT_DESELECT) ;<br />

144 U t i l . arrayCopyNonAtomic ( this . SCADHChalleneTag , ( short )<br />

145 i n i t i a l P o i n t e r , this . SCADHData, ( short ) 0 ,<br />

146 ( short ) this . SCADHChalleneTag . l e n g t h ) ;<br />

147 this . shortToBytes (SCADHData, ( short ) 4 , ( short ) ( ( short )<br />

148 SCADHData . l e n g t h − ( short ) PTLVDataOffset ) ) ;<br />

149 this . dhKeyConGen( this . SCADHData, this . PTLVDataOffset ,<br />

150 ProtocolHandler .GEN_KEYCONTRIBUTION) ;<br />

151 SCBDHChanllengerArray = JCSystem . makeTransientByteArray ( ( short ) (<br />

152 ( short ) this . ClassDH . dhModulus . l e n g t h + this . PTLVDataOffset ) ,<br />

153 JCSystem .MEMORY_TYPE_TRANSIENT_DESELECT) ;<br />

154 SCBRandomNumberArray = JCSystem . makeTransientByteArray ( ( short ) 22 ,<br />

155 JCSystem .MEMORY_TYPE_TRANSIENT_DESELECT) ;<br />

156 SCBCookieArray = JCSystem . makeTransientByteArray ( ( short ) 22 ,<br />

157 JCSystem .MEMORY_TYPE_TRANSIENT_DESELECT) ;<br />

158 SCARandomNumberArray = JCSystem . makeTransientByteArray ( ( short ) 22 ,<br />

159 JCSystem .MEMORY_TYPE_TRANSIENT_DESELECT) ;<br />

160 U t i l . arrayCopyNonAtomic ( this . SCARandomNumberTag , ( short )<br />

161 i n i t i a l P o i n t e r , this . SCARandomNumberArray ,<br />

162 ( short ) i n i t i a l P o i n t e r , ( short )<br />

163 this . SCARandomNumberTag . l e n g t h ) ;<br />

164 this . shortToBytes ( this . SCARandomNumberArray , ( short ) 4 , ( short ) (<br />

165 ( short ) this . SCARandomNumberArray . l e n g t h −<br />

166 ( short ) PTLVDataOffset ) ) ;<br />

167 try {<br />

168 this . SCA<strong>User</strong>Certificate = JCSystem . makeTransientByteArray (<br />

169 ( short ) 86 , JCSystem .MEMORY_TYPE_TRANSIENT_DESELECT) ;<br />

407

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

Saved successfully!

Ooh no, something went wrong!