クラスExtendedSSLSession

java.lang.Object
javax.net.ssl.ExtendedSSLSession
すべての実装されたインタフェース:
SSLSession

public abstract class ExtendedSSLSession extends Object implements 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 Object
    このオブジェクトのコピーを作成して、返します。
    boolean
    このオブジェクトと他のオブジェクトが等しいかどうかを示します。
    protected void
    削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。
    最終決定は非推奨であり、将来のリリースで削除される可能性があります。
    final Class<?>
    このObjectの実行時クラスを返します。
    int
    このオブジェクトに対するハッシュ・コード値を返します。
    final void
    このオブジェクトのモニターで待機中のスレッドを1つ再開します。
    final void
    このオブジェクトのモニターで待機中のすべてのスレッドを再開します。
    オブジェクトの文字列表現を返します。
    final void
    現在のスレッドが目覚めるまで待機します。通常、notifiedまたはinterruptedです。
    final void
    wait(long timeoutMillis)
    現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。
    final void
    wait(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[]
    このセッションに割り当てられた識別子を返します。
    long
    このセッションがセッション・レベルのインフラストラクチャによって最後にアクセスされた時刻を、UTC 1970年1月1日深夜零時からのミリ秒単位で返します。
    ハンドシェーク中にピアに送信された証明書を返します。
    ハンドシェーク中にピアに送信された主体を返します。
    int
    このセッションの使用時に予想される最大のSSL/TLS/DTLSパケットの現在のサイズを取得します。
    default X509Certificate[]
    削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。
    java.security.cert.Certificateの配列を返すSSLSession.getPeerCertificates()メソッドを代わりに使用する必要があります。
    セッションを定義するときに設定された、ピアの識別情報を返します。
    このセッションのピア・ホスト名を返します。
    int
    このセッションのピアのポート番号を返します。
    セッションを定義するときに設定された、ピアの識別情報を返します。
    このセッションのすべての接続に使用されるプロトコルの標準名を返します。
    このセッションがバインドされているコンテキストを返します。
    このセッションのアプリケーション層データ内で、指定された名前にバインドされているオブジェクトを返します。
    セッションにバインドされているアプリケーション層データ・オブジェクト名の配列を返します。
    void
    セッションを無効にします。
    boolean
    再開や参加が可能な有効なセッションかどうかを返します。
    void
    putValue(String name, Object value)
    指定されたnameを使用して、指定されたvalueオブジェクトをこのセッションのアプリケーション層データにバインドします。
    void
    セッションのアプリケーション層データで、指定された名前にバインドされたオブジェクトを削除します。
  • コンストラクタの詳細

    • ExtendedSSLSession

      public ExtendedSSLSession()
      サブクラスが呼び出すためのコンストラクタ。
  • メソッドの詳細

    • getLocalSupportedSignatureAlgorithms

      public abstract String[] getLocalSupportedSignatureAlgorithms()
      ローカル側が使用する、サポートされる署名アルゴリズムの配列を取得します。

      ノート: このメソッドは、TLS/DTLS 1.2でデジタル・シグネチャに使用できるシグネチャ・アルゴリズムをピアに示すために使用されます。 1.2より前のTLS/DTLSバージョンでは意味がありません。

      署名アルゴリズム名は、標準のJavaセキュリティ名(「SHA1withRSA」、「SHA256withECDSA」など)である必要があります。 標準的なアルゴリズム名については、「Javaセキュリティ標準アルゴリズム名」のドキュメントを参照してください。

      ノート: ローカルでサポートされている署名アルゴリズムがSSLParametersgetAlgorithmConstraints()メソッドによって指定されているアルゴリズムの制約に従うようにしてください。

      戻り値:
      サポートされる署名アルゴリズムの配列(優先順位の降順)。 サポートされる署名アルゴリズムがない場合、戻り値は空の配列となります。
      外部仕様
      関連項目:
    • 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計算で使用されるコンテキスト・バイト、またはnull
      length - 必要な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計算で使用されるコンテキスト・バイト、またはnull
      length - 必要なEKMマテリアルのバイト数
      戻り値:
      EKMマテリアルを含むサイズlengthのバイト配列
      スロー:
      SSLKeyException - キーを生成できない場合
      IllegalArgumentException - lengthが正でない場合、またはlabelまたはcontextの長さを収容できない場合
      NullPointerException - labelがnullの場合
      IllegalStateException - このセッションに必要なキー生成資料がない場合(たとえば、ハンドシェーク中に構築中のセッション)
      UnsupportedOperationException - 基礎となるプロバイダが操作を実装しない場合、または導出されたキーイング・マテリアルが抽出可能でない場合
      導入されたバージョン:
      25
      外部仕様