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

391

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

Saved successfully!

Ooh no, something went wrong!