クラスExtendedSSLSession
- すべての実装されたインタフェース:
SSLSession
SSLSessionインタフェースを拡張します。- 導入されたバージョン:
- 1.7
-
コンストラクタのサマリー
コンストラクタ -
メソッドのサマリー
修飾子と型メソッド説明byte[]exportKeyingMaterialData(String label, byte[] context, int length) RFC 5705/8446で定義されたアルゴリズムに従って計算されたエクスポート・キーイング・マテリアル(EKM)を生成します。exportKeyingMaterialKey(String keyAlg, String label, byte[] context, int length) RFC 5705/8446で定義されたアルゴリズムに従って計算されたエクスポート・キーイング・マテリアル(EKM)を生成します。abstract String[]ローカル側が使用する、サポートされる署名アルゴリズムの配列を取得します。abstract String[]ピアが使用できる、サポートされる署名アルゴリズムの配列を取得します。要求されたServer Name Indication (SNI)拡張のすべてのSNIServerNameを含むListを取得します。List<byte[]> ハンドシェーク中にサーバーの証明書のステータスを確認するために、クライアントがDERでエンコードされたOCSPレスポンス(RFC 6960で定義されているASN.1型のOCSPResponse)を含むListを返します。クラスオブジェクトで宣言されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait修飾子と型メソッド説明protected Objectclone()このオブジェクトのコピーを作成して、返します。booleanこのオブジェクトと他のオブジェクトが等しいかどうかを示します。protected voidfinalize()削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。最終決定は非推奨であり、将来のリリースで削除される可能性があります。final Class<?> getClass()このObjectの実行時クラスを返します。inthashCode()このオブジェクトに対するハッシュ・コード値を返します。final voidnotify()このオブジェクトのモニターで待機中のスレッドを1つ再開します。final voidこのオブジェクトのモニターで待機中のすべてのスレッドを再開します。toString()オブジェクトの文字列表現を返します。final voidwait()現在のスレッドが目覚めるまで待機します。通常、notifiedまたはinterruptedです。final voidwait(long timeoutMillis) 現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。final voidwait(long timeoutMillis, int nanos) 現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。インタフェースで宣言されたメソッド SSLSession
getApplicationBufferSize, getCipherSuite, getCreationTime, getId, getLastAccessedTime, getLocalCertificates, getLocalPrincipal, getPacketBufferSize, getPeerCertificateChain, getPeerCertificates, getPeerHost, getPeerPort, getPeerPrincipal, getProtocol, getSessionContext, getValue, getValueNames, invalidate, isValid, putValue, removeValue修飾子と型メソッド説明intこのセッションの使用中に想定される最大アプリケーション・データの現在のサイズを取得します。このセッションのすべての接続に使用されるSSL暗号化方式群の名前を返します。longこのセッションが作成された時刻を、UTC 1970年1月1日深夜零時からのミリ秒単位で返します。byte[]getId()このセッションに割り当てられた識別子を返します。longこのセッションがセッション・レベルのインフラストラクチャによって最後にアクセスされた時刻を、UTC 1970年1月1日深夜零時からのミリ秒単位で返します。ハンドシェーク中にピアに送信された証明書を返します。ハンドシェーク中にピアに送信された主体を返します。intこのセッションの使用時に予想される最大のSSL/TLS/DTLSパケットの現在のサイズを取得します。default X509Certificate[]削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。java.security.cert.Certificateの配列を返すSSLSession.getPeerCertificates()メソッドを代わりに使用する必要があります。セッションを定義するときに設定された、ピアの識別情報を返します。このセッションのピア・ホスト名を返します。intこのセッションのピアのポート番号を返します。セッションを定義するときに設定された、ピアの識別情報を返します。このセッションのすべての接続に使用されるプロトコルの標準名を返します。このセッションがバインドされているコンテキストを返します。このセッションのアプリケーション層データ内で、指定された名前にバインドされているオブジェクトを返します。String[]セッションにバインドされているアプリケーション層データ・オブジェクト名の配列を返します。voidセッションを無効にします。booleanisValid()再開や参加が可能な有効なセッションかどうかを返します。void指定されたnameを使用して、指定されたvalueオブジェクトをこのセッションのアプリケーション層データにバインドします。voidremoveValue(String name) セッションのアプリケーション層データで、指定された名前にバインドされたオブジェクトを削除します。
-
コンストラクタの詳細
-
ExtendedSSLSession
public ExtendedSSLSession()サブクラスが呼び出すためのコンストラクタ。
-
-
メソッドの詳細
-
getLocalSupportedSignatureAlgorithms
public abstract String[] getLocalSupportedSignatureAlgorithms()ローカル側が使用する、サポートされる署名アルゴリズムの配列を取得します。ノート: このメソッドは、TLS/DTLS 1.2でデジタル・シグネチャに使用できるシグネチャ・アルゴリズムをピアに示すために使用されます。 1.2より前のTLS/DTLSバージョンでは意味がありません。
署名アルゴリズム名は、標準のJavaセキュリティ名(「SHA1withRSA」、「SHA256withECDSA」など)である必要があります。 標準的なアルゴリズム名については、「Javaセキュリティ標準アルゴリズム名」のドキュメントを参照してください。
ノート: ローカルでサポートされている署名アルゴリズムが
SSLParametersのgetAlgorithmConstraints()メソッドによって指定されているアルゴリズムの制約に従うようにしてください。- 戻り値:
- サポートされる署名アルゴリズムの配列(優先順位の降順)。 サポートされる署名アルゴリズムがない場合、戻り値は空の配列となります。
- 外部仕様
- 関連項目:
-
getPeerSupportedSignatureAlgorithms
public abstract String[] getPeerSupportedSignatureAlgorithms()ピアが使用できる、サポートされる署名アルゴリズムの配列を取得します。ノート: このメソッドは、TLS/DTLS 1.2でデジタル・シグネチャに使用できるシグネチャ・アルゴリズムをローカル側に示すために使用されます。 1.2より前のTLS/DTLSバージョンでは意味がありません。
署名アルゴリズム名は、標準のJavaセキュリティ名(「SHA1withRSA」、「SHA256withECDSA」など)である必要があります。 標準的なアルゴリズム名については、「Javaセキュリティ標準アルゴリズム名」のドキュメントを参照してください。
- 戻り値:
- サポートされる署名アルゴリズムの配列(優先順位の降順)。 サポートされる署名アルゴリズムをピアが送信していない場合、戻り値は空の配列となります。
- 外部仕様
- 関連項目:
-
getRequestedServerNames
public List<SNIServerName> getRequestedServerNames()要求されたServer Name Indication (SNI)拡張のすべてのSNIServerNameを含むListを取得します。サーバー・モードでは、返された
Listが空でないかぎり、サーバーは要求されたサーバー名を、適切な認証証明書またはセキュリティ・ポリシーのその他の側面、あるいはその両方を選択する際のガイドとして使用する必要があります。クライアント・モードでは、返された
Listが空でないかぎり、クライアントは要求されたサーバー名を、ピアの身元またはセキュリティ・ポリシーのその他の側面、あるいはその両方のエンドポイント識別のガイドとして使用すべきです。- 戻り値:
- 要求されたサーバー名表示のnull以外の不変な
SNIServerNameのリスト。 サーバー名表示が要求されなかった場合、返されるリストは空になります。 - スロー:
UnsupportedOperationException- ベースとなるプロバイダがこの操作を実装していない場合- 導入されたバージョン:
- 1.8
- 関連項目:
-
getStatusResponses
public List<byte[]> getStatusResponses()ハンドシェーク中にサーバーの証明書のステータスを確認するために、クライアントがDERでエンコードされたOCSPレスポンス(RFC 6960で定義されているASN.1型のOCSPResponse)を含むListを返します。このメソッドは、証明書ベースのサーバー認証にのみ適用されます。
X509ExtendedTrustManagerは、サーバー証明書検証の戻り値を使用します。- 実装要件:
- このメソッドは、デフォルトでUnsupportedOperationExceptionをスローします。 ExtendedSSLSessionから導出されたクラスは、このメソッドを実装する必要があります。
- 戻り値:
- DERでエンコードされたOCSPレスポンス(RFC 6960で定義されているASN.1型のOCSPResponse)を含む各エントリの、NULL以外の変更不可能なバイト配列のリスト。 レスポンスの順序は、証明書メッセージ(サーバー・モードは
SSLSession.getLocalCertificates()、クライアント・モードはSSLSession.getPeerCertificates()を参照してください)でサーバーが提示する証明書の順序と一致していなければなりません。 返されるレスポンス・エントリの数は、提示された証明書の数より少なくなる可能性があります。 リスト内のエントリが長さがゼロのバイト配列の場合、対応する証明書のOCSPエントリが欠落しているかのように、呼び出し元によって処理されます。 ハンドシェーク中にOCSPレスポンスが提示されなかった場合、またはこのハンドシェークのどちらのエンドポイントでもOCSPプルがサポートされていない場合、返されるリストは空である可能性があります。 - スロー:
UnsupportedOperationException- ベースとなるプロバイダがこの操作を実装していない場合- 導入されたバージョン:
- 9
- 関連項目:
-
exportKeyingMaterialKey
public SecretKey exportKeyingMaterialKey(String keyAlg、 String label、 byte[] context、 int length)はSSLKeyExceptionをスローします RFC 5705/8446で定義されたアルゴリズムに従って計算されたエクスポート・キーイング・マテリアル(EKM)を生成します。RFC 5705 ((D)TLSv1.2以前)では、
contextがnullかnullまたは空でないかに応じて、異なるEKM値が計算されます。 RFC 8446(TLSv1.3)は、nullコンテキストを非null/空として扱います。labelは、StandardCharsets.UTF_8文字エンコーディングを使用してバイトに変換されます。- 実装要件:
- デフォルト実装は
UnsupportedOperationExceptionをスローします。 - パラメータ:
keyAlg- 結果のSecretKeyオブジェクトのアルゴリズム。 標準秘密キー・アルゴリズム名の詳細は、Javaセキュリティ標準アルゴリズム名仕様のSecretKeyアルゴリズムに関する項を参照してください。label- EKM計算で使用されるラベル・バイト。labelは、操作が開始される前にbyte[]に変換されます。context- EKM計算で使用されるコンテキスト・バイト、またはnulllength- 必要なEKMマテリアルのバイト数- 戻り値:
- EKMマテリアルの
lengthバイトを含むSecretKey - スロー:
SSLKeyException- キーを生成できない場合IllegalArgumentException-keyAlgが空の場合、lengthが正でない場合、またはlabelまたはcontextの長さを収容できない場合NullPointerException-keyAlgまたはlabelがnullの場合IllegalStateException- このセッションに必要なキー生成資料がない場合(たとえば、ハンドシェーク中に構築中のセッション)UnsupportedOperationException- ベースとなるプロバイダがこの操作を実装していない場合- 導入されたバージョン:
- 25
- 外部仕様
-
exportKeyingMaterialData
public byte[] exportKeyingMaterialData(String label、 byte[] context、 int length)はSSLKeyExceptionをスローします RFC 5705/8446で定義されたアルゴリズムに従って計算されたエクスポート・キーイング・マテリアル(EKM)を生成します。RFC 5705 ((D)TLSv1.2以前)では、
contextがnullかnullまたは空でないかに応じて、異なるEKM値が計算されます。 RFC 8446(TLSv1.3)は、nullコンテキストを非null/空として扱います。labelは、StandardCharsets.UTF_8文字エンコーディングを使用してバイトに変換されます。選択した基礎となるキー導出メカニズムによっては、RAWバイトが抽出可能/エクスポート可能でない場合があります。 このような場合、生成されたキー・マテリアルにアクセスするには、かわりに
exportKeyingMaterialKey(String, String, byte[], int)メソッドを使用する必要があります。- 実装要件:
- デフォルト実装は
UnsupportedOperationExceptionをスローします。 - パラメータ:
label- EKM計算で使用されるラベル・バイト。labelは、操作が開始される前にbyte[]に変換されます。context- EKM計算で使用されるコンテキスト・バイト、またはnulllength- 必要なEKMマテリアルのバイト数- 戻り値:
- EKMマテリアルを含むサイズ
lengthのバイト配列 - スロー:
SSLKeyException- キーを生成できない場合IllegalArgumentException-lengthが正でない場合、またはlabelまたはcontextの長さを収容できない場合NullPointerException-labelがnullの場合IllegalStateException- このセッションに必要なキー生成資料がない場合(たとえば、ハンドシェーク中に構築中のセッション)UnsupportedOperationException- 基礎となるプロバイダが操作を実装しない場合、または導出されたキーイング・マテリアルが抽出可能でない場合- 導入されたバージョン:
- 25
- 外部仕様
-