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.5 Secure and Trusted Channel Protocol Smart Card<br />

233 temp . length , this . SignedData . getValueBytes ( ) , 0 ,<br />

234 SCVerificationKey ,<br />

P r o t o c o l H e l p e r C l a s s .SIGN_MODE_VERIFICATION) )<br />

235 {}<br />

236 else {<br />

237 System . out . p r i n t l n (<br />

238 " S i g n a t u r e V e r i f i c a t i o n F a i l e d . . . . . . Check<br />

code " ) ;<br />

239 }<br />

240 }<br />

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

242 System . out . p r i n t l n ( " Error i n ProtocolHandler . inMessageProcessing : "<br />

243 + cE . g e t C l a s s ( ) . getName ( ) ) ;<br />

244 }<br />

245 return true ;<br />

246 }<br />

247 public s t a t i c S t r i n g byteToString ( byte [ ] inArray ) {<br />

248 byte [ ] HEX_CHAR_TABLE = {<br />

249 ( byte ) ' 0 ' , ( byte ) ' 1 ' , ( byte ) ' 2 ' , ( byte ) ' 3 ' , ( byte ) ' 4 ' , ( byte ) ' 5 ' ,<br />

250 ( byte ) ' 6 ' , ( byte ) ' 7 ' , ( byte ) ' 8 ' , ( byte ) ' 9 ' , ( byte ) ' a ' , ( byte ) ' b ' ,<br />

251 ( byte ) ' c ' , ( byte ) ' d ' , ( byte ) ' e ' , ( byte ) ' f '<br />

252 } ;<br />

253 byte [ ] hex = new byte [ 2 ∗ inArray . l e n g t h ] ;<br />

254 int index = 0 ;<br />

255 <strong>for</strong> ( byte b : inArray ) {<br />

256 int v = b & 0xFF ;<br />

257 hex [ index++] = HEX_CHAR_TABLE[ v >>> 4 ] ;<br />

258 hex [ index++] = HEX_CHAR_TABLE[ v & 0xF ] ;<br />

259 }<br />

260 try {<br />

261 return new S t r i n g ( hex , "ASCII" ) ;<br />

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

263 System . out . p r i n t l n ( " Exception in bytesToString : " +<br />

cE . getMessage ( ) )<br />

264 ;<br />

265 }<br />

266 return " Error " ;<br />

267 }<br />

268 void childExtractionFromCTLV ( ConstructedTLV inCTLV) {<br />

269 try {<br />

270 int c h i l d s = inCTLV . getChildNumbers ( ) ;<br />

271 PrimitiveTLV pTemp = null ;<br />

272 ConstructedTLV cTemp = null ;<br />

273 while ( c h i l d s > 0) {<br />

274 switch (inCTLV . nextType ( ) ) {<br />

275 case 1 :<br />

276 pTemp = ( PrimitiveTLV )inCTLV . getNext ( ) ;<br />

277 i f ( Arrays . e q u a l s (pTemp . getTagName ( ) ,<br />

278 this . SCDHChallenge . getTagName ( ) ) ) {<br />

279 this . SCDHChallenge = pTemp ;<br />

280 } else i f ( Arrays . e q u a l s (pTemp . getTagName ( ) ,<br />

330

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

Saved successfully!

Ooh no, something went wrong!