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.4 Secure and Trusted Channel Protocol Service Provider<br />

473 U t i l . arrayCopy ( i n B u f f e r , pointer , this . SPDHChanllengerArray ,<br />

474 ( short ) 0 , ( short )<br />

475 this . SPDHChanllengerArray . l e n g t h ) ;<br />

476 p o i n t e r += ( short ) this . SPDHChanllengerArray . l e n g t h ;<br />

477 } else i f ( U t i l . arrayCompare ( this . SPRandomNumberTag , ( short ) 0 ,<br />

478 i n B u f f e r , pointer , ( short ) 4) == 0) {<br />

479 U t i l . arrayCopyNonAtomic ( i n B u f f e r , pointer ,<br />

480 this . SPRandomNumberArray , ( short ) 0 ,<br />

481 ( short )<br />

482 ( this . SPRandomNumberArray . l e n g t h ) ) ;<br />

483 p o i n t e r += ( short ) ( this . SPRandomNumberArray . l e n g t h ) ;<br />

484 } else i f ( U t i l . arrayCompare ( this . SPCookieTag , ( short ) 0 ,<br />

485 i n B u f f e r , pointer , ( short ) 4) == 0) {<br />

486 U t i l . arrayCopyNonAtomic ( i n B u f f e r , pointer ,<br />

487 this . SPCookieArray , ( short ) 0 ,<br />

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

489 p o i n t e r += ( short ) ( this . SPCookieArray . l e n g t h ) ;<br />

490 }<br />

491 c h i l d L e f t −= ( short ) 1 ;<br />

492 }<br />

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

494 ISOException . throwIt ( ( short ) c h i l d L e f t ) ;<br />

495 }<br />

496 }<br />

497 void protocolImplementation ( ) {}<br />

498 void d h I n i t i a l i s a t i o n ( ) {<br />

499 dhKey . setModulus ( ClassDH . dhModulus , ( short ) 0 ,<br />

( short ) ClassDH . dhModulus . l e n g t h ) ;<br />

500 }<br />

501 void dhKeyConGen(byte [ ] i n b u f f , short i n b u f f O f f s e t , byte Oper_Mode)<br />

502 {<br />

503 switch (Oper_Mode) {<br />

504 case GEN_KEYCONTRIBUTION: randomExponent =<br />

505 JCSystem . makeTransientByteArray ( ( short ) 32 ,<br />

506 JCSystem .MEMORY_TYPE_TRANSIENT_DESELECT) ;<br />

507 randomDataGen . generateData ( randomExponent , ( short ) 0 , ( short )<br />

508 randomExponent . l e n g t h ) ;<br />

509 dhKey . setExponent ( randomExponent , ( short ) 0 , ( short )<br />

510 randomExponent . l e n g t h ) ;<br />

511 pkCipher . i n i t ( dhKey , Cipher .MODE_ENCRYPT) ;<br />

512 pkCipher . doFinal ( ClassDH . dhBase , ( short ) 0 ,<br />

( short ) ClassDH . dhBase . length , i n b u f f ,<br />

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

514 break ;<br />

515 case GEN_DHKEY:<br />

516 try {<br />

517 dhKey . setExponent ( randomExponent , ( short ) 0 , ( short )<br />

518 randomExponent . l e n g t h ) ;<br />

519 pkCipher . i n i t ( dhKey , Cipher .MODE_ENCRYPT) ;<br />

520 SCSPDHGeneratedValue = JCSystem . makeTransientByteArray (<br />

521 ( short ) ClassDH . dhModulus . length ,<br />

300

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

Saved successfully!

Ooh no, something went wrong!