92 * |
92 * |
93 * This gives a lot of low-level information about operations underway, |
93 * This gives a lot of low-level information about operations underway, |
94 * including specific handshake messages, and might be best examined |
94 * including specific handshake messages, and might be best examined |
95 * after gaining some familiarity with this application. |
95 * after gaining some familiarity with this application. |
96 */ |
96 */ |
97 private static boolean debug = false; |
97 private static boolean debug = true; |
98 |
98 |
99 private SSLContext sslc; |
99 private SSLContext sslc; |
100 |
100 |
101 private SSLEngine clientEngine; // client Engine |
101 private SSLEngine clientEngine; // client Engine |
102 private ByteBuffer clientOut; // write side of clientEngine |
102 private ByteBuffer clientOut; // write side of clientEngine |
241 serverEngine.getSession().getPeerCertificates(); |
241 serverEngine.getSession().getPeerCertificates(); |
242 System.out.println("Client Certificate(s) received"); |
242 System.out.println("Client Certificate(s) received"); |
243 for (java.security.cert.Certificate c : certs) { |
243 for (java.security.cert.Certificate c : certs) { |
244 System.out.println(c); |
244 System.out.println(c); |
245 } |
245 } |
246 log("Closing server."); |
246 // log("Closing server."); |
247 serverEngine.closeOutbound(); |
247 // serverEngine.closeOutbound(); |
248 } // nothing. |
248 } // nothing. |
249 } |
249 } |
250 |
250 |
251 cTOs.flip(); |
251 cTOs.flip(); |
252 sTOc.flip(); |
252 sTOc.flip(); |
253 |
253 |
254 log("----"); |
254 log("----"); |
255 |
255 |
256 clientResult = clientEngine.unwrap(sTOc, clientIn); |
256 if (!clientEngine.isInboundDone()) { |
257 log("client unwrap: ", clientResult); |
257 clientResult = clientEngine.unwrap(sTOc, clientIn); |
258 runDelegatedTasks(clientResult, clientEngine); |
258 log("client unwrap: ", clientResult); |
259 clientIn.clear(); |
259 runDelegatedTasks(clientResult, clientEngine); |
260 |
260 clientIn.clear(); |
261 serverResult = serverEngine.unwrap(cTOs, serverIn); |
261 sTOc.compact(); |
262 log("server unwrap: ", serverResult); |
262 } else { |
263 runDelegatedTasks(serverResult, serverEngine); |
263 sTOc.clear(); |
264 serverIn.clear(); |
264 } |
265 |
265 |
266 cTOs.compact(); |
266 if (!serverEngine.isInboundDone()) { |
267 sTOc.compact(); |
267 serverResult = serverEngine.unwrap(cTOs, serverIn); |
|
268 log("server unwrap: ", serverResult); |
|
269 runDelegatedTasks(serverResult, serverEngine); |
|
270 serverIn.clear(); |
|
271 cTOs.compact(); |
|
272 } else { |
|
273 cTOs.clear(); |
|
274 } |
|
275 |
|
276 if (hsCompleted == 2) { |
|
277 log("Closing server."); |
|
278 serverEngine.closeOutbound(); |
|
279 } |
268 } |
280 } |
269 } |
281 } |
270 |
282 |
271 /* |
283 /* |
272 * Using the SSLContext created during object creation, |
284 * Using the SSLContext created during object creation, |