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.4 Secure and Trusted Channel Protocol Service Provider<br />

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

271 JCSystem .MEMORY_TYPE_TRANSIENT_DESELECT) ;<br />

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

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

274 this . MessageHandlerTagTwo [ 3 ] ) {<br />

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

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

277 JCSystem .MEMORY_TYPE_TRANSIENT_DESELECT) ;<br />

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

279 } else {<br />

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

281 }<br />

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

283 apdu . setOutgoing ( ) ;<br />

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

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

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

287 }<br />

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

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

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

291 copyPointer = 0 ;<br />

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

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

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

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

296 ProtocolHandler .GEN_DHKEY) ;<br />

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

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

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

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

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

302 this . SCDHData . l e n g t h ) ;<br />

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

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

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

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

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

308 keygenerator ( ) ;<br />

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

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

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

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

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

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

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

316 copyPointer = U t i l . arrayCopyNonAtomic ( this . SCIdentityTag ,<br />

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

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

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

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

296

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

Saved successfully!

Ooh no, something went wrong!