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

573 inbuffLength ) {<br />

574 syCipher . i n i t ( phCipherKey , Cipher .MODE_ENCRYPT,<br />

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

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

577 short temp ;<br />

578 this . shortToBytes ( i n b u f f , ( short ) ( i n b u f f O f f s e t − 3) , temp =<br />

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

580 inbuffLength , i n b u f f , i n b u f f O f f s e t ) ) ;<br />

581 }<br />

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

583 inbuffLength ) {<br />

584 syCipher . i n i t ( phCipherKey , Cipher .MODE_DECRYPT,<br />

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

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

587 syCipher . doFinal ( i n b u f f , i n b u f f O f f s e t , inbuffLength , i n b u f f ,<br />

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

589 }<br />

590 boolean macGenerate ( byte [ ] i n b u f f , short i n b u f f O f f s e t , short<br />

591 inbuffLength , short macMode) {<br />

592 i f (macMode == S i g n a t u r e .MODE_SIGN) {<br />

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

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

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

596 try {<br />

597 copyPointer = U t i l . arrayCopyNonAtomic ( this . MACedDataTag ,<br />

598 ( short ) 0 , this . r e c e i v i n g B u f f e r , copyPointer , ( short )<br />

599 this . MACedDataTag . l e n g t h ) ;<br />

600 copyPointer += 2 ;<br />

601 } catch ( Exception ce ) {<br />

602 ISOException . throwIt ( ( short ) 0xFA17) ;<br />

603 }<br />

604 try {<br />

605 short l e n g t h = ( short ) phMacGenerator . s i g n<br />

606 ( this . r e c e i v i n g B u f f e r , i n b u f f O f f s e t ,<br />

607 inbuffLength , i n b u f f , copyPointer ) ;<br />

608 this . shortToBytes ( i n b u f f , ( short ) ( copyPointer − ( short ) 2) ,<br />

609 l e n g t h ) ;<br />

610 copyPointer += l e n g t h ;<br />

611 } catch ( Exception ce ) {<br />

612 ISOException . throwIt ( ( short ) 0 x0987 ) ;<br />

613 }<br />

614 return true ;<br />

615 } else i f (macMode == S i g n a t u r e .MODE_VERIFY) {<br />

616 try {<br />

617 phMacGenerator . i n i t ( phMacGeneratorKey , S i g n a t u r e .MODE_VERIFY,<br />

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

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

620 return phMacGenerator . v e r i f y ( this . r e c e i v i n g B u f f e r ,<br />

621 i n b u f f O f f s e t , inbuffLength , i n b u f f , ( short ) ( i n b u f f O f f s e t +<br />

622 inbuffLength + this . PTLVDataOffset ) , ( short ) 16) ;<br />

623 } catch ( Exception cE ) {<br />

302

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

Saved successfully!

Ooh no, something went wrong!