JavaTM Platform
Standard Ed. 6

javax.net.ssl
クラス SSLContext

java.lang.Object
  上位を拡張 javax.net.ssl.SSLContext

public class SSLContext
extends Object

このクラスのインスタンスは、セキュアソケットファクトリまたは SSLEngine のファクトリとして機能する、セキュアソケットプロトコルの実装を表します。このクラスは、鍵マネージャーと信頼マネージャーの任意の組み合わせ、および安全な乱数バイトのソースを使用して初期化されます。

導入されたバージョン:
1.4

コンストラクタの概要
protected SSLContext(SSLContextSpi contextSpi, Provider provider, String protocol)
          SSLContext オブジェクトを生成します。
 
メソッドの概要
 SSLEngine createSSLEngine()
          このコンテキストを使用して、新しい SSLEngine を作成します。
 SSLEngine createSSLEngine(String peerHost, int peerPort)
          このコンテキストと補足的なピア情報を使用して、新しい SSLEngine を作成します。
 SSLSessionContext getClientSessionContext()
          クライアントセッションコンテキストを返します。
static SSLContext getDefault()
          デフォルトの SSL コンテキストを返します。
 SSLParameters getDefaultSSLParameters()
          この SSL コンテキストのデフォルト設定を示す SSLParameters のコピーを返します。
static SSLContext getInstance(String protocol)
          指定されたセキュアソケットプロトコルを実装する SSLContext オブジェクトを返します。
static SSLContext getInstance(String protocol, Provider provider)
          指定されたセキュアソケットプロトコルを実装する SSLContext オブジェクトを返します。
static SSLContext getInstance(String protocol, String provider)
          指定されたセキュアソケットプロトコルを実装する SSLContext オブジェクトを返します。
 String getProtocol()
          この SSLContext のプロトコル名を返します。
 Provider getProvider()
          この SSLContext オブジェクトのプロバイダを返します。
 SSLSessionContext getServerSessionContext()
          サーバーセッションコンテキストを返します。
 SSLServerSocketFactory getServerSocketFactory()
          このコンテキストの ServerSocketFactory オブジェクトを返します。
 SSLSocketFactory getSocketFactory()
          このコンテキストの SocketFactory オブジェクトを返します。
 SSLParameters getSupportedSSLParameters()
          この SSL コンテキストでサポートされる設定を示す SSLParameters のコピーを返します。
 void init(KeyManager[] km, TrustManager[] tm, SecureRandom random)
          このコンテキストを初期化します。
static void setDefault(SSLContext context)
          デフォルトの SSL コンテキストを設定します。
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

コンストラクタの詳細

SSLContext

protected SSLContext(SSLContextSpi contextSpi,
                     Provider provider,
                     String protocol)
SSLContext オブジェクトを生成します。

パラメータ:
contextSpi - 委譲先
provider - プロバイダ
protocol - プロトコル
メソッドの詳細

getDefault

public static SSLContext getDefault()
                             throws NoSuchAlgorithmException
デフォルトの SSL コンテキストを返します。

SSLContext.setDefault() メソッドを使用してデフォルトコンテキストが設定されていた場合は、そのデフォルトコンテキストが返されます。そうでない場合は、このメソッドを最初に呼び出したときに SSLContext.getInstance("Default") の呼び出しがトリガーされます。成功すると、そのオブジェクトがデフォルトの SSL コンテキストになり、返されます。

デフォルトコンテキストはすぐに使用可能となり、初期化する必要はありません。

戻り値:
デフォルトの SSL コンテキスト
例外:
NoSuchAlgorithmException - SSLContext.getInstance() の呼び出しに失敗した場合
導入されたバージョン:
1.6

setDefault

public static void setDefault(SSLContext context)
デフォルトの SSL コンテキストを設定します。これは、後続の getDefault() の呼び出しで返されます。デフォルトコンテキストはすぐに使用可能となる必要があり、初期化を必要としてはいけません。

パラメータ:
context - SSLContext
例外:
NullPointerException - context が null の場合
SecurityException - セキュリティーマネージャーが存在し、セキュリティーマネージャーの checkPermission メソッドが SSLPermission("setDefaultSSLContext") を許可しない場合
導入されたバージョン:
1.6

getInstance

public static SSLContext getInstance(String protocol)
                              throws NoSuchAlgorithmException
指定されたセキュアソケットプロトコルを実装する SSLContext オブジェクトを返します。

このメソッドは、最優先のプロバイダから順に、登録済みのセキュリティープロバイダのリストをトラバースします。指定されたアルゴリズムをサポートする最初のプロバイダの SSLContextSpi 実装をカプセル化する新しい SSLContext オブジェクトが返されます。

登録済みプロバイダのリストは、Security.getProviders() メソッド経由で取得できます。

パラメータ:
protocol - 要求されたプロトコルの標準名 標準のプロトコル名については、『Java Secure Socket Extension リファレンスガイド』の付録 A を参照。
戻り値:
新しい SSLContext オブジェクト。
例外:
NoSuchAlgorithmException - 指定したプロトコルの TrustManagerFactorySpi の実装をサポートするプロバイダが存在しない場合
関連項目:
Provider

getInstance

public static SSLContext getInstance(String protocol,
                                     String provider)
                              throws NoSuchAlgorithmException,
                                     NoSuchProviderException
指定されたセキュアソケットプロトコルを実装する SSLContext オブジェクトを返します。

指定されたプロバイダの SSLContextSpi 実装をカプセル化する新しい SSLContext オブジェクトが返されます。指定したプロバイダは、セキュリティープロバイダリストに登録する必要があります。

登録済みプロバイダのリストは、Security.getProviders() メソッド経由で取得できます。

パラメータ:
protocol - 要求されたプロトコルの標準名 標準のプロトコル名については、『Java Secure Socket Extension リファレンスガイド』の付録 A を参照。
provider - プロバイダ名
戻り値:
新しい SSLContext オブジェクト。
例外:
NoSuchAlgorithmException - 指定されたプロバイダに、指定されたプロトコルの SSLContextSpi の実装がない場合
NoSuchProviderException - 指定したプロバイダがセキュリティープロバイダリストに登録されていない場合。
IllegalArgumentException - プロバイダの名前が null か空の場合
関連項目:
Provider

getInstance

public static SSLContext getInstance(String protocol,
                                     Provider provider)
                              throws NoSuchAlgorithmException
指定されたセキュアソケットプロトコルを実装する SSLContext オブジェクトを返します。

指定された Provider オブジェクトの SSLContextSpi 実装をカプセル化する新しい SSLContext オブジェクトが返されます。指定した Provider オブジェクトは、プロバイダリストに登録する必要はありません。

パラメータ:
protocol - 要求されたプロトコルの標準名 標準のプロトコル名については、『Java Secure Socket Extension リファレンスガイド』の付録 A を参照。
provider - プロバイダのインスタンス。
戻り値:
新しい SSLContext オブジェクト。
例外:
NoSuchAlgorithmException - 指定された Provider オブジェクトに指定されたプロトコルの KeyManagerFactorySpi の実装がない場合。
IllegalArgumentException - プロバイダ名が null の場合。
関連項目:
Provider

getProtocol

public final String getProtocol()
この SSLContext のプロトコル名を返します。

この SSLContext オブジェクトを生成した getInstance 呼び出しで指定されたアルゴリズム名が返されます。

戻り値:
この SSLContext オブジェクトのプロトコル名

getProvider

public final Provider getProvider()
この SSLContext オブジェクトのプロバイダを返します。

戻り値:
この SSLContext オブジェクトのプロバイダ

init

public final void init(KeyManager[] km,
                       TrustManager[] tm,
                       SecureRandom random)
                throws KeyManagementException
このコンテキストを初期化します。最初の 2 つのパラメータのどちらかを null にした場合は、インストールされているセキュリティープロバイダから、該当するファクトリのもっとも優先順位の高い実装が検索されます。同様に、SecureRandom パラメータを null にした場合は、デフォルトの実装が使用されます。  

鍵マネージャーや信頼マネージャーは、配列内に最初に配置されている実装型のインスタンスだけが使用されます (たとえば、配列内の最初の javax.net.ssl.X509KeyManager だけが使用される)。

パラメータ:
km - 認証キーのソースまたは null
tm - ピア認証の信頼を判断するソース、または null
random - このジェネレータの乱数発生の元、または null
例外:
KeyManagementException - この処理が失敗した場合

getSocketFactory

public final SSLSocketFactory getSocketFactory()
このコンテキストの SocketFactory オブジェクトを返します。

戻り値:
SocketFactory オブジェクト
例外:
IllegalStateException - SSLContextImpl が初期化を必要とし、init() が呼び出されていなかった場合

getServerSocketFactory

public final SSLServerSocketFactory getServerSocketFactory()
このコンテキストの ServerSocketFactory オブジェクトを返します。

戻り値:
ServerSocketFactory オブジェクト
例外:
IllegalStateException - SSLContextImpl が初期化を必要とし、init() が呼び出されていなかった場合

createSSLEngine

public final SSLEngine createSSLEngine()
このコンテキストを使用して、新しい SSLEngine を作成します。  

このファクトリメソッドを使用しているアプリケーションは、内部セッションの再利用に関するヒントを提供しません。ヒントを提供したい場合は、代わりに createSSLEngine(String, int) を使用してください。  

Kerberos など、リモートホスト名の情報を必要とする暗号化方式群もあります。 この場合は、このファクトリメソッドを使用しないでください。

戻り値:
SSLEngine オブジェクト
例外:
UnsupportedOperationException - 基本となるプロバイダがこの操作を実装していない場合。
IllegalStateException - SSLContextImpl が初期化を必要とし、init() が呼び出されていなかった場合
導入されたバージョン:
1.5

createSSLEngine

public final SSLEngine createSSLEngine(String peerHost,
                                       int peerPort)
このコンテキストと補足的なピア情報を使用して、新しい SSLEngine を作成します。  

このファクトリメソッドを使用しているアプリケーションは、内部セッションの再利用に関するヒントを提供します。  

Kerberos など、リモートホスト名の情報を必要とする暗号化方式群もあります。 この場合は、peerHost を指定する必要があります。

パラメータ:
peerHost - 任意指定のホスト名
peerPort - 任意指定のポート
戻り値:
新しい SSLEngine オブジェクト
例外:
UnsupportedOperationException - 基本となるプロバイダがこの操作を実装していない場合。
IllegalStateException - SSLContextImpl が初期化を必要とし、init() が呼び出されていなかった場合
導入されたバージョン:
1.5

getServerSessionContext

public final SSLSessionContext getServerSessionContext()
サーバーセッションコンテキストを返します。このコンテキストには、サーバー側 SSL ソケットのハンドシェーク中に使用できる SSL セッションが指定されています。  

コンテキストは、一部の環境では取得できません。その場合は null を返します。たとえば、基本となる SSL プロバイダが SSLSessionContext インタフェースを実装していない場合は、null が返されます。実装している場合は、null 以外のセッションコンテキストが返されます。

戻り値:
この SSL コンテキストにバインドされているサーバーセッションコンテキスト

getClientSessionContext

public final SSLSessionContext getClientSessionContext()
クライアントセッションコンテキストを返します。このコンテキストには、クライアント側 SSL ソケットのハンドシェーク中に使用できる SSL セッションが指定されています。  

コンテキストは、一部の環境では取得できません。その場合は null を返します。たとえば、基本となる SSL プロバイダが SSLSessionContext インタフェースを実装していない場合は、null が返されます。実装している場合は、null 以外のセッションコンテキストが返されます。

戻り値:
この SSL コンテキストにバインドされているクライアントセッションコンテキスト

getDefaultSSLParameters

public final SSLParameters getDefaultSSLParameters()
この SSL コンテキストのデフォルト設定を示す SSLParameters のコピーを返します。

パラメータは、null 値以外に設定された暗号化方式群とプロトコル配列を常に持ちます。

戻り値:
デフォルト設定を持つ SSLParameters オブジェクトのコピー
例外:
UnsupportedOperationException - デフォルトの SSL パラメータを取得できなかった場合
導入されたバージョン:
1.6

getSupportedSSLParameters

public final SSLParameters getSupportedSSLParameters()
この SSL コンテキストでサポートされる設定を示す SSLParameters のコピーを返します。

パラメータは、null 値以外に設定された暗号化方式群とプロトコル配列を常に持ちます。

戻り値:
サポートされる設定を持つ SSLParameters オブジェクトのコピー
例外:
UnsupportedOperationException - サポートされる SSL パラメータを取得できなかった場合。
導入されたバージョン:
1.6

JavaTM Platform
Standard Ed. 6

バグの報告と機能のリクエスト
さらに詳しい API リファレンスおよび開発者ドキュメントについては、Java SE 開発者用ドキュメントを参照してください。開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、およびコード実例が含まれています。

Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。