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.8 Application Binding Protocol - Distributed<br />

148 ClientAppDHData . l e n g t h − ( short ) PTLVDataOffset ) ) ;<br />

149 this . dhKeyConGen( this . ClientAppDHData , this . PTLVDataOffset ,<br />

150 ProtocolHandler .GEN_KEYCONTRIBUTION) ;<br />

151 ServerAppDHChanllengerArray = JCSystem . makeTransientByteArray ( ( short ) (<br />

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

153 JCSystem .MEMORY_TYPE_TRANSIENT_DESELECT) ;<br />

154 ServerAppRandomNumberArray =<br />

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

155 JCSystem .MEMORY_TYPE_TRANSIENT_DESELECT) ;<br />

156 ServerAppCookieArray = JCSystem . makeTransientByteArray ( ( short ) 22 ,<br />

157 JCSystem .MEMORY_TYPE_TRANSIENT_DESELECT) ;<br />

158 ClientAppRandomNumberArray =<br />

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

159 JCSystem .MEMORY_TYPE_TRANSIENT_DESELECT) ;<br />

160 U t i l . arrayCopyNonAtomic ( this . ClientAppRandomNumberTag , ( short )<br />

161 i n i t i a l P o i n t e r ,<br />

this . ClientAppRandomNumberArray ,<br />

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

163 this . ClientAppRandomNumberTag . l e n g t h ) ;<br />

164 this . shortToBytes ( this . ClientAppRandomNumberArray , ( short ) 4 , ( short ) (<br />

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

166 ( short ) PTLVDataOffset ) ) ;<br />

167 try {<br />

168 this . C l i e n t A p p U s e r C e r t i f i c a t e = JCSystem . makeTransientByteArray (<br />

169 ( short ) 86 , JCSystem .MEMORY_TYPE_TRANSIENT_DESELECT) ;<br />

170 i n i t i a l P o i n t e r = U t i l . arrayCopyNonAtomic<br />

171 ( this . ClientApp<strong>User</strong>CertificateTag , ( short ) 0 ,<br />

172 this . C l i e n t A p p U s e r C e r t i f i c a t e , ( short ) 0 ,<br />

( short )<br />

173 this . ClientApp<strong>User</strong>CertificateTag . l e n g t h ) ;<br />

174 this . shortToBytes ( this . C l i e n t A p p U s e r C e r t i f i c a t e , ( short ) 4 , ( short )<br />

175 ( this . C l i e n t A p p U s e r C e r t i f i c a t e . l e n g t h −<br />

( short ) 7) ) ;<br />

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

177 ( short ) 0 , this . C l i e n t A p p U s e r 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 />

178 ( short ) 3) , ( short ) this . ExponentTag . l e n g t h ) ;<br />

179 RSAPublicKey myPublic = ( RSAPublicKey )<br />

180 this . ph<strong>User</strong>KeyPair . g e t P u b l i c ( ) ;<br />

181 short kLen = myPublic . getExponent ( this . C l i e n t A p p U s e r C e r t i f i c a t e ,<br />

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

183 this . shortToBytes ( this . C l i e n t A p p U s e r 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 ,<br />

kLen )<br />

184 ;<br />

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

186 this . C l i e n t A p p U s e r C e r t i f i c a t e [6]++;<br />

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

188 ( short ) 0 , this . C l i e n t A p p U s e r 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 />

189 ( short ) this . ModulusTag . l e n g t h ) ;<br />

190 kLen = myPublic . getModulus ( this . C l i e n t A p p U s e r C e r t i f i c a t e , ( short )<br />

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

381

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

Saved successfully!

Ooh no, something went wrong!