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.3 Attestation Protocol<br />

302 }<br />

303 break ;<br />

304 case 0 :<br />

305 cTemp = ( ConstructedTLV )inCTLV . getNext ( ) ;<br />

306 i f ( Arrays . e q u a l s (cTemp . getTagName ( ) ,<br />

307 this . EncryptedData . getTagName ( ) ) ) {<br />

308 this . EncryptedData = cTemp ;<br />

309 } else i f ( Arrays . e q u a l s (cTemp . getTagName ( ) ,<br />

310 S C U s e r C e r t i f i c a t e . getTagName ( ) ) ) {<br />

311 this . S C U s e r C e r t i f i c a t e = cTemp ;<br />

312 } else i f ( Arrays . e q u a l s (cTemp . getTagName ( ) ,<br />

313 S C C e r t i f i c a t e . getTagName ( ) ) ) {<br />

314 this . S C C e r t i f i c a t e = cTemp ;<br />

315 }<br />

316 break ;<br />

317 default :<br />

318 System . out . p r i n t l n ( " Error In Parsing Input Message " ) ;<br />

319 }<br />

320 c h i l d s −−;<br />

321 }<br />

322 } catch ( Exception e ) {<br />

323 System . out . p r i n t l n (<br />

324 " Error i n ProtocolHanlder . ChildExtractionMethod<br />

: " + e . g e t C l a s s ( ) . getName ( ) ) ;<br />

325 }<br />

326 }<br />

327 void GenerateKeys ( byte [ ] i n b u f f ) {<br />

328 byte [ ] DHSecretKey = null ;<br />

329 try {<br />

330 DHSecretKey =<br />

331 this . myProtocolHelperObject . GenerateDHSessionKeyMaterial ( i n b u f f ,<br />

0 ,<br />

332 i n b u f f . l e n g t h ) ;<br />

333 } catch ( Exception cE ) {<br />

334 System . out . p r i n t l n (<br />

335 " Exception At P r o t o c o l H e l p e r C l a s s . GenerateKeys :<br />

" + cE . g e t C l a s s ( ) . getName ( ) ) ;<br />

336 }<br />

337 byte [ ] keyGenKey = new byte [ 1 6 ] ;<br />

338 System . arraycopy ( DHSecretKey , 0 , keyGenKey , 0 , keyGenKey . l e n g t h ) ;<br />

339 byte [ ] macInputValue = new byte [ 6 4 ] ;<br />

340 System . arraycopy ( this . CMRandomNumber . getValueBytes ( ) , 0 ,<br />

macInputValue ,<br />

341 0 , 16) ;<br />

342 System . arraycopy ( this . SCRandomNumber . getValueBytes ( ) , 0 ,<br />

macInputValue ,<br />

343 16 , 16) ;<br />

344 System . arraycopy ( DHSecretKey , 16 , macInputValue , 32 , 16) ;<br />

345 <strong>for</strong> ( int i = 4 8 ; i < 6 4 ; i ++) {<br />

346 macInputValue [ i ] = ( byte ) 0x02 ;<br />

347 }<br />

289

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

Saved successfully!

Ooh no, something went wrong!