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

524 SCASCBDHGeneratedValue = JCSystem . makeTransientByteArray (<br />

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

526 JCSystem .MEMORY_TYPE_TRANSIENT_DESELECT) ;<br />

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

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

529 , SCASCBDHGeneratedValue , ( 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 ( SCASCBDHGeneratedValue , ( 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 . SCBRandomNumberArray ,<br />

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

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

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

554 p o i n t e r = U t i l . arrayCopyNonAtomic ( SCASCBDHGeneratedValue , (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 , SCASCBDHGeneratedValue ,<br />

561 ( short ) 0) ;<br />

562 this . phCipherKey . setKey ( SCASCBDHGeneratedValue , ( 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 , SCASCBDHGeneratedValue ,<br />

571 ( short ) 0) ;<br />

572 this . phMacGeneratorKey . setKey ( SCASCBDHGeneratedValue , ( short ) 0) ;<br />

573 SCASCBDHGeneratedValue = 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 />

415

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

Saved successfully!

Ooh no, something went wrong!