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

137 this . dhKeyConGen( this . SCDHData , this . PTLVDataOffset ,<br />

138 ProtocolHandler .GEN_KEYCONTRIBUTION) ;<br />

139 SPDHChanllengerArray = JCSystem . makeTransientByteArray ( ( short ) ( ( short )<br />

140 this . ClassDH . dhModulus . l e n g t h + this . PTLVDataOffset ) ,<br />

141 JCSystem .MEMORY_TYPE_TRANSIENT_DESELECT) ;<br />

142 SPRandomNumberArray = JCSystem . makeTransientByteArray ( ( short ) 22 ,<br />

143 JCSystem .MEMORY_TYPE_TRANSIENT_DESELECT) ;<br />

144 SPCookieArray = JCSystem . makeTransientByteArray ( ( short ) 22 ,<br />

145 JCSystem .MEMORY_TYPE_TRANSIENT_DESELECT) ;<br />

146 SCRandomNumberArray = JCSystem . makeTransientByteArray ( ( short ) 22 ,<br />

147 JCSystem .MEMORY_TYPE_TRANSIENT_DESELECT) ;<br />

148 U t i l . arrayCopyNonAtomic ( this . SCRandomNumberTag , ( short ) i n i t i a l P o i n t e r ,<br />

149 this . SCRandomNumberArray , ( short )<br />

150 i n i t i a l P o i n t e r , ( short )<br />

151 this . SCRandomNumberTag . l e n g t h ) ;<br />

152 this . shortToBytes ( this . SCRandomNumberArray , ( short ) 4 , ( short ) ( ( short )<br />

153 this . SCRandomNumberArray . l e n g t h − ( short )<br />

154 PTLVDataOffset ) ) ;<br />

155 try {<br />

156 this . S C C e r t i f i c a t e = JCSystem . makeTransientByteArray ( ( short ) 86 ,<br />

157 JCSystem .MEMORY_TYPE_TRANSIENT_DESELECT) ;<br />

158 i n i t i a l P o i n t e r = U t i l . arrayCopyNonAtomic ( this . SCCertificateTag ,<br />

159 ( short ) 0 , this . S C C e r t i f i c a t e , ( short ) 0 ,<br />

( short )<br />

160 this . SCCertificateTag . l e n g t h ) ;<br />

161 this . shortToBytes ( this . S C C e r t i f i c a t e , ( short ) 4 , ( short )<br />

162 ( this . S C C e r t i f i c a t e . l e n g t h − ( short ) 7) ) ;<br />

163 i n i t i a l P o i n t e r = U t i l . arrayCopyNonAtomic ( this . ExponentTag , ( short ) 0 ,<br />

164 this . S C C e r t i f i c a t e , ( short ) ( i n i t i a l P o i n t e r +<br />

( short ) 3) , ( short )<br />

165 this . ExponentTag . l e n g t h ) ;<br />

166 RSAPublicKey myPublic = ( RSAPublicKey ) this . phSCKeyPair . g e t P u b l i c ( ) ;<br />

167 short kLen = myPublic . getExponent ( this . S C C e r t i f i c a t e , ( short )<br />

168 ( i n i t i a l P o i n t e r + ( short ) 2) ) ;<br />

169 this . shortToBytes ( this . S C C e r t i f i c a t e , i n i t i a l P o i n t e r , kLen ) ;<br />

170 i n i t i a l P o i n t e r += ( short ) ( kLen + ( short ) 2) ;<br />

171 this . S C C e r t i f i c a t e [6]++;<br />

172 i n i t i a l P o i n t e r = U t i l . arrayCopyNonAtomic ( this . ModulusTag , ( short ) 0 ,<br />

173 this . S C C e r t i f i c a t e , ( short ) ( i n i t i a l P o i n t e r ) , ( short )<br />

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

175 kLen = myPublic . getModulus ( this . S C C e r t i f i c a t e , ( short )<br />

176 ( i n i t i a l P o i n t e r + ( short ) 2) ) ;<br />

177 this . shortToBytes ( this . S C C e r t i f i c a t e , i n i t i a l P o i n t e r , kLen ) ;<br />

178 this . S C C e r t i f i c a t e [6]++;<br />

179 SPVerificationKey = ( RSAPublicKey ) KeyBuilder . buildKey<br />

180 ( KeyBuilder .TYPE_RSA_PUBLIC,<br />

181 KeyBuilder .LENGTH_RSA_512, f a l s e ) ;<br />

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

183 ISOException . throwIt ( ( short ) 0 x6666 ) ;<br />

184 }<br />

185 }<br />

316

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

Saved successfully!

Ooh no, something went wrong!