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

299 copyPointer = U t i l . arrayCopyNonAtomic ( this . SCBRandomNumberArray ,<br />

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

301 this . SCBRandomNumberArray . l e n g t h ) ;<br />

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

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

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

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

306 copyPointer += 3 ;<br />

307 childPM2 = ( short ) ( copyPointer − ( short ) 1) ;<br />

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

309 copyPointer = U t i l . arrayCopyNonAtomic ( this . Plat<strong>for</strong>mHash , ( short )<br />

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

311 this . Plat<strong>for</strong>mHash . l e n g t h ) ;<br />

312 copyPointer += 2 ;<br />

313 MessageDigest myHashGen = MessageDigest . g e t I n s t a n c e<br />

314 ( MessageDigest .ALG_SHA_256, f a l s e ) ;<br />

315 short tempLength = ( short )myHashGen . doFinal ( this . ClassDH . dhModulus ,<br />

316 ( short ) 0 , ( short ) this . ClassDH . dhModulus . length ,<br />

317 r e c e i v i n g B u f f e r , copyPointer ) ;<br />

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

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

320 ( short ) 2) , tempLength ) ;<br />

321 copyPointer += tempLength ;<br />

322 copyPointer = U t i l . arrayCopyNonAtomic ( this . SCBIdentityTag ,<br />

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

324 this . SCBIdentityTag . l e n g t h ) ;<br />

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

326 copyPointer = U t i l . arrayCopyNonAtomic ( this . SCBRandomNumberArray ,<br />

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

328 this . SCBRandomNumberArray . l e n g t h ) ;<br />

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

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

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

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

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

334 try {<br />

335 this . signGenerate ( this . r e c e i v i n g B u f f e r , ( short ) ( childPM2 +<br />

336 ( short ) 1) , ( short ) ( copyPointer − ( short )<br />

337 ( childPM2 + ( short ) 1) ) ,<br />

338 this . phSCBKeyPair . g e t P r i v a t e ( ) ,<br />

339 S i g n a t u r e .MODE_SIGN) ;<br />

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

341 ISOException . throwIt ( ( short ) 0 x3141 ) ;<br />

342 }<br />

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

344 copyPointer = U t i l . arrayCopyNonAtomic ( this . SCBCertificate ,<br />

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

346 this . SCBCertificate . l e n g t h ) ;<br />

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

348 try {<br />

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

424

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

Saved successfully!

Ooh no, something went wrong!