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.3 Attestation Protocol<br />

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

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

462 copyPointer = U t i l . arrayCopyNonAtomic ( this . SignedDataTag , ( short ) 0 ,<br />

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

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

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

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

467 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 , i n b u f f l e n g t h ,<br />

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

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

( short )<br />

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

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

472 return true ;<br />

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

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

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

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

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

478 }<br />

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

480 }<br />

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

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

( short )<br />

491 0 x0008 ) ;<br />

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

493 0x00FF ) ;<br />

494 }<br />

495 }<br />

C.3.2<br />

Card Manufacturer Implementation<br />

Following is the card manufacturer's implementation of the attestation protocol and to<br />

accomplish its operations it uses helper functions detailed in appendices C.11.1 and C.11.2.<br />

1 package j a v a c a r d t e r m i n a l ;<br />

2<br />

3 import java . u t i l . Arrays ;<br />

4 import java . s e c u r i t y . i n t e r f a c e s . RSAPublicKey ;<br />

5 import java . s e c u r i t y . spec . RSAPublicKeySpec ;<br />

6 import java . s e c u r i t y . ∗ ;<br />

282

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

Saved successfully!

Ooh no, something went wrong!