クラスExtendedSSLSession

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

public abstract class ExtendedSSLSession extends Object implements SSLSession
追加のセッション属性をサポートするようにSSLSessionインタフェースを拡張します。
導入されたバージョン:
1.7
  • コンストラクタの詳細

    • 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
      外部仕様