Most visited

Recently visited

Added in API level 9

SSLParameters

public class SSLParameters
extends Object

java.lang.Object
   ↳ javax.net.ssl.SSLParameters


封装SSL / TLS连接的参数。 参数是在SSL / TLS握手中要接受的密码组列表,要允许的协议列表,SSL / TLS握手期间的端点识别算法,服务器名称指示(SNI),算法约束以及SSL / TLS服务器应请求或要求客户端认证等。

可以通过此类中的构造函数创建SSLParameters。 对象也可以使用所获得的getSSLParameters()的方法SSLSocketSSLServerSocketSSLEnginegetDefaultSSLParameters()getSupportedSSLParameters()的方法SSLContext

SSLParameters可以通过方法 SSLSocket.setSSLParameters()SSLServerSocket.setSSLParameters()SSLEngine.setSSLParameters()应用于连接。

也可以看看:

Summary

Public constructors

SSLParameters()

构造SSLParameters。

SSLParameters(String[] cipherSuites)

从指定的密码套件数组构造SSLParameters。

SSLParameters(String[] cipherSuites, String[] protocols)

从指定的密码套件和协议数组构造SSLParameters。

Public methods

AlgorithmConstraints getAlgorithmConstraints()

返回加密算法约束。

String[] getCipherSuites()

返回密码组数组的副本;如果没有设置,则返回null。

String getEndpointIdentificationAlgorithm()

获取端点识别算法。

boolean getNeedClientAuth()

返回是否需要客户端身份验证。

String[] getProtocols()

返回协议数组的副本,如果没有设置,则返回null。

final Collection<SNIMatcher> getSNIMatchers()

返回 Collection包含所有 SNIMatcher •服务器名称指示的(SNI)的参数,如果没有则为null已设置。

final List<SNIServerName> getServerNames()

返回 List包含所有 SNIServerName •服务器名称指示的(SNI)的参数,如果没有则为null已设置。

final boolean getUseCipherSuitesOrder()

返回是否应该遵守本地密码套件首选项。

boolean getWantClientAuth()

返回是否应请求客户端身份验证。

void setAlgorithmConstraints(AlgorithmConstraints constraints)

设置加密算法约束,除了由运行时环境配置的约束之外,还将使用这些约束。

void setCipherSuites(String[] cipherSuites)

设置密码套件的数组。

void setEndpointIdentificationAlgorithm(String algorithm)

设置端点识别算法。

void setNeedClientAuth(boolean needClientAuth)

设置是否需要客户端身份验证。

void setProtocols(String[] protocols)

设置协议数组。

final void setSNIMatchers(Collection<SNIMatcher> matchers)

设置服务器名称指示(SNI)参数的 SNIMatcher

final void setServerNames(List<SNIServerName> serverNames)

设置服务器名称指示(SNI)参数的所需 SNIServerName

final void setUseCipherSuitesOrder(boolean honorOrder)

设置是否应该遵守本地密码套件首选项。

void setWantClientAuth(boolean wantClientAuth)

设置是否应请求客户端身份验证。

Inherited methods

From class java.lang.Object

Public constructors

SSLParameters

Added in API level 9
SSLParameters ()

构造SSLParameters。

cipherSuites,协议,加密算法约束,端点标识算法,服务器名称和服务器名称匹配器的值设置为 null ,useCipherSuitesOrder,wantClientAuth和needClientAuth设置为 false

SSLParameters

Added in API level 9
SSLParameters (String[] cipherSuites)

从指定的密码套件数组构造SSLParameters。

调用这个构造函数等同于调用 setCipherSuites(cipherSuites);后面的无参数构造 setCipherSuites(cipherSuites);

Parameters
cipherSuites String: the array of ciphersuites (or null)

SSLParameters

Added in API level 9
SSLParameters (String[] cipherSuites, 
                String[] protocols)

从指定的密码套件和协议数组构造SSLParameters。

调用这个构造函数等同于调用 setCipherSuites(cipherSuites); setProtocols(protocols);后面的无参数构造 setCipherSuites(cipherSuites); setProtocols(protocols);

Parameters
cipherSuites String: the array of ciphersuites (or null)
protocols String: the array of protocols (or null)

Public methods

getAlgorithmConstraints

Added in API level 24
AlgorithmConstraints getAlgorithmConstraints ()

返回加密算法约束。

Returns
AlgorithmConstraints the cryptographic algorithm constraints, or null if the constraints have not been set

也可以看看:

getCipherSuites

Added in API level 9
String[] getCipherSuites ()

返回密码组数组的副本;如果没有设置,则返回null。

Returns
String[] a copy of the array of ciphersuites or null if none have been set.

getEndpointIdentificationAlgorithm

Added in API level 24
String getEndpointIdentificationAlgorithm ()

获取端点识别算法。

Returns
String the endpoint identification algorithm, or null if none has been set.

也可以看看:

getNeedClientAuth

Added in API level 9
boolean getNeedClientAuth ()

返回是否需要客户端身份验证。

Returns
boolean whether client authentication should be required.

getProtocols

Added in API level 9
String[] getProtocols ()

返回协议数组的副本,如果没有设置,则返回null。

Returns
String[] a copy of the array of protocols or null if none have been set.

getSNIMatchers

Added in API level 24
Collection<SNIMatcher> getSNIMatchers ()

返回 Collection包含所有 SNIMatcher •服务器名称指示的(SNI)的参数,如果没有则为null已设置。

此方法仅对在服务器模式下运行的 SSLSocket s或 SSLEngine有用。

为了获得更好的互操作性,提供商通常不会定义默认匹配器,以便默认情况下服务器将忽略SNI扩展并继续握手。

Returns
Collection<SNIMatcher> null or an immutable collection of non-null SNIMatchers

也可以看看:

getServerNames

Added in API level 24
List<SNIServerName> getServerNames ()

返回 List其中包含服务器名称指示(SNI)参数的所有 SNIServerName ,如果没有设置,则返回null。

此方法仅对在客户端模式下运行的 SSLSocketSSLEngine有用。

对于SSL / TLS连接,底层SSL / TLS提供程序可以为某个服务器名称类型指定默认值。 在客户端模式下,建议默认情况下,只要服务器可以通过支持的服务器名称类型进行定位,提供程序就应该包含服务器名称指示。

建议供应商创建初始化时默认的服务器名称主治SSLSocket / SSLEngine秒。 在以下示例中,服务器名称可以由已使用主机名“www.example.com”初始化并输入SNI_HOST_NAME的实例SNIHostName来表示。

     Socket socket =
         sslSocketFactory.createSocket("www.example.com", 443);
 
or
     SSLEngine engine =
         sslContext.createSSLEngine("www.example.com", 443);
 

Returns
List<SNIServerName> null or an immutable list of non-null SNIServerNames

也可以看看:

getUseCipherSuitesOrder

Added in API level 24
boolean getUseCipherSuitesOrder ()

返回是否应该遵守本地密码套件首选项。

Returns
boolean whether local cipher suites order in #getCipherSuites should be honored during SSL/TLS handshaking.

也可以看看:

getWantClientAuth

Added in API level 9
boolean getWantClientAuth ()

返回是否应请求客户端身份验证。

Returns
boolean whether client authentication should be requested.

setAlgorithmConstraints

Added in API level 24
void setAlgorithmConstraints (AlgorithmConstraints constraints)

设置加密算法约束,除了由运行时环境配置的约束之外,还将使用这些约束。

如果参数 constraints非空,则SSL / TLS握手中使用的每个加密算法,密钥和算法参数都必须由约束条件允许。

Parameters
constraints AlgorithmConstraints: the algorithm constraints (or null)

setCipherSuites

Added in API level 9
void setCipherSuites (String[] cipherSuites)

设置密码套件的数组。

Parameters
cipherSuites String: the array of ciphersuites (or null)

setEndpointIdentificationAlgorithm

Added in API level 24
void setEndpointIdentificationAlgorithm (String algorithm)

设置端点识别算法。

如果参数algorithm非空或非空,则必须在SSL / TLS握手过程中处理端点标识/验证过程。 这是为了防止中间人攻击。

Parameters
algorithm String: The standard string name of the endpoint identification algorithm (or null). See Appendix A in the Java Cryptography Architecture API Specification & Reference for information about standard algorithm names.

也可以看看:

setNeedClientAuth

Added in API level 9
void setNeedClientAuth (boolean needClientAuth)

设置是否需要客户端身份验证。 调用此方法将清除wantClientAuth标志。

Parameters
needClientAuth boolean: whether client authentication should be required

setProtocols

Added in API level 9
void setProtocols (String[] protocols)

设置协议数组。

Parameters
protocols String: the array of protocols (or null)

setSNIMatchers

Added in API level 24
void setSNIMatchers (Collection<SNIMatcher> matchers)

设置服务器名称指示(SNI)参数的 SNIMatcher

此方法仅适用于在服务器模式下运行的 SSLSocketSSLEngine

请注意, matchers集合已被克隆以防止后续修改。

Parameters
matchers Collection: the collection of SNIMatchers (or null)
Throws
NullPointerException if the matchers contains null element
IllegalArgumentException if the matchers contains more than one name of the same name type

也可以看看:

setServerNames

Added in API level 24
void setServerNames (List<SNIServerName> serverNames)

设置服务器名称指示(SNI)参数的所需 SNIServerName

此方法仅适用于在客户端模式下运行的 SSLSocketSSLEngine

请注意, serverNames列表已克隆以防止后续修改。

Parameters
serverNames List: the list of desired SNIServerNames (or null)
Throws
NullPointerException if the serverNames contains null element
IllegalArgumentException if the serverNames contains more than one name of the same name type

也可以看看:

setUseCipherSuitesOrder

Added in API level 24
void setUseCipherSuitesOrder (boolean honorOrder)

设置是否应该遵守本地密码套件首选项。

Parameters
honorOrder boolean: whether local cipher suites order in #getCipherSuites should be honored during SSL/TLS handshaking.

也可以看看:

setWantClientAuth

Added in API level 9
void setWantClientAuth (boolean wantClientAuth)

设置是否应请求客户端身份验证。 调用此方法将清除needClientAuth标志。

Parameters
wantClientAuth boolean: whether client authentication should be requested

Hooray!