クラスSSLParameters

java.lang.Object
javax.net.ssl.SSLParameters

public class SSLParameters extends Object
SSL/TLS/DTLS接続のパラメータをカプセル化します。 パラメータは、SSL/TLS/DTLSハンドシェイクで受け入れられる暗号スイートのリスト、許可されるプロトコルのリスト、SSL/TLS/DTLSハンドシェイク中のエンドポイント識別アルゴリズム、サーバー名指定(SNI)、最大ネットワーク・パケット・サイズ、アルゴリズム制約、シグネチャ・スキーム、名前付きグループのキー交換、およびSSL/TLS/DTLSサーバーがクライアント認証をリクエストするかリクエストするかリクエストするかなどです。

SSLParameterオブジェクトは、このクラスのコンストラクタを介して作成でき、事前移入されたオブジェクトとして記述できます。 SSLParameterオブジェクトは、SSLSocketおよびSSLServerSocketおよびSSLEnginegetSSLParameters()メソッドまたはSSLContextgetDefaultSSLParameters()およびgetSupportedSSLParameters()メソッドを使用して取得でき、接続移入オブジェクトとして記述できます。

SSLParametersは、SSLSocket.setSSLParameters()SSLServerSocket.setSSLParameters()、およびSSLEngine.setSSLParameters()メソッドを使用して接続に適用できます。

たとえば、

    SSLParameters p = sslSocket.getSSLParameters();
    p.setProtocols(new String[] { "TLSv1.2" });
    p.setCipherSuites(
        new String[] { "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256", ... });
    p.setApplicationProtocols(new String[] {"h2", "http/1.1"});
    sslSocket.setSSLParameters(p);

導入されたバージョン:
1.6
関連項目:
  • コンストラクタのサマリー

    コンストラクタ
    コンストラクタ
    説明
    SSLParametersを構築します。
    SSLParameters(String[] cipherSuites)
    指定された暗号化方式群の配列からSSLParametersを構築します。
    SSLParameters(String[] cipherSuites, String[] protocols)
    指定された暗号化方式群とプロトコルの配列からSSLParametersを構築します。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    暗号化アルゴリズムの制約を返します。
    SSL/TLS/DTLSプロトコルを介してネゴシエートできる、優先順位付けされたアプリケーション・レイヤー・プロトコル名の配列を返します。
    暗号化方式群の配列のコピーを返します。設定されていない場合はnullを返します。
    boolean
    DTLSハンドシェイクの再送信を有効にするかどうかを返します。
    エンド・ポイント識別アルゴリズムを取得します。
    int
    SSL/TLS/DTLSレコードについて予想される最大ネットワーク・パケット・サイズをバイト単位で返します。
    SSL/TLS/DTLSプロトコルで使用できる、名前付きグループ名のキー交換の優先順位付けされた配列を返します。
    boolean
    クライアント認証を必須とするかどうかを返します。
    プロトコルの配列のコピーを返します。設定されていない場合はnullを返します。
    Server Name Indication (SNI)パラメータのすべてのSNIServerNameを含むList、または何も設定されていない場合はnullを返します。
    SSL/TLS/DTLSプロトコルで使用できるシグネチャ・スキーム名の優先配列を返します。
    Server Name Indication (SNI)パラメータのすべてのSNIMatcherを含むCollection(何も設定されていない場合はnull)を返します。
    final boolean
    暗号化方式群のローカル設定を適用する必要があるかどうかを返します。
    boolean
    クライアント認証を要求するかどうかを返します。
    void
    実行環境によって構成された任意の制約に加えて使用される、暗号化アルゴリズムの制約を設定します。
    void
    SSL/TLS/DTLSプロトコルを介してネゴシエートできる、アプリケーション・レイヤー・プロトコル名の優先順位付けされた配列を設定します。
    void
    setCipherSuites(String[] cipherSuites)
    暗号化方式群の配列を設定します。
    void
    setEnableRetransmissions(boolean enableRetransmissions)
    DTLSハンドシェークの再送信を有効にするかどうかを設定します。
    void
    エンド・ポイント識別アルゴリズムを設定します。
    void
    setMaximumPacketSize(int maximumPacketSize)
    SSL/TLS/DTLSレコードに対して予想される最大ネットワーク・パケット・サイズをバイト単位で設定します。
    void
    setNamedGroups(String[] namedGroups)
    SSL/TLS/DTLSプロトコル上で使用できるキー交換の名前付きグループ名の優先順位付き配列を設定します。
    void
    setNeedClientAuth(boolean needClientAuth)
    クライアント認証を必須とするかどうかを設定します。
    void
    setProtocols(String[] protocols)
    プロトコルの配列を設定します。
    final void
    Server Name Indication (SNI)パラメータの必要なSNIServerNameを設定します。
    void
    setSignatureSchemes(String[] signatureSchemes)
    SSL/TLS/DTLSプロトコルで使用できるシグネチャ・スキーム名の優先配列を設定します。
    final void
    Server Name Indication (SNI)パラメータのSNIMatcherを設定します。
    final void
    setUseCipherSuitesOrder(boolean honorOrder)
    暗号化方式群のローカル設定を適用する必要があるかどうかを設定します。
    void
    setWantClientAuth(boolean wantClientAuth)
    クライアント認証を要求するかどうかを設定します。

    クラスオブジェクトで宣言されたメソッド

    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であるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。
  • コンストラクタの詳細

    • SSLParameters

      public SSLParameters()
      SSLParametersを構築します。

      cipherSuites、プロトコル、暗号化アルゴリズム制約、エンドポイント識別アルゴリズム、シグネチャ・スキーム、サーバー名およびサーバー名マッチャの値はnullに設定され、useCipherSuitesOrder、wantClientAuthおよびneedClientAuthはfalseに設定され、enableRetransmissionsはtrueに設定され、最大ネットワーク・パケット・サイズは0に設定されます。

    • SSLParameters

      public SSLParameters(String[] cipherSuites)
      指定された暗号化方式群の配列からSSLParametersを構築します。

      このコンストラクタの呼出しは、引数なしのコンストラクタに続いてsetCipherSuites(cipherSuites);を呼び出すことと同じです。 暗号スイート名の標準のリストは、JavaセキュリティStandardアルゴリズム名の仕様の「JSSE暗号スイート名」セクションにあります。 プロバイダは、このリストにない暗号スイート名をサポートしている可能性があります。

      パラメータ:
      cipherSuites - 暗号化方式群の配列(nullも可)
      外部仕様
    • SSLParameters

      public SSLParameters(String[] cipherSuites, String[] protocols)
      指定された暗号化方式群とプロトコルの配列からSSLParametersを構築します。

      このコンストラクタの呼出しは、引数なしのコンストラクタに続いてsetCipherSuites(cipherSuites); setProtocols(protocols);を呼び出すことと同じです。 暗号スイート名の標準のリストは、JavaセキュリティStandardアルゴリズム名の仕様の「JSSE暗号スイート名」セクションにあります。 プロバイダは、このリストにない暗号スイート名をサポートしている可能性があります。

      パラメータ:
      cipherSuites - 暗号化方式群の配列(nullも可)
      protocols - プロトコルの配列(nullも可)
      外部仕様
  • メソッドの詳細

    • getCipherSuites

      public String[] getCipherSuites()
      暗号化方式群の配列のコピーを返します。設定されていない場合はnullを返します。

      返される配列には、Java Security Standard Algorithm Names Specificationの「JSSE暗号スイート名」セクションにある標準の暗号スイート名のリストからの暗号スイートが含まれ、プロバイダがサポートする他の暗号スイートが含まれる場合もあります。

      戻り値:
      暗号化方式群の配列のコピー。設定されていない場合はnull。
      外部仕様
    • setCipherSuites

      public void setCipherSuites(String[] cipherSuites)
      暗号化方式群の配列を設定します。
      パラメータ:
      cipherSuites - 暗号化方式群の配列(nullも可) 暗号スイート名の標準のリストは、JavaセキュリティStandardアルゴリズム名の仕様の「JSSE暗号スイート名」セクションにあります。 プロバイダは、このリストにない暗号スイート名をサポートするか、特定の暗号スイートに推奨名を使用しない場合があります。
      外部仕様
    • getProtocols

      public String[] getProtocols()
      プロトコルの配列のコピーを返します。設定されていない場合はnullを返します。
      戻り値:
      プロトコルの配列のコピー。設定されていない場合はnull。
    • setProtocols

      public void setProtocols(String[] protocols)
      プロトコルの配列を設定します。
      パラメータ:
      protocols - プロトコルの配列(nullも可)
    • getWantClientAuth

      public boolean getWantClientAuth()
      クライアント認証を要求するかどうかを返します。
      戻り値:
      クライアント認証を要求するかどうか。
    • setWantClientAuth

      public void setWantClientAuth(boolean wantClientAuth)
      クライアント認証を要求するかどうかを設定します。 このメソッドを呼び出すと、needClientAuthフラグがクリアされます。
      パラメータ:
      wantClientAuth - クライアント認証が要求されるかどうか
    • getNeedClientAuth

      public boolean getNeedClientAuth()
      クライアント認証を必須とするかどうかを返します。
      戻り値:
      クライアント認証を必須とするかどうか。
    • setNeedClientAuth

      public void setNeedClientAuth(boolean needClientAuth)
      クライアント認証を必須とするかどうかを設定します。 このメソッドを呼び出すと、wantClientAuthフラグがクリアされます。
      パラメータ:
      needClientAuth - クライアント認証が必要かどうか
    • getAlgorithmConstraints

      public AlgorithmConstraints getAlgorithmConstraints()
      暗号化アルゴリズムの制約を返します。
      戻り値:
      暗号化アルゴリズムの制約。制約が設定されていない場合はnull
      導入されたバージョン:
      1.7
      関連項目:
    • setAlgorithmConstraints

      public void setAlgorithmConstraints(AlgorithmConstraints constraints)
      実行環境によって構成された任意の制約に加えて使用される、暗号化アルゴリズムの制約を設定します。

      constraintsパラメータがnull以外の場合、SSL/TLS/DTLSハンドシェイクで使用されるすべての暗号化アルゴリズム、キーおよびアルゴリズム・パラメータが制約によって許可される必要があります。

      パラメータ:
      constraints - アルゴリズムの制約(またはnull)
      導入されたバージョン:
      1.7
    • getEndpointIdentificationAlgorithm

      public String getEndpointIdentificationAlgorithm()
      エンド・ポイント識別アルゴリズムを取得します。
      戻り値:
      エンド・ポイント識別アルゴリズム。設定されていない場合はnull。
      導入されたバージョン:
      1.7
      関連項目:
    • setEndpointIdentificationAlgorithm

      public void setEndpointIdentificationAlgorithm(String algorithm)
      エンド・ポイント識別アルゴリズムを設定します。

      algorithmパラメータがnull以外または空でない場合、SSL/TLS/DTLSハンドシェーク中にエンドポイントの識別/検証プロシージャを処理する必要があります。 これを行うのは、man-in-the-middle攻撃を回避するためです。

      パラメータ:
      algorithm - エンド・ポイント識別アルゴリズムの標準名を表す文字列(またはnull)。 標準的なアルゴリズム名については、「Javaセキュリティ標準アルゴリズム名」のドキュメントを参照してください。
      導入されたバージョン:
      1.7
      外部仕様
      関連項目:
    • setServerNames

      public final void setServerNames(List<SNIServerName> serverNames)
      Server Name Indication (SNI)パラメータの必要なSNIServerNameを設定します。

      このメソッドが役立つのは、クライアント・モードで動作するSSLSocketまたはSSLEngineの場合のみです。

      以後の変更から保護するために、serverNamesリストのクローンが作成されます。

      パラメータ:
      serverNames - 必要なSNIServerNameのリスト(またはnull)
      スロー:
      NullPointerException - serverNamesnull要素が含まれている場合
      IllegalArgumentException - serverNamesに同じ名前タイプの名前が複数個含まれている場合
      導入されたバージョン:
      1.8
      関連項目:
    • getServerNames

      public final List<SNIServerName> getServerNames()
      Server Name Indication (SNI)パラメータのすべてのSNIServerNameを含むList、または何も設定されていない場合はnullを返します。

      このメソッドが役立つのは、クライアント・モードで動作するSSLSocketまたはSSLEngineの場合のみです。

      SSL/TLS/DTLS接続の場合、基礎となるSSL/TLS/DTLSプロバイダは、特定のサーバー名タイプのデフォルト値を指定できます。 クライアント・モードでは、サポート対象のサーバー名タイプでサーバーを特定可能な場合には常に、プロバイダはデフォルトでサーバー名表示を含めるようにすることをお薦めします。

      SSLSocket/SSLEngineの作成時にプロバイダがデフォルトのサーバー名表示を初期化することをお薦めします。 次の例では、サーバー名はホスト名"www.example.com"で初期化され、StandardConstants.SNI_HOST_NAMEと入力されたSNIHostNameのインスタンスで表されます。

          Socket socket =
              sslSocketFactory.createSocket("www.example.com", 443);
      
      or
          SSLEngine engine =
              sslContext.createSSLEngine("www.example.com", 443);
      

      戻り値:
      null、またはnull以外のSNIServerNameの不変なリスト
      導入されたバージョン:
      1.8
      関連項目:
    • setSNIMatchers

      public final void setSNIMatchers(Collection<SNIMatcher> matchers)
      Server Name Indication (SNI)パラメータのSNIMatcherを設定します。

      このメソッドが役立つのは、サーバー・モードで動作するSSLSocketまたはSSLEngineの場合のみです。

      以後の変更から保護するために、matchersコレクションのクローンが作成されます。

      パラメータ:
      matchers - SNIMatcherのコレクション(またはnull)
      スロー:
      NullPointerException - matchersnull要素が含まれている場合
      IllegalArgumentException - matchersに同じ名前タイプの名前が複数個含まれている場合
      導入されたバージョン:
      1.8
      関連項目:
    • getSNIMatchers

      public final Collection<SNIMatcher> getSNIMatchers()
      Server Name Indication (SNI)パラメータのすべてのSNIMatcherを含むCollection(何も設定されていない場合はnull)を返します。

      このメソッドが役立つのは、サーバー・モードで動作するSSLSocketまたはSSLEngineの場合のみです。

      相互運用性を高めるため、プロバイダは一般にデフォルトのマッチャを定義しませんが、これは、サーバーがデフォルトでSNI拡張を無視してハンドシェークを続行するようにするためです。

      戻り値:
      null、またはnull以外のSNIMatcherの不変なコレクション
      導入されたバージョン:
      1.8
      関連項目:
    • setUseCipherSuitesOrder

      public final void setUseCipherSuitesOrder(boolean honorOrder)
      暗号化方式群のローカル設定を適用する必要があるかどうかを設定します。
      パラメータ:
      honorOrder - SSL/TLS/DTLSハンドシェーク中に、#getCipherSuites内のローカル暗号スイートの順序を尊重するかどうか。
      導入されたバージョン:
      1.8
      関連項目:
    • getUseCipherSuitesOrder

      public final boolean getUseCipherSuitesOrder()
      暗号化方式群のローカル設定を適用する必要があるかどうかを返します。
      戻り値:
      SSL/TLS/DTLSハンドシェーク中に、#getCipherSuites内のローカル暗号スイートの順序を尊重するかどうか。
      導入されたバージョン:
      1.8
      関連項目:
    • setEnableRetransmissions

      public void setEnableRetransmissions(boolean enableRetransmissions)
      DTLSハンドシェークの再送信を有効にするかどうかを設定します。 このメソッドは、DTLSにのみ適用されます。
      パラメータ:
      enableRetransmissions - trueは、DTLSハンドシェイク再送信を有効にする必要があることを示します。falseは、DTLSハンドシェイク再送信を無効にする必要があることを示します
      導入されたバージョン:
      9
      関連項目:
    • getEnableRetransmissions

      public boolean getEnableRetransmissions()
      DTLSハンドシェイクの再送信を有効にするかどうかを返します。 このメソッドは、DTLSにのみ適用されます。
      戻り値:
      true。DTLSハンドシェイクの再送信を有効にする必要がある場合
      導入されたバージョン:
      9
      関連項目:
    • setMaximumPacketSize

      public void setMaximumPacketSize(int maximumPacketSize)
      SSL/TLS/DTLSレコードに対して予想される最大ネットワーク・パケット・サイズをバイト単位で設定します。
      APIのノート:
      可能な場合は、HelloVerifyRequestsなどの小さいハンドシェイク・メッセージが断片化されないように、最大パケット・サイズを256バイト未満にすることをお薦めします。
      実装上のノート:
      最大パケット・サイズが小さすぎて最小レコードを保持できない場合、実装は可能なかぎり最小レコードを生成しようとします。 ただし、これによって、生成されたパケットが最大パケット・サイズよりも大きくなる可能性があります。
      パラメータ:
      maximumPacketSize - 予想される最大ネットワーク・パケット・サイズ(バイト単位)、または基礎となる実装によって自動的に指定される暗黙的なサイズを使用する0
      スロー:
      IllegalArgumentException - maximumPacketSizeが負の場合。
      導入されたバージョン:
      9
      関連項目:
    • getMaximumPacketSize

      public int getMaximumPacketSize()
      SSL/TLS/DTLSレコードについて予想される最大ネットワーク・パケット・サイズをバイト単位で返します。
      APIのノート:
      暗黙的なサイズは、特にDTLSプロトコルの実装では固定値ではない場合があります。
      実装上のノート:
      SSL/TLS/DTLS接続の場合、基礎となるプロバイダは、想定される最大ネットワーク・パケット・サイズが明示的に構成されていない場合は、その暗黙的な値を計算して指定する必要があります。 接続移入されたオブジェクトの場合、アプリケーションが基礎となる実装の実際の暗黙的なサイズを取得できるように、このメソッドは0を戻さないでください。

      実装は、最大パケット・サイズ構成に準拠しようとします。 ただし、最大パケット・サイズが小さすぎて最小レコードを保持できない場合、実装は可能なかぎり最小レコードを生成しようとします。 これにより、生成されたパケットが最大パケット・サイズよりも大きくなる可能性があります。

      戻り値:
      予想される最大ネットワーク・パケット・サイズ、または基礎となる実装によって自動的に指定され、このオブジェクトがどの接続によっても移入されていない暗黙的なサイズを使用する場合は0
      導入されたバージョン:
      9
      関連項目:
    • getApplicationProtocols

      public String[] getApplicationProtocols()
      SSL/TLS/DTLSプロトコルを介してネゴシエートできる、優先順位付けされたアプリケーション・レイヤー・プロトコル名の配列を返します。

      配列は空の(zero-length)である可能性があり、その場合、プロトコル・インジケータは使用されません。

      このメソッドは、呼び出されるたびに新しい配列を返します。

      戻り値:
      アプリケーション・プロトコルStringのnull以外の長さのゼロ配列。 アレイはプロトコル設定に基づいて順序付けされ、最初のエントリがもっとも優先されます。
      導入されたバージョン:
      9
      関連項目:
    • setApplicationProtocols

      public void setApplicationProtocols(String[] protocols)
      SSL/TLS/DTLSプロトコルを介してネゴシエートできる、アプリケーション・レイヤー・プロトコル名の優先順位付けされた配列を設定します。

      アプリケーション・レイヤー・プロトコルが基礎となるSSL/TLS実装でサポートされている場合、このメソッドは、RFC 7301、Application Layer Protocol Negotiation (ALPN)などのプロトコルでネゴシエーションできる値を構成します。

      この接続の終端がアプリケーション・プロトコル値を提供すると予想される場合は、このメソッドで構成されたすべてのプロトコルがピアに送信されます。

      接続のこの終了時にアプリケーション・プロトコル値を選択することが予想される場合は、このメソッドによって構成されたprotocolsがピアによって送信されたものと比較されます。 最初に一致した値がネゴシエーション済の値になります。 ピアによって実際にリクエストされたprotocolsがない場合、基礎となるプロトコルによって、実行するアクションが決定されます。 (たとえば、ALPNは"no_application_protocol"アラートを送信し、接続を終了します。)

      String値は、ピアで想定されるネットワーク・バイト表現を使用して指定する必要があります。 たとえば、ALPN StringUTF-8を使用して交換する必要がある場合、このメソッドをコールする前に、Stringbyte[]表現に変換し、バイト指向のStringとして格納する必要があります。 たとえば、

          // Encode 3 Meetei Mayek letters (HUK, UN, I) using Unicode Escapes
          //     0xabcd->0xabcf, 2 Unicode bytes/letter.
          String HUK_UN_I =  "\uabcd\uabce\uabcf";
      
          // Convert into UTF-8 encoded bytes (3 bytes/letter)
          byte[] bytes = HUK_UN_I.getBytes(StandardCharsets.UTF_8);
      
          // Preserve octet byte order by using ISO_8859_1 encoding
          String encodedHukUnI =
              new String(bytes, StandardCharsets.ISO_8859_1);
      
          // Also, encode a two byte RFC 8701 GREASE ALPN value
          //     e.g. 0x0A, 0x1A, 0x2A...0xFA
          String rfc8701Grease8A = "\u008A\u008A";
      
          // Set the ALPN vlues on the sslSocket.
          SSLParameters p = sslSocket.getSSLParameters();
          p.setApplicationProtocols(new String[] {
                  "h2", "http/1.1", encodedHukUnI, rfc8701Grease8A});
          sslSocket.setSSLParameters(p);
      

      実装要件:
      このメソッドは、protocols配列のコピーを作成します。
      パラメータ:
      protocols - アプリケーション・プロトコルの順序付き配列で、protocols[0]が最も優先されます。 配列が空の(zero-length)の場合、プロトコル・インジケータは使用されません。
      スロー:
      IllegalArgumentException - プロトコルがnullの場合、または空でない配列の要素がnullまたは空の(zero-length)文字列の場合
      導入されたバージョン:
      9
      外部仕様
      関連項目:
    • getSignatureSchemes

      public String[] getSignatureSchemes()
      SSL/TLS/DTLSプロトコルで使用できるシグネチャ・スキーム名の優先配列を返します。

      シグネチャ・スキーム名の標準リストは、JavaセキュリティStandardアルゴリズム名仕様の「シグネチャ・スキーム」セクションで定義されています。 プロバイダはこのリストで定義されていないシグネチャ・スキームをサポートするか、特定のシグネチャ・スキームに推奨名を使用しない可能性があります。

      SSL/TLS/DTLS接続で使用されるシグネチャ・スキームのセットは、このメソッドの戻り配列および基礎となるプロバイダ固有のデフォルトのシグネチャ・スキームによって決まります。

      返される配列がnullの場合、基礎となるプロバイダ固有のデフォルトのシグネチャ・スキームがSSL/TLS/DTLS接続で使用されます。

      返された配列が空の(zero-length)の場合、シグネチャ・スキーム・ネゴシエーション・メカニズムはSSL/TLS/DTLSプロトコルに対してオフになり、特定のSSL/TLS/DTLSプロトコルでネゴシエーション・メカニズムが必要な場合、接続を確立できないことがあります。 このパラメータは、基礎となるプロバイダ固有のデフォルトのシグネチャ・スキームをオーバーライドします。

      返された配列がnullまたは空の(zero-length)でない場合、返された配列のシグネチャ・スキームがSSL/TLS/DTLS接続で使用されます。 このパラメータは、基礎となるプロバイダ固有のデフォルトのシグネチャ・スキームをオーバーライドします。

      このメソッドは、そのメソッドが呼び出された場合にsetSignatureSchemes(String[])に渡された最新の値を返し、それ以外の場合は接続移入されたオブジェクトのデフォルトの署名スキーム、または事前移入されたオブジェクトの場合はnullを返します。

      APIのノート:
      このメソッドをサポートするようにプロバイダが更新されていない可能性があり、その場合、接続移入オブジェクトのデフォルトのシグネチャ・スキームではなくnullが返される可能性があることに注意してください。
      実装上のノート:
      SunJSSEプロバイダはこのメソッドをサポートしています。アプリケーションでは、SunJSSEプロバイダとともにjdk.tls.client.SignatureSchemesまたはjdk.tls.server.SignatureSchemes(あるいはその両方)のシステム・プロパティを使用して、プロバイダ固有のデフォルトのシグネチャ・スキームをオーバーライドできます。
      戻り値:
      シグネチャ・スキームStringsまたはnullの配列が設定されていない場合。 NULL以外の戻り値の場合、このメソッドは呼び出されるたびに新しい配列を返します。 配列はシグネチャ・スキーム設定に基づいて順序付けされ、最初のエントリが最も優先されます。 プロバイダは、SSL/TLS/DTLS接続の確立中に不明なシグネチャ・スキーム名を無視する必要があります。
      導入されたバージョン:
      19
      外部仕様
      関連項目:
    • setSignatureSchemes

      public void setSignatureSchemes(String[] signatureSchemes)
      SSL/TLS/DTLSプロトコルで使用できるシグネチャ・スキーム名の優先配列を設定します。

      シグネチャ・スキーム名の標準リストは、JavaセキュリティStandardアルゴリズム名仕様の「シグネチャ・スキーム」セクションで定義されています。 プロバイダはこのリストで定義されていないシグネチャ・スキームをサポートするか、特定のシグネチャ・スキームに推奨名を使用しない可能性があります。

      SSL/TLS/DTLS接続で使用されるシグネチャ・スキームのセットは、入力パラメータsignatureSchemes配列および基礎となるプロバイダ固有のデフォルトのシグネチャ・スキームによって決まります。 SSL/TLS/DTLS接続でのパラメータの使用方法の詳細は、getSignatureSchemes()を参照してください。

      APIのノート:
      このメソッドをサポートするようにプロバイダが更新されていない可能性があり、その場合は設定されているスキームが無視される可能性があります。
      実装上のノート:
      SunJSSEプロバイダはこのメソッドをサポートしています。
      パラメータ:
      signatureSchemes - 最初のエントリが最も優先されるシグネチャ・スキーム名の順序付き配列、またはnull このメソッドは、この配列のコピーを作成します。 プロバイダは、SSL/TLS/DTLS接続の確立中に不明なシグネチャ・スキーム名を無視する必要があります。
      スロー:
      IllegalArgumentException - signatureSchemes配列の要素がnullまたは「ブランク」の場合。
      導入されたバージョン:
      19
      外部仕様
      関連項目:
    • getNamedGroups

      public String[] getNamedGroups()
      SSL/TLS/DTLSプロトコルで使用できる、名前付きグループ名のキー交換の優先順位付けされた配列を返します。

      名前付きグループのキー交換の標準リストは、Java Security Standard Algorithm Names Specificationの「名前付きグループ」セクションで定義されています。 プロバイダは、このリストに定義されていない名前付きグループをサポートするか、特定の名前付きグループに推奨される名前を使用しない可能性があります。

      SSL/TLS/DTLS接続上で使用される名前付きグループのセットは、このメソッドの返される配列および基礎となるプロバイダ固有のデフォルトの名前付きグループによって決まります。

      返される配列がnullの場合、ベースとなるプロバイダ固有のデフォルトの名前付きグループがSSL/TLS/DTLS接続で使用されます。

      返された配列が空の (zero-length)である場合、SSL/TLS/DTLSプロトコルの名前付きグループ・ネゴシエーション・メカニズムはオフになり、特定のSSL/TLS/DTLSプロトコルでネゴシエーション・メカニズムが必要な場合、接続を確立できないことがあります。 このパラメータは、ベースとなるプロバイダ固有のデフォルトの名前グループをオーバーライドします。

      返された配列がnullまたは空の(zero-length)でない場合、返された配列内の指定されたグループがSSL/TLS/DTLS接続で使用されます。 このパラメータは、ベースとなるプロバイダ固有のデフォルトの名前付きグループをオーバーライドします。

      このメソッドは、そのメソッドが呼び出された場合にsetNamedGroups(String[])に渡された最新の値を返します。それ以外の場合は、接続に移入されたオブジェクトのデフォルトの名前付きグループ、または事前移入されたオブジェクトの場合はnullを返します。

      APIのノート:
      このメソッドをサポートするようにプロバイダが更新されていない可能性があり、この場合、接続移入オブジェクトのデフォルトの名前付きグループのかわりにnullが返される可能性があります。
      実装上のノート:
      SunJSSEプロバイダはこのメソッドをサポートしています。アプリケーションは、SunJSSEプロバイダでjdk.tls.namedGroupsシステム・プロパティを使用して、プロバイダ固有のデフォルトの名前付きグループをオーバーライドできます。
      戻り値:
      何も設定されていない場合は、グループ名Stringsまたはnullという名前のキー交換の配列。 NULL以外の戻り値の場合、このメソッドは呼び出されるたびに新しい配列を返します。 配列は名前付きグループのプリファレンスに基づいて順序付けされ、最初のエントリが最も優先されます。 プロバイダは、SSL/TLS/DTLS接続の確立中に不明な名前付きグループ名を無視する必要があります。
      導入されたバージョン:
      20
      外部仕様
      関連項目:
    • setNamedGroups

      public void setNamedGroups(String[] namedGroups)
      SSL/TLS/DTLSプロトコル上で使用できるキー交換の名前付きグループ名の優先順位付き配列を設定します。

      名前付きグループのキー交換の標準リストは、Java Security Standard Algorithm Names Specificationの「名前付きグループ」セクションで定義されています。 プロバイダは、このリストに定義されていない名前付きグループをサポートするか、特定の名前付きグループに推奨される名前を使用しない可能性があります。

      SSL/TLS/DTLS接続上で使用される名前付きグループのセットは、入力パラメータnamedGroups配列および基礎となるプロバイダ固有のデフォルトの名前付きグループによって決まります。 SSL/TLS/DTLS接続でのパラメータの使用方法の詳細は、getNamedGroups()を参照してください。

      APIのノート:
      このメソッドをサポートするためにプロバイダが更新されていない可能性があり、その場合は、設定されている名前付きグループが無視される可能性があります。
      実装上のノート:
      SunJSSEプロバイダはこのメソッドをサポートしています。
      パラメータ:
      namedGroups - 最初のエントリが最も優先されるグループ名、またはnullというキー交換の名前付きグループ名の順序付き配列。 このメソッドは、この配列のコピーを作成します。 プロバイダは、SSL/TLS/DTLS接続の確立中に、不明な名前付きグループ・スキーム名を無視する必要があります。
      スロー:
      IllegalArgumentException - namedGroups配列内の要素が重複している場合、nullまたは「ブランク」
      導入されたバージョン:
      20
      外部仕様
      関連項目: