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

529 , ClientAppServerAppDHGeneratedValue ,<br />

( short ) 0) ;<br />

530 }<br />

531 catch ( Exception cE ) {<br />

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

533 }<br />

534 break ;<br />

535 default :<br />

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

537 }<br />

538 }<br />

539 void keygenerator ( ) {<br />

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

541 ( KeyBuilder .TYPE_AES_TRANSIENT_DESELECT,<br />

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

543 sessionGenKey . setKey ( ClientAppServerAppDHGeneratedValue , ( short ) 0) ;<br />

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

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

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

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

548 JCSystem .MEMORY_TYPE_TRANSIENT_DESELECT) ;<br />

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

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

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

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

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

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

( short )<br />

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

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

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

558 }<br />

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

560 keyGenMacData . length ,<br />

ClientAppServerAppDHGeneratedValue ,<br />

561 ( short ) 0) ;<br />

562 this . phCipherKey . setKey ( ClientAppServerAppDHGeneratedValue , ( short ) 0) ;<br />

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

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

565 }<br />

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

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

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

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

570 keyGenMacData . length ,<br />

ClientAppServerAppDHGeneratedValue ,<br />

571 ( short ) 0) ;<br />

572 this . phMacGeneratorKey . setKey ( ClientAppServerAppDHGeneratedValue ,<br />

( short ) 0) ;<br />

573 ClientAppServerAppDHGeneratedValue = null ;<br />

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

389

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

Saved successfully!

Ooh no, something went wrong!