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.9 Plat<strong>for</strong>m Binding Protocol<br />

475 pointer , ( short ) 4) == 0) {<br />

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

477 this . SCBDHChanllengerArray , ( short ) 0 , ( short )<br />

478 this . SCBDHChanllengerArray . l e n g t h ) ;<br />

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

480 } else i f ( U t i l . arrayCompare ( this . SCBRandomNumberTag , ( short )<br />

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

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

483 this . SCBRandomNumberArray , ( short ) 0 ,<br />

484 ( short )<br />

485 ( this . SCBRandomNumberArray . l e n g t h ) ) ;<br />

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

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

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

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

490 this . SCBCookieArray , ( short ) 0 ,<br />

491 ( short ) ( this . SCBCookieArray . l e n g t h ) )<br />

492 ;<br />

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

494 }<br />

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

496 }<br />

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

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

499 }<br />

500 }<br />

501 void protocolImplementation ( ) {}<br />

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

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

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

504 }<br />

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

506 {<br />

507 switch (Oper_Mode) {<br />

508 case GEN_KEYCONTRIBUTION: randomExponent =<br />

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

510 JCSystem .MEMORY_TYPE_TRANSIENT_DESELECT) ;<br />

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

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

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

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

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

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

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

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

518 break ;<br />

519 case GEN_DHKEY:<br />

520 try {<br />

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

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

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

414

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

Saved successfully!

Ooh no, something went wrong!