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

376 U t i l . arrayCopyNonAtomic ( this . CardID , ( short ) 0 ,<br />

377 this . r e c e i v i n g B u f f e r , copyPointer ,<br />

( short ) this . CardID . l e n g t h ) ;<br />

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

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

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

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

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

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

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

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

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

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

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

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

390 copyPointer = U t i l . arrayCopyNonAtomic ( this . U s e r I d e n t i t y , ( short ) 0 ,<br />

391 this . r e c e i v i n g B u f f e r , copyPointer ,<br />

( short ) this . U s e r I d e n t i t y . l e n g t h )<br />

392 ;<br />

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

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

395 this . r e c e i v i n g B u f f e r , copyPointer ,<br />

( short ) this . TSMIdentity . l e n g t h ) ;<br />

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

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

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

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

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

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

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

403 encryptionLength = ( short ) ( copyPointer − e n c r y p t i o n O f f s e t ) ;<br />

404 this . phCipherKey . setKey ( this . myLongTermEncryptionKey , ( short ) 0) ;<br />

405 messageEncryption ( 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 />

406 ( copyPointer − e n c r y p t i o n O f f s e t ) ) ;<br />

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

( short )<br />

408 3) , ( short ) ( copyPointer − e n c r y p t i o n O f f s e t ) ) ;<br />

409 this . phMacGeneratorKey . setKey ( this . myLongTermMacKey , ( short ) 0) ;<br />

410 macGenerate ( 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 />

411 ( copyPointer − e n c r y p t i o n O f f s e t ) , S i g n a t u r e .MODE_SIGN) ;<br />

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

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

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

415 this . SPCookieArray . l e n g t h ) ;<br />

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

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

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

419 ISOException . throwIt ( ( short ) encryptionLength ) ;<br />

420 }<br />

421 }<br />

422 private void AppDownloadCompleted (APDU apdu ) {<br />

341

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

Saved successfully!

Ooh no, something went wrong!