Most visited

Recently visited

Added in API level 1

SSLContext

public class SSLContext
extends Object

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


这个类的实例代表一个安全的套接字协议实现,充当安全套接字工厂或SSLEngine的工厂。 该类使用一组可选的密钥和信任管理器以及安全随机字节的来源进行初始化。

Android提供以下 SSLContext协议:

Name Supported (API Levels)
Default 10+
SSL 10+
SSLv3 10+
TLS 1+
TLSv1 10+
TLSv1.1 16+
TLSv1.2 16+
This protocol is described in the SSLContext section of the Java Cryptography Architecture Standard Algorithm Name Documentation.

Summary

Protected constructors

SSLContext(SSLContextSpi contextSpi, Provider provider, String protocol)

创建一个SSLContext对象。

Public methods

final SSLEngine createSSLEngine()

使用此上下文创建一个新的 SSLEngine

final SSLEngine createSSLEngine(String peerHost, int peerPort)

使用此上下文使用咨询对等信息创建新的 SSLEngine

final SSLSessionContext getClientSessionContext()

返回客户端会话上下文,该上下文代表客户端SSL套接字握手阶段期间可用的SSL会话集。

static SSLContext getDefault()

返回默认的SSL上下文。

final SSLParameters getDefaultSSLParameters()

返回指示此SSL上下文的默认设置的SSLParameters的副本。

static SSLContext getInstance(String protocol)

返回实现指定安全套接字协议的 SSLContext对象。

static SSLContext getInstance(String protocol, String provider)

返回实现指定安全套接字协议的 SSLContext对象。

static SSLContext getInstance(String protocol, Provider provider)

返回实现指定安全套接字协议的 SSLContext对象。

final String getProtocol()

返回此 SSLContext对象的协议名称。

final Provider getProvider()

返回此 SSLContext对象的提供者。

final SSLSessionContext getServerSessionContext()

返回服务器会话上下文,该上下文表示可用于服务器端SSL套接字的握手阶段的SSL会话集。

final SSLServerSocketFactory getServerSocketFactory()

为此上下文返回一个 ServerSocketFactory对象。

final SSLSocketFactory getSocketFactory()

为此上下文返回一个 SocketFactory对象。

final SSLParameters getSupportedSSLParameters()

返回SSLParameters的副本,指示此SSL上下文支持的设置。

final void init(KeyManager[] km, TrustManager[] tm, SecureRandom random)

初始化此上下文。

static void setDefault(SSLContext context)

设置默认的SSL上下文。

Inherited methods

From class java.lang.Object

Protected constructors

SSLContext

Added in API level 1
SSLContext (SSLContextSpi contextSpi, 
                Provider provider, 
                String protocol)

创建一个SSLContext对象。

Parameters
contextSpi SSLContextSpi: the delegate
provider Provider: the provider
protocol String: the protocol

Public methods

createSSLEngine

Added in API level 1
SSLEngine createSSLEngine ()

使用此上下文创建新的 SSLEngine

使用这种工厂方法的应用程序没有提供内部会话重用策略的提示。 如果需要提示,应该使用createSSLEngine(String, int)

某些密码套件(如Kerberos)需要远程主机名信息,在这种情况下,不应使用此工厂方法。

Returns
SSLEngine the SSLEngine object
Throws
UnsupportedOperationException if the underlying provider does not implement the operation.
IllegalStateException if the SSLContextImpl requires initialization and the init() has not been called

createSSLEngine

Added in API level 1
SSLEngine createSSLEngine (String peerHost, 
                int peerPort)

使用此上下文使用咨询对等信息创建新的 SSLEngine

使用此工厂方法的应用程序为内部会话重用策略提供了提示。

某些密码套件(如Kerberos)需要远程主机名信息,在这种情况下,需要指定peerHost。

Parameters
peerHost String: the non-authoritative name of the host
peerPort int: the non-authoritative port
Returns
SSLEngine the new SSLEngine object
Throws
UnsupportedOperationException if the underlying provider does not implement the operation.
IllegalStateException if the SSLContextImpl requires initialization and the init() has not been called

getClientSessionContext

Added in API level 1
SSLSessionContext getClientSessionContext ()

返回客户端会话上下文,该上下文代表客户端SSL套接字握手阶段期间可用的SSL会话集。

在某些环境中,此上下文可能不可用,在这种情况下,此方法返回null。 例如,当底层SSL提供程序未提供SSLSessionContext接口的实现时,此方法返回null。 否则返回非空会话上下文。

Returns
SSLSessionContext client session context bound to this SSL context

getDefault

Added in API level 9
SSLContext getDefault ()

返回默认的SSL上下文。

如果使用SSLContext.setDefault()方法设置了默认上下文,则会返回该上下文。 否则,此方法的第一个调用会触发调用SSLContext.getInstance("Default") 如果成功,则将该对象作为默认SSL上下文并返回。

默认上下文立即可用,不需要 initialization

Returns
SSLContext the default SSL context
Throws
NoSuchAlgorithmException if the SSLContext.getInstance() call fails

getDefaultSSLParameters

Added in API level 9
SSLParameters getDefaultSSLParameters ()

返回指示此SSL上下文的默认设置的SSLParameters的副本。

参数将始终将密码套件和协议数组设置为非空值。

Returns
SSLParameters a copy of the SSLParameters object with the default settings
Throws
UnsupportedOperationException if the default SSL parameters could not be obtained.

getInstance

Added in API level 1
SSLContext getInstance (String protocol)

返回实现指定安全套接字协议的 SSLContext对象。

该方法遍历注册安全提供程序的列表,从最优先的提供程序开始。 返回一个新的SSLContext对象,该对象封装来自支持指定协议的第一个Provider的SSLContextSpi实现。

请注意,注册供应商列表可能通过 Security.getProviders()方法检索。

Parameters
protocol String: the standard name of the requested protocol. See the SSLContext section in the Java Cryptography Architecture Standard Algorithm Name Documentation for information about standard protocol names.
Returns
SSLContext the new SSLContext object.
Throws
NoSuchAlgorithmException if no Provider supports a TrustManagerFactorySpi implementation for the specified protocol.
NullPointerException if protocol is null.

也可以看看:

getInstance

Added in API level 1
SSLContext getInstance (String protocol, 
                String provider)

返回实现指定安全套接字协议的 SSLContext对象。

返回封装指定提供程序的SSLContextSpi实现的新SSLContext对象。 指定的提供者必须在安全提供者列表中注册。

请注意,注册供应商列表可能通过 Security.getProviders()方法检索。

Parameters
protocol String: the standard name of the requested protocol. See the SSLContext section in the Java Cryptography Architecture Standard Algorithm Name Documentation for information about standard protocol names.
provider String: the name of the provider.
Returns
SSLContext the new SSLContext object.
Throws
NoSuchAlgorithmException if a SSLContextSpi implementation for the specified protocol is not available from the specified provider.
NoSuchProviderException if the specified provider is not registered in the security provider list.
IllegalArgumentException if the provider name is null or empty.
NullPointerException if protocol is null.

也可以看看:

getInstance

Added in API level 1
SSLContext getInstance (String protocol, 
                Provider provider)

返回实现指定安全套接字协议的 SSLContext对象。

返回封装指定Provider对象的SSLContextSpi实现的新SSLContext对象。 请注意,指定的Provider对象不必在提供程序列表中注册。

Parameters
protocol String: the standard name of the requested protocol. See the SSLContext section in the Java Cryptography Architecture Standard Algorithm Name Documentation for information about standard protocol names.
provider Provider: an instance of the provider.
Returns
SSLContext the new SSLContext object.
Throws
NoSuchAlgorithmException if a KeyManagerFactorySpi implementation for the specified protocol is not available from the specified Provider object.
IllegalArgumentException if the provider name is null.
NullPointerException if protocol is null.

也可以看看:

getProtocol

Added in API level 1
String getProtocol ()

返回此 SSLContext对象的协议名称。

这与在创建此 SSLContext对象的 getInstance调用之一中指定的名称相同。

Returns
String the protocol name of this SSLContext object.

getProvider

Added in API level 1
Provider getProvider ()

返回此 SSLContext对象的提供者。

Returns
Provider the provider of this SSLContext object

getServerSessionContext

Added in API level 1
SSLSessionContext getServerSessionContext ()

返回服务器会话上下文,该上下文表示可用于服务器端SSL套接字的握手阶段的SSL会话集。

在某些环境中,此上下文可能不可用,在这种情况下,此方法返回null。 例如,当底层SSL提供程序未提供SSLSessionContext接口的实现时,此方法返回null。 否则返回非空会话上下文。

Returns
SSLSessionContext server session context bound to this SSL context

getServerSocketFactory

Added in API level 1
SSLServerSocketFactory getServerSocketFactory ()

为此上下文返回一个 ServerSocketFactory对象。

Returns
SSLServerSocketFactory the ServerSocketFactory object
Throws
IllegalStateException if the SSLContextImpl requires initialization and the init() has not been called

getSocketFactory

Added in API level 1
SSLSocketFactory getSocketFactory ()

为此上下文返回一个 SocketFactory对象。

Returns
SSLSocketFactory the SocketFactory object
Throws
IllegalStateException if the SSLContextImpl requires initialization and the init() has not been called

getSupportedSSLParameters

Added in API level 9
SSLParameters getSupportedSSLParameters ()

返回SSLParameters的副本,指示此SSL上下文支持的设置。

参数将始终将密码套件和协议数组设置为非空值。

Returns
SSLParameters a copy of the SSLParameters object with the supported settings
Throws
UnsupportedOperationException if the supported SSL parameters could not be obtained.

init

Added in API level 1
void init (KeyManager[] km, 
                TrustManager[] tm, 
                SecureRandom random)

初始化此上下文。 前两个参数中的任何一个都可能为空,在这种情况下,已安装的安全提供程序将被搜索相应工厂的最高优先级实施。 同样,安全随机参数可能为空,在这种情况下将使用默认实现。

只使用数组中特定键和/或信任管理器实现类型的第一个实例。 (例如,将只使用数组中的第一个javax.net.ssl.X509KeyManager。)

Parameters
km KeyManager: the sources of authentication keys or null
tm TrustManager: the sources of peer authentication trust decisions or null
random SecureRandom: the source of randomness for this generator or null
Throws
KeyManagementException if this operation fails

setDefault

Added in API level 9
void setDefault (SSLContext context)

设置默认的SSL上下文。 它将通过后续调用返回getDefault() 默认上下文必须立即可用,不需要initialization

Parameters
context SSLContext: the SSLContext
Throws
NullPointerException if context is null
SecurityException if a security manager exists and its checkPermission method does not allow SSLPermission("setDefaultSSLContext")

Hooray!