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

522 JCSystem .MEMORY_TYPE_TRANSIENT_DESELECT) ;<br />

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

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

525 , SCSPDHGeneratedValue , ( short ) 0) ;<br />

526 }<br />

527 catch ( Exception cE ) {<br />

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

529 }<br />

530 break ;<br />

531 default :<br />

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

533 }<br />

534 }<br />

535 void keygenerator ( ) {<br />

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

537 ( KeyBuilder .TYPE_AES_TRANSIENT_DESELECT,<br />

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

539 sessionGenKey . setKey ( SCSPDHGeneratedValue , ( short ) 0) ;<br />

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

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

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

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

544 JCSystem .MEMORY_TYPE_TRANSIENT_DESELECT) ;<br />

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

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

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

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

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

550 p o i n t e r = U t i l . arrayCopyNonAtomic ( SCSPDHGeneratedValue , ( short ) 16 ,<br />

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

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

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

554 }<br />

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

556 keyGenMacData . length , SCSPDHGeneratedValue ,<br />

557 ( short ) 0) ;<br />

558 this . phCipherKey . setKey ( SCSPDHGeneratedValue , ( short ) 0) ;<br />

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

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

561 }<br />

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

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

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

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

566 keyGenMacData . length , SCSPDHGeneratedValue ,<br />

567 ( short ) 0) ;<br />

568 this . phMacGeneratorKey . setKey ( SCSPDHGeneratedValue , ( short ) 0) ;<br />

569 SCSPDHGeneratedValue = null ;<br />

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

571 }<br />

572 void messageEncryption ( byte [ ] i n b u f f , short i n b u f f O f f s e t , short<br />

301

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

Saved successfully!

Ooh no, something went wrong!