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

326 }<br />

327 i f ( this . r e c e i v i n g B u f f e r [ 3 ] == this . MessageHandlerTagOne [ 3 ] ) {<br />

328 try {<br />

329 parseMessage ( r e c e i v i n g B u f f e r ) ;<br />

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

331 ISOException . throwIt ( ( short ) 0xA112 ) ;<br />

332 }<br />

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

334 JCSystem .MEMORY_TYPE_TRANSIENT_DESELECT) ;<br />

335 generateResponse ( ( short ) 1) ;<br />

336 } else<br />

337 i f ( this . r e c e i v i n g B u f f e r [ 3 ] == this . MessageHandlerTagTwo [ 3 ] ) {<br />

338 processSecondMsg ( r e c e i v i n g B u f f e r ) ;<br />

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

340 JCSystem .MEMORY_TYPE_TRANSIENT_DESELECT) ;<br />

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

342 } else i f ( this . r e c e i v i n g B u f f e r [ 3 ] == this . MessageHandlerTagThree [ 3 ] )<br />

{<br />

343 processSPsThirdMsg ( r e c e i v i n g B u f f e r ) ;<br />

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

345 return ;<br />

346 } else i f ( this . r e c e i v i n g B u f f e r [ 3 ] == ( byte ) 0xF1 ) {<br />

347 i f ( processTSMActAppMessage ( ) ) {<br />

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

349 return ;<br />

350 } else {<br />

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

352 apdu . setOutgoing ( ) ;<br />

353 apdu . setOutgoingLength ( ( short ) r e c e i v i n g B u f f e r . l e n g t h ) ;<br />

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

355 r e c e i v i n g B u f f e r . l e n g t h ) ;<br />

356 }<br />

357 } else {<br />

358 ISOException . throwIt ( ProtocolHandler .SW_ERROR_INS) ;<br />

359 }<br />

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

361 apdu . setOutgoing ( ) ;<br />

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

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

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

365 }<br />

366 private void SCTSMChargeRequest (APDU apdu ) {<br />

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

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

369 short encryptedDataChild = 0 ;<br />

370 short encryptionLength = 0 ;<br />

371 copyPointer = 0 ;<br />

372 try {<br />

373 copyPointer = U t i l . arrayCopyNonAtomic ( this . MessageHandlerTagSCTSM ,<br />

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

375 this . MessageHandlerTagSCTSM . l e n g t h ) copyPointer =<br />

340

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

Saved successfully!

Ooh no, something went wrong!