Top Description Fields Constructors Methods
org.conscrypt

pack-priv final Class Java8EngineWrapper

extends AbstractConscryptEngine
Class Inheritance
Static Imports
org.conscrypt.Preconditions.checkNotNull

A wrapper around ConscryptEngine that adapts to the new Java 9 (and potentially later patches of 8) setHandshakeApplicationProtocolSelector API (which requires Java 8 for compilation, due to the use of BiFunction).

Field Summary

Modifier and TypeField and Description
private final ConscryptEngine
private BiFunction<SSLEngine, List<String>, String>

Constructor Summary

AccessConstructor and Description
pack-priv

Method Summary

Modifier and TypeMethod and Description
public void
beginHandshake()

Implements abstract javax.net.ssl.SSLEngine.beginHandshake.

Initiates handshaking (initial or renegotiation) on this SSLEngine.
public void
closeInbound()

Implements abstract javax.net.ssl.SSLEngine.closeInbound.

Signals that no more inbound network data will be sent to this SSLEngine.
public void
closeOutbound()

Implements abstract javax.net.ssl.SSLEngine.closeOutbound.

Signals that no more outbound application data will be sent on this SSLEngine.
pack-priv byte[]
exportKeyingMaterial(String
the label to use in calculating the exported value. This must be an ASCII-only string.
label
,
byte[]
the application-specific context value to use in calculating the exported value. This may be null to use no application context, which is treated differently than an empty byte array.
context
,
int
the number of bytes of keying material to return.
length
)

Implements abstract org.conscrypt.AbstractConscryptEngine.exportKeyingMaterial.

Exports a value derived from the TLS master secret as described in RFC 5705.
public String
getApplicationProtocol()

Implements abstract org.conscrypt.AbstractConscryptEngine.getApplicationProtocol.

Returns the most recent application protocol value negotiated for this connection.
pack-priv String[]
getApplicationProtocols()

Implements abstract org.conscrypt.AbstractConscryptEngine.getApplicationProtocols.

Returns the list of supported ALPN protocols.
pack-priv byte[]
getChannelId()

Implements abstract org.conscrypt.AbstractConscryptEngine.getChannelId.

Gets the TLS Channel ID for this server engine.
pack-priv static SSLEngine
public Runnable
getDelegatedTask()

Implements abstract javax.net.ssl.SSLEngine.getDelegatedTask.

Returns a delegated Runnable task for this SSLEngine.
public String[]
getEnabledCipherSuites()

Implements abstract javax.net.ssl.SSLEngine.getEnabledCipherSuites.

Returns the names of the SSL cipher suites which are currently enabled for use on this engine.
public String[]
getEnabledProtocols()

Implements abstract javax.net.ssl.SSLEngine.getEnabledProtocols.

Returns the names of the protocol versions which are currently enabled for use with this SSLEngine.
public boolean
getEnableSessionCreation()

Implements abstract javax.net.ssl.SSLEngine.getEnableSessionCreation.

Returns true if new SSL sessions may be established by this engine.
public String
getHandshakeApplicationProtocol()

Implements abstract org.conscrypt.AbstractConscryptEngine.getHandshakeApplicationProtocol.

Returns the application protocol value negotiated on a SSL/TLS handshake currently in progress.
public BiFunction<SSLEngine, List<String>, String>
getHandshakeApplicationProtocolSelector()

Overrides javax.net.ssl.SSLEngine.getHandshakeApplicationProtocolSelector.

Retrieves the callback function that selects an application protocol value during a SSL/TLS/DTLS handshake.
public SSLEngineResult.HandshakeStatus
getHandshakeStatus()

Implements abstract javax.net.ssl.SSLEngine.getHandshakeStatus.

Returns the current handshake status for this SSLEngine.
pack-priv String
getHostname()

Implements abstract org.conscrypt.AbstractConscryptEngine.getHostname.

Returns the hostname from setHostname(String) or supplied by the PeerInfoProvider upon creation.
public boolean
getNeedClientAuth()

Implements abstract javax.net.ssl.SSLEngine.getNeedClientAuth.

Returns true if the engine will require client authentication.
public String
getPeerHost()

Implements abstract org.conscrypt.AbstractConscryptEngine.getPeerHost.

Returns the host name of the peer.
public int
getPeerPort()

Implements abstract org.conscrypt.AbstractConscryptEngine.getPeerPort.

Returns the port number of the peer.
public SSLSession
getSession()

Implements abstract javax.net.ssl.SSLEngine.getSession.

Returns the SSLSession in use in this SSLEngine.
public SSLParameters
getSSLParameters()

Overrides javax.net.ssl.SSLEngine.getSSLParameters.

Returns the SSLParameters in effect for this SSLEngine.
public String[]
getSupportedCipherSuites()

Implements abstract javax.net.ssl.SSLEngine.getSupportedCipherSuites.

Returns the names of the cipher suites which could be enabled for use on this engine.
public String[]
getSupportedProtocols()

Implements abstract javax.net.ssl.SSLEngine.getSupportedProtocols.

Returns the names of the protocols which could be enabled for use with this SSLEngine.
pack-priv byte[]
getTlsUnique()

Implements abstract org.conscrypt.AbstractConscryptEngine.getTlsUnique.

Returns the tls-unique channel binding value for this connection, per RFC 5929.
public boolean
getUseClientMode()

Implements abstract javax.net.ssl.SSLEngine.getUseClientMode.

Returns true if the engine is set to use client mode when handshaking.
public boolean
getWantClientAuth()

Implements abstract javax.net.ssl.SSLEngine.getWantClientAuth.

Returns true if the engine will request client authentication.
pack-priv SSLSession
handshakeSession()

Implements abstract org.conscrypt.AbstractConscryptEngine.handshakeSession.

Work-around to allow this method to be called on older versions of Android.
public boolean
isInboundDone()

Implements abstract javax.net.ssl.SSLEngine.isInboundDone.

Returns whether unwrap(ByteBuffer, ByteBuffer) will accept any more inbound data messages.
public boolean
isOutboundDone()

Implements abstract javax.net.ssl.SSLEngine.isOutboundDone.

Returns whether wrap(ByteBuffer, ByteBuffer) will produce any more outbound data messages.
pack-priv int
maxSealOverhead()

Implements abstract org.conscrypt.AbstractConscryptEngine.maxSealOverhead.

Returns the maximum overhead, in bytes, of sealing a record with SSL.
pack-priv void
setApplicationProtocols(String[]
the list of ALPN protocols
protocols
)

Implements abstract org.conscrypt.AbstractConscryptEngine.setApplicationProtocols.

Sets the list of ALPN protocols.
pack-priv void
setApplicationProtocolSelector(ApplicationProtocolSelector selector)

Implements abstract org.conscrypt.AbstractConscryptEngine.setApplicationProtocolSelector.

Sets an application-provided ALPN protocol selector.
pack-priv void
pack-priv void
setChannelIdEnabled(boolean enabled)

Implements abstract org.conscrypt.AbstractConscryptEngine.setChannelIdEnabled.

Enables/disables TLS Channel ID for this server engine.
pack-priv void
setChannelIdPrivateKey(PrivateKey
private key (enables TLS Channel ID) or null for no key (disables TLS Channel ID). The private key must be an Elliptic Curve (EC) key based on the NIST P-256 curve (aka SECG secp256r1 or ANSI X9.62 prime256v1).
privateKey
)

Implements abstract org.conscrypt.AbstractConscryptEngine.setChannelIdPrivateKey.

Sets the PrivateKey to be used for TLS Channel ID by this client engine.
public void
setEnabledCipherSuites(String[]
Names of all the cipher suites to enable
suites
)

Implements abstract javax.net.ssl.SSLEngine.setEnabledCipherSuites.

Sets the cipher suites enabled for use on this engine.
public void
setEnabledProtocols(String[]
Names of all the protocols to enable.
protocols
)

Implements abstract javax.net.ssl.SSLEngine.setEnabledProtocols.

Set the protocol versions enabled for use on this engine.
public void
setEnableSessionCreation(boolean
true indicates that sessions may be created; this is the default. false indicates that an existing session must be resumed
flag
)

Implements abstract javax.net.ssl.SSLEngine.setEnableSessionCreation.

Controls whether new SSL sessions may be established by this engine.
public void
setHandshakeApplicationProtocolSelector(final BiFunction<SSLEngine, List<String>, String>
the callback function, or null to disable the callback functionality.
selector
)

Overrides javax.net.ssl.SSLEngine.setHandshakeApplicationProtocolSelector.

Registers a callback function that selects an application protocol value for a SSL/TLS/DTLS handshake.
pack-priv void
setHandshakeListener(HandshakeListener handshakeListener)

Implements abstract org.conscrypt.AbstractConscryptEngine.setHandshakeListener.

Sets the listener for the completion of the TLS handshake.
pack-priv void
setHostname(String hostname)

Implements abstract org.conscrypt.AbstractConscryptEngine.setHostname.

This method enables Server Name Indication (SNI) and overrides the PeerInfoProvider supplied during engine creation.
public void
setNeedClientAuth(boolean
set to true if client authentication is required, or false if no client authentication is desired.
need
)

Implements abstract javax.net.ssl.SSLEngine.setNeedClientAuth.

Configures the engine to require client authentication.
public void
setSSLParameters(SSLParameters
the parameters
sslParameters
)

Overrides javax.net.ssl.SSLEngine.setSSLParameters.

Applies SSLParameters to this engine.
public void
setUseClientMode(boolean
true if the engine should start its handshaking in "client" mode
mode
)

Implements abstract javax.net.ssl.SSLEngine.setUseClientMode.

Configures the engine to use client (or server) mode when handshaking.
pack-priv void
setUseSessionTickets(boolean
True to enable session tickets
useSessionTickets
)

Implements abstract org.conscrypt.AbstractConscryptEngine.setUseSessionTickets.

This method enables session ticket support.
public void
setWantClientAuth(boolean
set to true if client authentication is requested, or false if no client authentication is desired.
want
)

Implements abstract javax.net.ssl.SSLEngine.setWantClientAuth.

Configures the engine to request client authentication.
private static ApplicationProtocolSelector
public SSLEngineResult
unwrap(ByteBuffer
a ByteBuffer containing inbound network data.
src
,
ByteBuffer
a ByteBuffer to hold inbound application data.
dst
)

Implements abstract org.conscrypt.AbstractConscryptEngine.unwrap.

Attempts to decode SSL/TLS/DTLS network data into a plaintext application data buffer.
public SSLEngineResult
unwrap(ByteBuffer
a ByteBuffer containing inbound network data.
src
,
ByteBuffer[]
an array of ByteBuffers to hold inbound application data.
dsts
)

Implements abstract org.conscrypt.AbstractConscryptEngine.unwrap.

Attempts to decode SSL/TLS/DTLS network data into a sequence of plaintext application data buffers.
public SSLEngineResult
unwrap(ByteBuffer
a ByteBuffer containing inbound network data.
src
,
ByteBuffer[]
an array of ByteBuffers to hold inbound application data.
dsts
,
int
The offset within the buffer array of the first buffer from which bytes are to be transferred; it must be non-negative and no larger than dsts.length.
offset
,
int
The maximum number of buffers to be accessed; it must be non-negative and no larger than dsts.length - offset.
length
)

Implements abstract org.conscrypt.AbstractConscryptEngine.unwrap.

Attempts to decode SSL/TLS/DTLS network data into a subsequence of plaintext application data buffers.
pack-priv SSLEngineResult
pack-priv SSLEngineResult
unwrap(ByteBuffer[] srcs, int srcsOffset, int srcsLength, ByteBuffer[] dsts, int dstsOffset, int dstsLength)

Implements abstract org.conscrypt.AbstractConscryptEngine.unwrap.

public SSLEngineResult
wrap(ByteBuffer[]
an array of ByteBuffers containing the outbound application data
byteBuffers
,
ByteBuffer
a ByteBuffer to hold outbound network data
byteBuffer
)

Overrides javax.net.ssl.SSLEngine.wrap.

Attempts to encode plaintext bytes from a sequence of data buffers into SSL/TLS/DTLS network data.
public SSLEngineResult
wrap(ByteBuffer
a ByteBuffer containing outbound application data
src
,
ByteBuffer
a ByteBuffer to hold outbound network data
dst
)

Implements abstract org.conscrypt.AbstractConscryptEngine.wrap.

Attempts to encode a buffer of plaintext application data into SSL/TLS/DTLS network data.
public SSLEngineResult
wrap(ByteBuffer[]
an array of ByteBuffers containing the outbound application data
srcs
,
int
The offset within the buffer array of the first buffer from which bytes are to be retrieved; it must be non-negative and no larger than srcs.length
srcsOffset
,
int
The maximum number of buffers to be accessed; it must be non-negative and no larger than srcs.length - offset
srcsLength
,
ByteBuffer
a ByteBuffer to hold outbound network data
dst
)

Implements abstract org.conscrypt.AbstractConscryptEngine.wrap.

Attempts to encode plaintext bytes from a subsequence of data buffers into SSL/TLS/DTLS network data.
Inherited from org.conscrypt.AbstractConscryptEngine:
getHandshakeSession