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

338 this . C l i e n t A p p U s e r C e r t i f i c a t e . l e n g t h ) ;<br />

339 this . r e c e i v i n g B u f f e r [ childEnMessage ]++;<br />

340 messageEncryption ( this . r e c e i v i n g B u f f e r , e n c r y p t i o n O f f s e t ,<br />

341 ( short ) ( copyPointer − e n c r y p t i o n O f f s e t ) ) ;<br />

342 this . shortToBytes ( r e c e i v i n g B u f f e r , ( short ) ( e n c r y p t i o n O f f s e t −<br />

343 ( short ) 3) , ( short ) ( copyPointer −<br />

344 e n c r y p t i o n O f f s e t ) ) ;<br />

345 macGenerate ( this . r e c e i v i n g B u f f e r , e n c r y p t i o n O f f s e t , ( short )<br />

346 ( copyPointer − e n c r y p t i o n O f f s e t ) ,<br />

347 S i g n a t u r e .MODE_SIGN) ;<br />

348 this . r e c e i v i n g B u f f e r [ c h i l d P o i n t e r M e s s a g e ]++;<br />

349 copyPointer = U t i l . arrayCopyNonAtomic ( this . ServerAppCookieArray ,<br />

350 ( short ) 0 , this . r e c e i v i n g B u f f e r , copyPointer , ( short )<br />

351 this . ServerAppCookieArray . l e n g t h ) ;<br />

352 this . r e c e i v i n g B u f f e r [ c h i l d P o i n t e r M e s s a g e ]++;<br />

353 this . shortToBytes ( this . r e c e i v i n g B u f f e r , ( short ) 4 , copyPointer ) ;<br />

354 } else i f (msgNumber == 2) {<br />

355 copyPointer = ( short ) 0 ;<br />

356 short tempLength = ( short ) 0 ;<br />

357 short mainChildPointer = ( short ) 6 ;<br />

358 short mainLengthPointer = ( short ) 4 ;<br />

359 short encryptedChildPointer = ( short ) 1 3 ;<br />

360 short g e n e r a l L e n g t h P o i n t e r = ( short ) 0 ;<br />

361 this . r e c e i v i n g B u f f e r [ mainChildPointer ] = ( short ) 0 ;<br />

362 this . r e c e i v i n g B u f f e r [ encryptedChildPointer ] = ( short ) 0 ;<br />

363 copyPointer = U t i l . arrayCopyNonAtomic ( this . MessageHandlerTagTwo ,<br />

364 ( short ) 0 , this . r e c e i v i n g B u f f e r , copyPointer , ( short ) 7) ;<br />

365 this . r e c e i v i n g B u f f e r [ mainChildPointer ]++;<br />

366 copyPointer = U t i l . arrayCopyNonAtomic ( this . EncryptedDataTag ,<br />

367 ( short ) 0 , this . r e c e i v i n g B u f f e r , copyPointer , ( short ) 4) ;<br />

368 copyPointer += ( short ) 3 ;<br />

369 e n c r y p t i o n O f f s e t = copyPointer ;<br />

370 copyPointer = U t i l . arrayCopyNonAtomic ( this . Plat<strong>for</strong>mHash , ( short )<br />

371 0 , r e c e i v i n g B u f f e r , copyPointer , ( short ) 4) ;<br />

372 g e n e r a l L e n g t h P o i n t e r = copyPointer ;<br />

373 copyPointer += ( short ) 2 ;<br />

374 MessageDigest myHashGen = MessageDigest . g e t I n s t a n c e<br />

375 ( MessageDigest .ALG_SHA_256, f a l s e ) ;<br />

376 tempLength = ( short )myHashGen . doFinal ( this . ClassDH . dhModulus ,<br />

( short ) 0 ,<br />

377 ( short ) this . ClassDH . dhModulus . length , r e c e i v i n g B u f f e r ,<br />

378 copyPointer ) ;<br />

379 this . r e c e i v i n g B u f f e r [ encryptedChildPointer ]++;<br />

380 this . shortToBytes ( this . r e c e i v i n g B u f f e r , generalLengthPointer ,<br />

381 ( short ) ( tempLength ) ) ;<br />

382 copyPointer += tempLength ;<br />

383 copyPointer = U t i l . arrayCopyNonAtomic ( this . U s e r I d e n t i t y , ( short )<br />

384 0 , this . r e c e i v i n g B u f f e r , copyPointer , ( short )<br />

385 this . U s e r I d e n t i t y . l e n g t h ) ;<br />

386 this . r e c e i v i n g B u f f e r [ encryptedChildPointer ]++;<br />

385

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

Saved successfully!

Ooh no, something went wrong!