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.6 Application Acquisition and Contractual Agreement Protocol<br />

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

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

669 ( short ) 0 , ( short )<br />

670 ( this . SPCookieArray . l e n g t h ) ) ;<br />

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

672 }<br />

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

674 }<br />

675 }<br />

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

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

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

678 }<br />

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

680 switch (Oper_Mode) {<br />

681 case GEN_KEYCONTRIBUTION:<br />

682 randomExponent = JCSystem . makeTransientByteArray ( ( short ) 32 ,<br />

683 JCSystem .MEMORY_TYPE_TRANSIENT_DESELECT) ;<br />

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

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

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

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

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

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

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

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

691 break ;<br />

692 case GEN_DHKEY:<br />

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

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

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

696 SCSPDHGeneratedValue = JCSystem . makeTransientByteArray ( ( short )<br />

697 ClassDH . dhModulus . length ,<br />

JCSystem .MEMORY_TYPE_TRANSIENT_DESELECT) ;<br />

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

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

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

701 break ;<br />

702 default :<br />

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

704 }<br />

705 }<br />

706 void keygenerator ( ) {<br />

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

708 ( KeyBuilder .TYPE_AES_TRANSIENT_DESELECT,<br />

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

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

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

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

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

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

347

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

Saved successfully!

Ooh no, something went wrong!