equal
deleted
inserted
replaced
36 import javax.net.ssl.SSLException; |
36 import javax.net.ssl.SSLException; |
37 import javax.net.ssl.SSLHandshakeException; |
37 import javax.net.ssl.SSLHandshakeException; |
38 import javax.net.ssl.SSLProtocolException; |
38 import javax.net.ssl.SSLProtocolException; |
39 |
39 |
40 import sun.security.ssl.SSLCipher.SSLReadCipher; |
40 import sun.security.ssl.SSLCipher.SSLReadCipher; |
41 import sun.security.ssl.KeyUpdate.KeyUpdateMessage; |
|
42 import sun.security.ssl.KeyUpdate.KeyUpdateRequest; |
|
43 |
41 |
44 /** |
42 /** |
45 * {@code InputRecord} implementation for {@code SSLSocket}. |
43 * {@code InputRecord} implementation for {@code SSLSocket}. |
46 * |
44 * |
47 * @author David Brownell |
45 * @author David Brownell |
346 } |
344 } |
347 |
345 |
348 return plaintexts.toArray(new Plaintext[0]); |
346 return plaintexts.toArray(new Plaintext[0]); |
349 } |
347 } |
350 |
348 |
351 // KeyLimit check during application data. |
|
352 // atKeyLimit() inactive when limits not checked, tc set when limits |
|
353 // are active. |
|
354 |
|
355 if (readCipher.atKeyLimit()) { |
|
356 if (SSLLogger.isOn && SSLLogger.isOn("ssl")) { |
|
357 SSLLogger.fine("KeyUpdate: triggered, read side."); |
|
358 } |
|
359 |
|
360 PostHandshakeContext p = new PostHandshakeContext(tc); |
|
361 KeyUpdate.handshakeProducer.produce(p, |
|
362 new KeyUpdateMessage(p, KeyUpdateRequest.REQUESTED)); |
|
363 } |
|
364 |
|
365 return new Plaintext[] { |
349 return new Plaintext[] { |
366 new Plaintext(contentType, |
350 new Plaintext(contentType, |
367 majorVersion, minorVersion, -1, -1L, fragment) |
351 majorVersion, minorVersion, -1, -1L, fragment) |
368 }; |
352 }; |
369 } |
353 } |