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

484 short p o i n t e r = 0 ;<br />

485 p o i n t e r = U t i l . arrayCopyNonAtomic ( this . ClientAppRandomNumberArray ,<br />

486 this . PTLVDataOffset , keyGenMacData , ( short ) pointer , ( short ) 16) ;<br />

487 p o i n t e r = U t i l . arrayCopyNonAtomic ( this . ServerAppRandomNumberArray ,<br />

488 this . PTLVDataOffset , keyGenMacData , ( short ) pointer , ( short ) 16) ;<br />

489 p o i n t e r = U t i l . arrayCopyNonAtomic ( ServerAppClientAppDHGeneratedValue ,<br />

( short ) 16 ,<br />

490 keyGenMacData , ( short ) pointer , ( short ) 16) ;<br />

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

492 keyGenMacData [ i ] = ( byte ) 0x02 ;<br />

493 }<br />

494 phMacGenerator . s i g n ( keyGenMacData , ( short ) 0 , ( short )<br />

495 keyGenMacData . length ,<br />

ServerAppClientAppDHGeneratedValue ,<br />

496 ( short ) 0) ;<br />

497 this . phCipherKey . setKey ( ServerAppClientAppDHGeneratedValue , ( short ) 0) ;<br />

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

499 keyGenMacData [ i ] = ( byte ) 0x03 ;<br />

500 }<br />

501 phMacGenerator . i n i t ( sessionGenKey , S i g n a t u r e .MODE_SIGN,<br />

502 I n i t i a l i s a t i o n V e c t o r , ( short ) 0 , ( short )<br />

503 I n i t i a l i s a t i o n V e c t o r . l e n g t h ) ;<br />

504 phMacGenerator . s i g n ( keyGenMacData , ( short ) 0 , ( short )<br />

505 keyGenMacData . length ,<br />

ServerAppClientAppDHGeneratedValue ,<br />

506 ( short ) 0) ;<br />

507 this . phMacGeneratorKey . setKey ( ServerAppClientAppDHGeneratedValue ,<br />

( short ) 0) ;<br />

508 ServerAppClientAppDHGeneratedValue = null ;<br />

509 JCSystem . r e q u e s t O b j e c t D e l e t i o n ( ) ;<br />

510 }<br />

511 void messageEncryption ( byte [ ] i n b u f f , short i n b u f f O f f s e t , short<br />

512 inbuffLength ) {<br />

513 syCipher . i n i t ( phCipherKey , Cipher .MODE_ENCRYPT,<br />

514 I n i t i a l i s a t i o n V e c t o r , ( short ) 0 , ( short )<br />

515 I n i t i a l i s a t i o n V e c t o r . l e n g t h ) ;<br />

516 this . shortToBytes ( i n b u f f , ( short ) ( i n b u f f O f f s e t − 3) , ( short )<br />

517 syCipher . doFinal ( i n b u f f , i n b u f f O f f s e t ,<br />

518 inbuffLength , i n b u f f , i n b u f f O f f s e t ) ) ;<br />

519 }<br />

520 void phDecryption ( byte [ ] i n b u f f , short i n b u f f O f f s e t , short<br />

521 inbuffLength ) {<br />

522 syCipher . i n i t ( phCipherKey , Cipher .MODE_DECRYPT,<br />

523 I n i t i a l i s a t i o n V e c t o r , ( short ) 0 , ( short )<br />

524 I n i t i a l i s a t i o n V e c t o r . l e n g t h ) ;<br />

525 syCipher . doFinal ( i n b u f f , i n b u f f O f f s e t , inbuffLength , i n b u f f ,<br />

526 i n b u f f O f f s e t ) ;<br />

527 }<br />

528 boolean macGenerate ( byte [ ] i n b u f f , short i n b u f f O f f s e t , short<br />

529 inbuffLength , short macMode) {<br />

530 i f (macMode == S i g n a t u r e .MODE_SIGN) {<br />

402

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

Saved successfully!

Ooh no, something went wrong!