クラス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インタフェースで宣言されたメソッド SSLSession
getApplicationBufferSize, getCipherSuite, getCreationTime, getId, getLastAccessedTime, getLocalCertificates, getLocalPrincipal, getPacketBufferSize, getPeerCertificateChain, getPeerCertificates, getPeerHost, getPeerPort, getPeerPrincipal, getProtocol, getSessionContext, getValue, getValueNames, invalidate, isValid, putValue, removeValue
-
コンストラクタの詳細
-
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
- 外部仕様
-