< prev index next >
src/share/classes/sun/security/ssl/SSLTransport.java
Print this page
rev 13969 : 8245468: Add TLSv1.3 implementation classes from 11.0.7
rev 13970 : 8245469: Remove DTLS protocol implementation
*** 30,40 ****
import java.nio.ByteBuffer;
import javax.crypto.BadPaddingException;
import javax.net.ssl.SSLHandshakeException;
/**
! * Interface for SSL/(D)TLS transportation.
*/
interface SSLTransport {
/**
* Returns the host name of the peer.
--- 30,40 ----
import java.nio.ByteBuffer;
import javax.crypto.BadPaddingException;
import javax.net.ssl.SSLHandshakeException;
/**
! * Interface for SSL/TLS transportation.
*/
interface SSLTransport {
/**
* Returns the host name of the peer.
*** 65,75 ****
* @return true if delegated tasks used for handshaking operations.
*/
boolean useDelegatedTask();
/**
! * Decodes an array of SSL/(D)TLS network source data into the
* destination application data buffers.
*
* For SSL/TLS connections, if no source data, the network data may be
* received from the underlying underlying SSL/TLS input stream.
*
--- 65,75 ----
* @return true if delegated tasks used for handshaking operations.
*/
boolean useDelegatedTask();
/**
! * Decodes an array of SSL/TLS network source data into the
* destination application data buffers.
*
* For SSL/TLS connections, if no source data, the network data may be
* received from the underlying underlying SSL/TLS input stream.
*
*** 106,121 ****
try {
plaintexts =
context.inputRecord.decode(srcs, srcsOffset, srcsLength);
} catch (UnsupportedOperationException unsoe) { // SSLv2Hello
// Hack code to deliver SSLv2 error message for SSL/TLS connections.
- if (!context.sslContext.isDTLS()) {
context.outputRecord.encodeV2NoCipher();
if (SSLLogger.isOn && SSLLogger.isOn("ssl")) {
SSLLogger.finest("may be talking to SSLv2");
}
- }
throw context.fatal(Alert.UNEXPECTED_MESSAGE, unsoe);
} catch (BadPaddingException bpe) {
/*
* The basic SSLv3 record protection involves (optional)
--- 106,119 ----
*** 143,167 ****
}
Plaintext finalPlaintext = Plaintext.PLAINTEXT_NULL;
for (Plaintext plainText : plaintexts) {
// plainText should never be null for TLS protocols
! if (plainText == Plaintext.PLAINTEXT_NULL) {
! // Only happens for DTLS protocols.
! //
! // Received a retransmitted flight, and need to retransmit the
! // previous delivered handshake flight messages.
! if (context.handshakeContext != null &&
! context.handshakeContext.sslConfig.enableRetransmissions &&
! context.sslContext.isDTLS()) {
! if (SSLLogger.isOn && SSLLogger.isOn("ssl,verbose")) {
! SSLLogger.finest("retransmited handshake flight");
! }
!
! context.outputRecord.launchRetransmission();
! } // Otherwise, discard the retransmitted flight.
! } else if (plainText != null &&
plainText.contentType != ContentType.APPLICATION_DATA.id) {
context.dispatch(plainText);
}
if (plainText == null) {
--- 141,152 ----
}
Plaintext finalPlaintext = Plaintext.PLAINTEXT_NULL;
for (Plaintext plainText : plaintexts) {
// plainText should never be null for TLS protocols
! if (plainText != null &&
! plainText != Plaintext.PLAINTEXT_NULL &&
plainText.contentType != ContentType.APPLICATION_DATA.id) {
context.dispatch(plainText);
}
if (plainText == null) {
< prev index next >