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.9 Plat<strong>for</strong>m Binding Protocol<br />

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

273 JCSystem .MEMORY_TYPE_TRANSIENT_DESELECT) ;<br />

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

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

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

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

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

279 JCSystem .MEMORY_TYPE_TRANSIENT_DESELECT) ;<br />

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

281 } else {<br />

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

283 }<br />

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

285 apdu . setOutgoing ( ) ;<br />

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

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

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

289 }<br />

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

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

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

293 copyPointer = 0 ;<br />

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

295 randomDataGen . generateData ( this . SCARandomNumberArray ,<br />

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

297 this . dhKeyConGen( this . SCBDHChanllengerArray ,<br />

298 this . PTLVDataOffset , ProtocolHandler .GEN_DHKEY)<br />

299 ;<br />

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

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

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

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

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

305 this . SCADHData . l e n g t h ) ;<br />

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

307 copyPointer = U t i l . arrayCopyNonAtomic ( this . SCARandomNumberArray ,<br />

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

309 this . SCARandomNumberArray . l e n g t h ) ;<br />

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

311 keygenerator ( ) ;<br />

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

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

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

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

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

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

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

319 copyPointer = U t i l . arrayCopyNonAtomic ( this . SCAIdentityTag ,<br />

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

321 this . SCAIdentityTag . l e n g t h ) ;<br />

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

410

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

Saved successfully!

Ooh no, something went wrong!