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

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

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

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

439 }<br />

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

441 {<br />

442 switch (Oper_Mode) {<br />

443 case GEN_KEYCONTRIBUTION: randomExponent =<br />

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

445 JCSystem .MEMORY_TYPE_TRANSIENT_DESELECT) ;<br />

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

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

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

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

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

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

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

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

453 break ;<br />

454 case GEN_DHKEY:<br />

455 try {<br />

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

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

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

459 ServerAppClientAppDHGeneratedValue =<br />

JCSystem . makeTransientByteArray (<br />

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

461 JCSystem .MEMORY_TYPE_TRANSIENT_DESELECT) ;<br />

462 pkCipher . doFinal ( i n b u f f , i n b u f f O f f s e t , ( short ) ( ( short )<br />

463 i n b u f f . l e n g t h − ( short ) this . PTLVDataOffset )<br />

464 , ServerAppClientAppDHGeneratedValue ,<br />

( short ) 0) ;<br />

465 }<br />

466 catch ( Exception cE ) {<br />

467 ISOException . throwIt ( ( short ) 0xD86E) ;<br />

468 }<br />

469 break ;<br />

470 default :<br />

471 ISOException . throwIt ( ( short ) 0x5FA1) ;<br />

472 }<br />

473 }<br />

474 void keygenerator ( ) {<br />

475 AESKey sessionGenKey = (AESKey) KeyBuilder . buildKey<br />

476 ( KeyBuilder .TYPE_AES_TRANSIENT_DESELECT,<br />

477 KeyBuilder .LENGTH_AES_128, f a l s e ) ;<br />

478 sessionGenKey . setKey ( ServerAppClientAppDHGeneratedValue , ( short ) 0) ;<br />

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

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

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

482 byte [ ] keyGenMacData = JCSystem . makeTransientByteArray ( ( short ) 64 ,<br />

483 JCSystem .MEMORY_TYPE_TRANSIENT_DESELECT) ;<br />

401

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

Saved successfully!

Ooh no, something went wrong!