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.8 Application Binding Protocol - Distributed<br />

575 }<br />

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

577 inbuffLength ) {<br />

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

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

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

581 short temp ;<br />

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

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

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

585 }<br />

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

587 inbuffLength ) {<br />

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

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

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

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

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

593 }<br />

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

595 inbuffLength , short macMode) {<br />

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

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

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

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

600 try {<br />

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

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

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

604 copyPointer += 2 ;<br />

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

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

607 }<br />

608 try {<br />

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

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

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

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

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

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

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

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

617 }<br />

618 return true ;<br />

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

620 try {<br />

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

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

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

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

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

390

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

Saved successfully!

Ooh no, something went wrong!