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.11 Implementation Helper Classes<br />

203 myAESCipher = Cipher . g e t I n s t a n c e ( "AES/CBC/NoPadding" ) ;<br />

204 myAESCipher . i n i t ( Cipher .DECRYPT_MODE, myAESKey, ivS ) ;<br />

205 myAESCipher . doFinal ( i n b u f f , i n b u f f O f f s e t , inbuffLength , outbuff ,<br />

206 o u t b u f f O f f s e t ) ;<br />

207 } catch ( I l l e g a l B l o c k S i z e E x c e p t i o n ce ) {<br />

208 System . out . p r i n t l n ( " Error at l i k e n 140 : " + ce . getMessage ( ) +<br />

209 "\ nInput Length " + inbuffLength ) ;<br />

210 }<br />

211 }<br />

212 void GenerateEncryption ( byte [ ] i n b u f f , int i n b u f f O f f s e t , int<br />

213 inbuffLength , byte [ ] outbuff , int<br />

214 o u t b u f f O f f s e t , byte [ ] EnKey) throws<br />

215 NoSuchAlgorithmException ,<br />

216 InvalidKeyException ,<br />

217 I l l e g a l B l o c k S i z e E x c e p t i o n ,<br />

218 NoSuchProviderException ,<br />

219 BadPaddingException , NoSuchPaddingException ,<br />

220 InvalidKeySpecException ,<br />

221 ShortBufferException ,<br />

222 InvalidAlgorithmParameterException {<br />

223 IvParameterSpec ivS = new IvParameterSpec ( I n i t i a l i s a t i o n V e c t o r ) ;<br />

224 myAESKey = new SecretKeySpec (EnKey , "AES" ) ;<br />

225 myAESCipher = Cipher . g e t I n s t a n c e ( "AES/CBC/NoPadding" ) ;<br />

226 myAESCipher . i n i t ( Cipher .ENCRYPT_MODE, myAESKey, ivS ) ;<br />

227 myAESCipher . doFinal ( i n b u f f , i n b u f f O f f s e t , inbuffLength , outbuff ,<br />

228 o u t b u f f O f f s e t ) ;<br />

229 }<br />

230 public P r o t o c o l H e l p e r C l a s s ( ) {<br />

231 S e c u r i t y . addProvider (new<br />

232 org . b o u n c y c a s t l e . j c e . p r o v i d e r . BouncyCastleProvider ( ) ) ;<br />

233 }<br />

234 public PublicKey getPublicKey ( ) {<br />

235 return this . mySignatureVerificationKey ;<br />

236 }<br />

237 public byte [ ] getRandomNumber ( ) {<br />

238 try {<br />

239 myRNG = SecureRandom . g e t I n s t a n c e ( "SHA1PRNG" ) ;<br />

240 myRNG. nextBytes ( this . ServiceProviderRandom ) ;<br />

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

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

243 " Error ? : P r o t o c o l H e l p e r C l a s s . getRandomNumber :<br />

" + cE . getMessage ( ) ) ;<br />

244 }<br />

245 return this . ServiceProviderRandom ;<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 )<br />

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

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

252 } ;<br />

438

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

Saved successfully!

Ooh no, something went wrong!