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.6 Application Acquisition and Contractual Agreement Protocol<br />

423 r e c e i v i n g B u f f e r = JCSystem . makeTransientByteArray ( ( short ) 568 ,<br />

424 JCSystem .MEMORY_TYPE_TRANSIENT_DESELECT) ;<br />

425 generateResponse ( ( short ) 2) ;<br />

426 JCSystem . r e q u e s t O b j e c t D e l e t i o n ( ) ;<br />

427 apdu . setOutgoing ( ) ;<br />

428 apdu . setOutgoingLength ( ( short ) copyPointer ) ;<br />

429 apdu . sendBytesLong ( r e c e i v i n g B u f f e r , ( short ) 0 , ( short ) copyPointer ) ;<br />

430 JCSystem . r e q u e s t O b j e c t D e l e t i o n ( ) ;<br />

431 }<br />

432 private void generateResponse ( short msgNumber) {<br />

433 short c h i l d P o i n t e r M e s s a g e = 6 ;<br />

434 short e n c r y p t i o n O f f s e t = 0 ;<br />

435 copyPointer = 0 ;<br />

436 i f (msgNumber == 1) {<br />

437 randomDataGen . generateData ( this . SCRandomNumberArray ,<br />

438 this . PTLVDataOffset , ( short ) 16) ;<br />

439 this . dhKeyConGen( this . SPDHChanllengerArray , this . PTLVDataOffset ,<br />

440 ProtocolHandler .GEN_DHKEY) ;<br />

441 copyPointer = U t i l . arrayCopyNonAtomic ( this . MessageHandlerTagOne ,<br />

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

443 this . MessageHandlerTagOne . l e n g t h ) ;<br />

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

445 this . r e c e i v i n g B u f f e r , copyPointer , ( short ) this . SCDHData . l e n g t h ) ;<br />

446 this . r e c e i v i n g B u f f e r [ c h i l d P o i n t e r M e s s a g e ]++;<br />

447 copyPointer = U t i l . arrayCopyNonAtomic ( this . SCRandomNumberArray ,<br />

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

449 this . SCRandomNumberArray . l e n g t h ) ;<br />

450 this . r e c e i v i n g B u f f e r [ c h i l d P o i n t e r M e s s a g e ]++;<br />

451 keygenerator ( ) ;<br />

452 copyPointer = U t i l . arrayCopyNonAtomic ( this . EncryptedDataTag , ( short )<br />

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

454 this . EncryptedDataTag . l e n g t h ) ;<br />

455 this . r e c e i v i n g B u f f e r [ c h i l d P o i n t e r M e s s a g e ]++;<br />

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

457 copyPointer += ( short ) 3 ;<br />

458 e n c r y p t i o n O f f s e t = copyPointer ;<br />

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

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

461 this . SCIdentityTag . l e n g t h ) ;<br />

462 this . r e c e i v i n g B u f f e r [ childEnMessage ]++;<br />

463 copyPointer = U t i l . arrayCopyNonAtomic ( this . SCRandomNumberArray ,<br />

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

465 this . SCRandomNumberArray . l e n g t h ) ;<br />

466 this . r e c e i v i n g B u f f e r [ childEnMessage ]++;<br />

467 copyPointer = U t i l . arrayCopyNonAtomic ( this . SPRandomNumberArray ,<br />

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

469 this . SPRandomNumberArray . l e n g t h ) ;<br />

470 this . r e c e i v i n g B u f f e r [ childEnMessage ]++;<br />

471 this . signGenerate ( this . r e c e i v i n g B u f f e r , e n c r y p t i o n O f f s e t , ( short )<br />

472 ( copyPointer − e n c r y p t i o n O f f s e t ) , ph<strong>User</strong>KeyPair<br />

473 . g e t P r i v a t e ( ) , S i g n a t u r e .MODE_SIGN) ;<br />

342

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

Saved successfully!

Ooh no, something went wrong!