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.1 Oine Attestation Mechanism<br />

194 }<br />

195 i f ( seedZero ( ) ) {<br />

196 generateMACPrng ( tempSeed , cipherKey ) ;<br />

197 } else {<br />

198 ISOException . throwIt ( ( short ) 0xFA17) ;<br />

199 }<br />

200 }<br />

201<br />

202 private void generateResponse ( ) {<br />

203 copyPointer = 0 ;<br />

204 s e l f t e s t P r o c e s s ( ) ;<br />

205 phDecryption ( ) ;<br />

206 getSignatureKey ( ) ;<br />

207 }<br />

208<br />

209 void phDecryption ( ) {<br />

210 syCipher . i n i t ( phCipherKey , Cipher .MODE_DECRYPT, I n i t i a l i s a t i o n V e c t o r ,<br />

211 ( short ) 0 , ( short ) I n i t i a l i s a t i o n V e c t o r . l e n g t h ) ;<br />

212 syCipher . doFinal ( signatureKey , i n b u f f O f f s e t , inbuffLength ,<br />

signatureKey ,<br />

213 i n b u f f O f f s e t ) ;<br />

214 }<br />

215 void getSignatureKey ( ) {<br />

216 RSAPrivateKey myPrivate = ( RSAPrivateKey ) this . phSCKeyPair . g e t P r i v a t e ( ) ;<br />

217 short kLen = myPrivate . getExponent ( r e c e i v i n g B u f f e r , ( short )<br />

218 ( copyPointer + ( short ) 2) ) ;<br />

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

220 copyPointer += ( short ) ( kLen + ( short ) 2) ;<br />

221 r e c e i v i n g B u f f e r [6]++;<br />

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

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

224 this . ModulusTag . l e n g t h ) ;<br />

225 kLen = myPrivate . getModulus ( r e c e i v i n g B u f f e r , ( short )<br />

226 ( copyPointer + ( short ) 2) ) ;<br />

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

228 }<br />

229<br />

230 boolean seedZero ( ) {<br />

231 <strong>for</strong> ( short i =0; i

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

Saved successfully!

Ooh no, something went wrong!