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

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

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

628 ISOException . throwIt ( ( short ) 0xC1C2) ;<br />

629 }<br />

630 }<br />

631 return f a l s e ;<br />

632 }<br />

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

634 i n b u f f l e n g t h , Key kpSign , short signMode ) {<br />

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

636 copyPointer = U t i l . arrayCopyNonAtomic ( this . SignedDataTag ,<br />

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

638 this . SignedDataTag . l e n g t h ) ;<br />

639 copyPointer += ( short ) 2 ;<br />

640 phSign . i n i t ( ( RSAPrivateKey ) kpSign , S i g n a t u r e .MODE_SIGN) ;<br />

641 s i g n l e n g t h = phSign . s i g n ( i n b u f f , ( short ) i n b u f f O f f s e t ,<br />

642 i n b u f f l e n g t h , i n b u f f , copyPointer ) ;<br />

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

644 ( short ) 2) , s i g n l e n g t h ) ;<br />

645 copyPointer += s i g n l e n g t h ;<br />

646 return true ;<br />

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

648 phSign . i n i t ( ( RSAPublicKey ) kpSign , S i g n a t u r e .MODE_VERIFY) ;<br />

649 return phSign . v e r i f y ( i n b u f f , i n b u f f O f f s e t , i n b u f f l e n g t h , i n b u f f ,<br />

650 ( short ) ( i n b u f f O f f s e t + i n b u f f l e n g t h +<br />

651 this . PTLVDataOffset ) , ( short ) 64) ;<br />

652 }<br />

653 return f a l s e ;<br />

654 }<br />

655 public s t a t i c short bytesToShort ( byte [ ] ArrayBytes ) {<br />

656 return ( short ) ( ( ( ArrayBytes [ 0 ] ( short )<br />

665 0 x0008 ) ;<br />

666 Array [ 1 ] = ( byte ) ( inShort & ( short ) 0x00FF ) ;<br />

667 }<br />

668 private void shortToBytes ( byte [ ] Array , short a r r a y O f f s e t , short<br />

669 inShort ) {<br />

670 Array [ a r r a y O f f s e t ] = ( byte ) ( ( short ) ( inShort & ( short ) 0xFF00 ) >><br />

671 ( short ) 0 x0008 ) ;<br />

672 Array [ ( short ) ( a r r a y O f f s e t + ( short ) 1) ] = ( byte ) ( inShort & ( short )<br />

673 0x00FF ) ;<br />

674 }<br />

675 }<br />

417

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

Saved successfully!

Ooh no, something went wrong!