SSLParameter objects can be created via the constructors in this
class, and can be described as pre-populated objects. SSLParameter
objects can also be obtained using the getSSLParameters() methods in
SSLSocket and
SSLServerSocket and
SSLEngine or the
getDefaultSSLParameters() and
getSupportedSSLParameters()
methods in SSLContext, and can be described as connection populated
objects.
SSLParameters can be applied to a connection via the methods
SSLSocket. and
SSLServerSocket.
and SSLEngine..
For example:
SSLParameters p = sslSocket.getSSLParameters();
p.setProtocols(new String[] { "TLSv1.2" });
p.setCipherSuites(
new String[] { "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256", ... });
p.setApplicationProtocols(new String[] {"h2", "http/1.1"});
sslSocket.setSSLParameters(p);
SSLSocket, SSLEngine, SSLContext
| Modifier and Type | Field and Description |
|---|---|
| private AlgorithmConstraints | |
| private String[] | |
| private String[] | |
| private boolean | |
| private String | |
| private int | |
| private String[] | |
| private boolean | |
| private boolean | |
| private String[] | |
| private String[] | |
| private Collection | |
| private List | |
| private boolean |
| Access | Constructor and Description |
|---|---|
| public | |
| public | SSLParameters(String[]
the array of ciphersuites (or null) cipherSuites)Constructs SSLParameters from the specified array of ciphersuites. |
| public | SSLParameters(String[]
the array of ciphersuites (or null) cipherSuites, String[] the array of protocols (or null) protocols)Constructs SSLParameters from the specified array of ciphersuites and protocols. |
| Modifier and Type | Method and Description |
|---|---|
| private static String[] | |
| public AlgorithmConstraints | Returns: the cryptographic algorithm constraints, or null if the constraints have not been setReturns the cryptographic algorithm constraints. |
| public String[] | Returns: a non-null, possibly zero-length array of application protocolStrings. The array is ordered based on protocol
preference, with the first entry being the most preferred.Returns a prioritized array of application-layer protocol names that can be negotiated over the SSL/TLS/DTLS protocols. |
| public String[] | Returns: a copy of the array of ciphersuites or null if none have been set.Returns a copy of the array of ciphersuites or null if none have been set. |
| public boolean | Returns: true, if DTLS handshake retransmissions should be enabledReturns whether DTLS handshake retransmissions should be enabled. |
| public String | Returns: the endpoint identification algorithm, or null if none has been set.Gets the endpoint identification algorithm. |
| public int | Returns: the maximum expected network packet size, or0 if
use the implicit size that is automatically specified by
the underlying implementation and this object has not been
populated by any connection.Returns the maximum expected network packet size in bytes for SSL/TLS/DTLS records. |
| public String[] | Returns: an array of key exchange named group namesStrings or
null if none have been set. For non-null returns, this
method will return a new array each time it is invoked. The
array is ordered based on named group preference, with the first
entry being the most preferred. Providers should ignore unknown
named group names while establishing the SSL/TLS/DTLS
connections.Returns a prioritized array of key exchange named groups names that can be used over the SSL/TLS/DTLS protocols. |
| public boolean | Returns: whether client authentication should be required.Returns whether client authentication should be required. |
| public String[] | Returns: a copy of the array of protocols or null if none have been set.Returns a copy of the array of protocols or null if none have been set. |
| public final List | Returns: null or an immutable list of non-nullSNIServerNamesReturns a |
| public String[] | Returns: an array of signature schemeStrings or null if
none have been set. For non-null returns, this method will
return a new array each time it is invoked. The array is
ordered based on signature scheme preference, with the first
entry being the most preferred. Providers should ignore unknown
signature scheme names while establishing the SSL/TLS/DTLS
connections.Returns a prioritized array of signature scheme names that can be used over the SSL/TLS/DTLS protocols. |
| public final Collection | Returns: null or an immutable collection of non-nullSNIMatchersReturns a |
| public final boolean | Returns: whether local cipher suites order in#getCipherSuites
should be honored during SSL/TLS/DTLS handshaking.Returns whether the local cipher suites preference should be honored. |
| public boolean | Returns: whether client authentication should be requested.Returns whether client authentication should be requested. |
| public void | setAlgorithmConstraints(AlgorithmConstraints
the algorithm constraints (or null) constraints)Sets the cryptographic algorithm constraints, which will be used in addition to any configured by the runtime environment. |
| public void | setApplicationProtocols(String[]
an ordered array of application protocols,
with protocols)protocols[0] being the most preferred.
If the array is empty (zero-length), protocol
indications will not be used.Sets the prioritized array of application-layer protocol names that can be negotiated over the SSL/TLS/DTLS protocols. |
| public void | setCipherSuites(String[]
the array of ciphersuites (or null). Note that the
standard list of cipher suite names may be found in the
JSSE Cipher Suite Names section of the Java Security Standard
Algorithm Names Specification. Providers may support cipher suite
names not found in this list or might not use the recommended name
for a certain cipher suite. cipherSuites)Sets the array of ciphersuites. |
| public void | setEnableRetransmissions(boolean
true indicates that DTLS handshake retransmissions
should be enabled; false indicates that DTLS handshake
retransmissions should be disabledSets whether DTLS handshake retransmissions should be enabled. |
| public void | setEndpointIdentificationAlgorithm(String
The standard string name of the endpoint
identification algorithm (or null).
See the
Java Security Standard Algorithm Names document
for information about standard algorithm names. algorithm)Sets the endpoint identification algorithm. |
| public void | setMaximumPacketSize(int
the maximum expected network packet size in bytes, or
maximumPacketSize)0 to use the implicit size that is automatically
specified by the underlying implementation.Sets the maximum expected network packet size in bytes for SSL/TLS/DTLS records. |
| public void | setNamedGroups(String[]
an ordered array of key exchange named group names
with the first entry being the most preferred, or namedGroups)null.
This method will make a copy of this array. Providers should
ignore unknown named group scheme names while establishing the
SSL/TLS/DTLS connections.Sets the prioritized array of key exchange named groups names that can be used over the SSL/TLS/DTLS protocols. |
| public void | setNeedClientAuth(boolean
whether client authentication should be required needClientAuth)Sets whether client authentication should be required. |
| public void | |
| public final void | setServerNames(List<SNIServerName>
the list of desired serverNames)SNIServerNames (or null)Sets the desired |
| public void | setSignatureSchemes(String[]
an ordered array of signature scheme names with
the first entry being the most preferred, or signatureSchemes)null. This
method will make a copy of this array. Providers should ignore
unknown signature scheme names while establishing the
SSL/TLS/DTLS connections.Sets the prioritized array of signature scheme names that can be used over the SSL/TLS/DTLS protocols. |
| public final void | setSNIMatchers(Collection<SNIMatcher>
the collection of matchers)SNIMatchers (or null)Sets the |
| public final void | setUseCipherSuitesOrder(boolean
whether local cipher suites order in
honorOrder)#getCipherSuites should be honored during
SSL/TLS/DTLS handshaking.Sets whether the local cipher suites preference should be honored. |
| public void | setWantClientAuth(boolean
whether client authentication should be requested wantClientAuth)Sets whether client authentication should be requested. |
| algorithmConstraints | back to summary |
|---|---|
| private AlgorithmConstraints algorithmConstraints | |
| applicationProtocols | back to summary |
|---|---|
| private String[] applicationProtocols | |
| cipherSuites | back to summary |
|---|---|
| private String[] cipherSuites | |
| enableRetransmissions | back to summary |
|---|---|
| private boolean enableRetransmissions | |
| identificationAlgorithm | back to summary |
|---|---|
| private String identificationAlgorithm | |
| maximumPacketSize | back to summary |
|---|---|
| private int maximumPacketSize | |
| namedGroups | back to summary |
|---|---|
| private String[] namedGroups | |
| needClientAuth | back to summary |
|---|---|
| private boolean needClientAuth | |
| preferLocalCipherSuites | back to summary |
|---|---|
| private boolean preferLocalCipherSuites | |
| protocols | back to summary |
|---|---|
| private String[] protocols | |
| signatureSchemes | back to summary |
|---|---|
| private String[] signatureSchemes | |
| sniMatchers | back to summary |
|---|---|
| private Collection<SNIMatcher> sniMatchers | |
| sniNames | back to summary |
|---|---|
| private List<SNIServerName> sniNames | |
| wantClientAuth | back to summary |
|---|---|
| private boolean wantClientAuth | |
| SSLParameters | back to summary |
|---|---|
| public SSLParameters() Constructs SSLParameters.
The values of cipherSuites, protocols, cryptographic algorithm
constraints, endpoint identification algorithm, signature schemes,
server names and server name matchers are set to | |
| SSLParameters | back to summary |
|---|---|
| public SSLParameters(String[] cipherSuites) Constructs SSLParameters from the specified array of ciphersuites.
Calling this constructor is equivalent to calling the no-args
constructor followed by
| |
| SSLParameters | back to summary |
|---|---|
| public SSLParameters(String[] cipherSuites, String[] protocols) Constructs SSLParameters from the specified array of ciphersuites and protocols.
Calling this constructor is equivalent to calling the no-args
constructor followed by
| |
| clone | back to summary |
|---|---|
| private static String[] clone(String[] s) | |
| getAlgorithmConstraints | back to summary |
|---|---|
| public AlgorithmConstraints getAlgorithmConstraints() Returns the cryptographic algorithm constraints.
| |
| getApplicationProtocols | back to summary |
|---|---|
| public String[] getApplicationProtocols() Returns a prioritized array of application-layer protocol names that can be negotiated over the SSL/TLS/DTLS protocols. The array could be empty (zero-length), in which case protocol indications will not be used. This method will return a new array each time it is invoked.
| |
| getCipherSuites | back to summary |
|---|---|
| public String[] getCipherSuites() Returns a copy of the array of ciphersuites or null if none have been set. The returned array includes cipher suites from the list of standard cipher suite names in the JSSE Cipher Suite Names section of the Java Security Standard Algorithm Names Specification, and may also include other cipher suites that the provider supports.
| |
| getEnableRetransmissions | back to summary |
|---|---|
| public boolean getEnableRetransmissions() Returns whether DTLS handshake retransmissions should be enabled. This method only applies to DTLS.
| |
| getEndpointIdentificationAlgorithm | back to summary |
|---|---|
| public String getEndpointIdentificationAlgorithm() Gets the endpoint identification algorithm.
| |
| getMaximumPacketSize | back to summary |
|---|---|
| public int getMaximumPacketSize() Returns the maximum expected network packet size in bytes for SSL/TLS/DTLS records. API Note The implicit size may not be a fixed value, especially for a DTLS protocols implementation. Implementation Note For SSL/TLS/DTLS connections, the underlying provider
should calculate and specify the implicit value of the
maximum expected network packet size if it is not
configured explicitly. For any connection populated
object, this method should never return An implementation should attempt to comply with the maximum packet size configuration. However, if the maximum packet size is too small to hold a minimal record, an implementation may try to generate as minimal records as possible. This may cause a generated packet to be larger than the maximum packet size.
| |
| getNamedGroups | back to summary |
|---|---|
| public String[] getNamedGroups() Returns a prioritized array of key exchange named groups names that can be used over the SSL/TLS/DTLS protocols. Note that the standard list of key exchange named groups are defined in the Named Groups section of the Java Security Standard Algorithm Names Specification. Providers may support named groups not defined in this list or may not use the recommended name for a certain named group. The set of named groups that will be used over the SSL/TLS/DTLS connections is determined by the returned array of this method and the underlying provider-specific default named groups.
If the returned array is If the returned array is empty (zero-length), then the named group negotiation mechanism is turned off for SSL/TLS/DTLS protocols, and the connections may not be able to be established if the negotiation mechanism is required by a certain SSL/TLS/DTLS protocol. This parameter will override the underlying provider-specific default name groups.
If the returned array is not
This method returns the most recent value passed to
API Note Note that a provider may not have been updated to support this method
and in that case may return Implementation Note The SunJSSE provider supports this method. Implementation Note Note that applications may use the
| |
| getNeedClientAuth | back to summary |
|---|---|
| public boolean getNeedClientAuth() Returns whether client authentication should be required.
| |
| getProtocols | back to summary |
|---|---|
| public String[] getProtocols() Returns a copy of the array of protocols or null if none have been set.
| |
| getServerNames | back to summary |
|---|---|
| public final List Returns a
This method is only useful to For SSL/TLS/DTLS connections, the underlying SSL/TLS/DTLS provider may specify a default value for a certain server name type. In client mode, it is recommended that, by default, providers should include the server name indication whenever the server can be located by a supported server name type.
It is recommended that providers initialize default Server Name
Indications when creating
Socket socket =
sslSocketFactory.createSocket("www.example.com", 443);
or
SSLEngine engine =
sslContext.createSSLEngine("www.example.com", 443);
| |
| getSignatureSchemes | back to summary |
|---|---|
| public String[] getSignatureSchemes() Returns a prioritized array of signature scheme names that can be used over the SSL/TLS/DTLS protocols. Note that the standard list of signature scheme names are defined in the Signature Schemes section of the Java Security Standard Algorithm Names Specification. Providers may support signature schemes not defined in this list or may not use the recommended name for a certain signature scheme. The set of signature schemes that will be used over the SSL/TLS/DTLS connections is determined by the returned array of this method and the underlying provider-specific default signature schemes.
If the returned array is If the returned array is empty (zero-length), then the signature scheme negotiation mechanism is turned off for SSL/TLS/DTLS protocols, and the connections may not be able to be established if the negotiation mechanism is required by a certain SSL/TLS/DTLS protocol. This parameter will override the underlying provider-specific default signature schemes.
If the returned array is not
This method returns the most recent value passed to
API Note Note that a provider may not have been updated to support this method
and in that case may return Implementation Note The SunJSSE provider supports this method. Implementation Note Note that applications may use the
| |
| getSNIMatchers | back to summary |
|---|---|
| public final Collection Returns a
This method is only useful to For better interoperability, providers generally will not define default matchers so that by default servers will ignore the SNI extension and continue the handshake.
| |
| getUseCipherSuitesOrder | back to summary |
|---|---|
| public final boolean getUseCipherSuitesOrder() Returns whether the local cipher suites preference should be honored.
| |
| getWantClientAuth | back to summary |
|---|---|
| public boolean getWantClientAuth() Returns whether client authentication should be requested.
| |
| setAlgorithmConstraints | back to summary |
|---|---|
| public void setAlgorithmConstraints(AlgorithmConstraints constraints) Sets the cryptographic algorithm constraints, which will be used in addition to any configured by the runtime environment.
If the
| |
| setApplicationProtocols | back to summary |
|---|---|
| public void setApplicationProtocols(String[] protocols) Sets the prioritized array of application-layer protocol names that can be negotiated over the SSL/TLS/DTLS protocols. If application-layer protocols are supported by the underlying SSL/TLS implementation, this method configures which values can be negotiated by protocols such as RFC 7301 , the Application Layer Protocol Negotiation (ALPN). If this end of the connection is expected to offer application protocol values, all protocols configured by this method will be sent to the peer.
If this end of the connection is expected to select the application
protocol value, the
The
Implementation Specification This method will make a copy of the
| |
| setCipherSuites | back to summary |
|---|---|
| public void setCipherSuites(String[] cipherSuites) Sets the array of ciphersuites.
| |
| setEnableRetransmissions | back to summary |
|---|---|
| public void setEnableRetransmissions(boolean enableRetransmissions) Sets whether DTLS handshake retransmissions should be enabled. This method only applies to DTLS.
| |
| setEndpointIdentificationAlgorithm | back to summary |
|---|---|
| public void setEndpointIdentificationAlgorithm(String algorithm) Sets the endpoint identification algorithm.
If the
| |
| setMaximumPacketSize | back to summary |
|---|---|
| public void setMaximumPacketSize(int maximumPacketSize) Sets the maximum expected network packet size in bytes for SSL/TLS/DTLS records. API Note It is recommended that if possible, the maximum packet size should not be less than 256 bytes so that small handshake messages, such as HelloVerifyRequests, are not fragmented. Implementation Note If the maximum packet size is too small to hold a minimal record, an implementation may attempt to generate as minimal records as possible. However, this may cause a generated packet to be larger than the maximum packet size.
| |
| setNamedGroups | back to summary |
|---|---|
| public void setNamedGroups(String[] namedGroups) Sets the prioritized array of key exchange named groups names that can be used over the SSL/TLS/DTLS protocols. Note that the standard list of key exchange named groups are defined in the Named Groups section of the Java Security Standard Algorithm Names Specification. Providers may support named groups not defined in this list or may not use the recommended name for a certain named group.
The set of named groups that will be used over the SSL/TLS/DTLS
connections is determined by the input parameter API Note Note that a provider may not have been updated to support this method and in that case may ignore the named groups that are set. Implementation Note The SunJSSE provider supports this method.
| |
| setNeedClientAuth | back to summary |
|---|---|
| public void setNeedClientAuth(boolean needClientAuth) Sets whether client authentication should be required. Calling
this method clears the
| |
| setProtocols | back to summary |
|---|---|
| public void setProtocols(String[] protocols) Sets the array of protocols.
| |
| setServerNames | back to summary |
|---|---|
| public final void setServerNames(List<SNIServerName> serverNames) Sets the desired
This method is only useful to
Note that the
| |
| setSignatureSchemes | back to summary |
|---|---|
| public void setSignatureSchemes(String[] signatureSchemes) Sets the prioritized array of signature scheme names that can be used over the SSL/TLS/DTLS protocols. Note that the standard list of signature scheme names are defined in the Signature Schemes section of the Java Security Standard Algorithm Names Specification. Providers may support signature schemes not defined in this list or may not use the recommended name for a certain signature scheme.
The set of signature schemes that will be used over the SSL/TLS/DTLS
connections is determined by the input parameter API Note Note that a provider may not have been updated to support this method and in that case may ignore the schemes that are set. Implementation Note The SunJSSE provider supports this method.
| |
| setSNIMatchers | back to summary |
|---|---|
| public final void setSNIMatchers(Collection<SNIMatcher> matchers) Sets the
This method is only useful to
Note that the
| |
| setUseCipherSuitesOrder | back to summary |
|---|---|
| public final void setUseCipherSuitesOrder(boolean honorOrder) Sets whether the local cipher suites preference should be honored.
| |
| setWantClientAuth | back to summary |
|---|---|
| public void setWantClientAuth(boolean wantClientAuth) Sets whether client authentication should be requested. Calling
this method clears the
| |