Spec-Zone.ru › OpenJDK 27

Класс ExtendedSSLSession

java.lang.Object
javax.net.ssl.ExtendedSSLSession
Все реализуемые интерфейсы:
SSLSession
public abstract class ExtendedSSLSession extends Object implements SSLSession
Расширяет интерфейс SSLSession для поддержки дополнительных атрибутов сеанса.
С версии:
1.7

Краткое описание конструкторов

Конструктор Описание
ExtendedSSLSession()
Конструктор для вызова подклассами.

Краткое описание методов

Модификатор и тип Метод Описание
byte[] exportKeyingMaterialData(String label, byte[] context, int length)
Генерирует экспортируемый материал ключа (EKM), вычисленный согласно алгоритмам, определенным в RFC 5705/8446.
SecretKey exportKeyingMaterialKey(String keyAlg, String label, byte[] context, int length)
Генерирует экспортируемый материал ключа (EKM), вычисленный согласно алгоритмам, определенным в RFC 5705/8446.
abstract String[] getLocalSupportedSignatureAlgorithms()
Возвращает массив поддерживаемых алгоритмов подписи, которые локальная сторона готова использовать.
abstract String[] getPeerSupportedSignatureAlgorithms()
Возвращает массив поддерживаемых алгоритмов подписи, которые может использовать узел-партнер.
List<SNIServerName> getRequestedServerNames()
Возвращает List, содержащий все имена SNIServerName запрошенного расширения Server Name Indication (SNI).
List<byte[]> getStatusResponses()
Возвращает List, содержащий ответы OCSP в кодировке DER (с использованием типа ASN.1 OCSPResponse, определенного в RFC 6960), чтобы клиент мог проверить статус сертификата сервера во время выполнения рукопожатия.

Методы, объявленные в классе Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Модификатор и тип Метод Описание
protected Object clone()
Создает и возвращает копию этого объекта.
boolean equals(Object obj)
Показывает, равен ли этот объект какому-либо другому объекту.
protected void finalize()
Устарело, будет удалено: этот элемент API подлежит удалению в будущей версии.
Финализация объявлена устаревшей и подлежит удалению в одном из будущих выпусков.
final Class<?> getClass()
Возвращает класс времени выполнения этого Object.
int hashCode()
Возвращает хеш-код этого объекта.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
String toString()
Возвращает строковое представление объекта.
final void wait()
Переводит текущий поток в состояние ожидания до пробуждения, обычно в результате вызова notify или interrupt.
final void wait(long timeoutMillis)
Переводит текущий поток в состояние ожидания до пробуждения, обычно в результате вызова notify или interrupt, либо до истечения определенного промежутка реального времени.
final void wait(long timeoutMillis, int nanos)
Переводит текущий поток в состояние ожидания до пробуждения, обычно в результате вызова notify или interrupt, либо до истечения определенного промежутка реального времени.

Методы, объявленные в интерфейсе SSLSession

getApplicationBufferSize, getCipherSuite, getCreationTime, getId, getLastAccessedTime, getLocalCertificates, getLocalPrincipal, getPacketBufferSize, getPeerCertificateChain, getPeerCertificates, getPeerHost, getPeerPort, getPeerPrincipal, getProtocol, getSessionContext, getValue, getValueNames, invalidate, isValid, putValue, removeValue
Модификатор и тип Метод Описание
int getApplicationBufferSize()
Возвращает текущий размер наибольших ожидаемых данных приложения при использовании этого сеанса.
String getCipherSuite()
Возвращает название набора шифров SSL, используемого для всех соединений в сеансе.
long getCreationTime()
Возвращает время создания этого представления сеанса в миллисекундах с полуночи 1 января 1970 года UTC.
byte[] getId()
Возвращает идентификатор, назначенный этому сеансу.
long getLastAccessedTime()
Возвращает время последнего обращения к этому представлению сеанса инфраструктурой уровня сеанса в миллисекундах с полуночи 1 января 1970 года UTC.
Certificate[] getLocalCertificates()
Возвращает сертификат или сертификаты, отправленные узлу-партнеру во время выполнения рукопожатия.
Principal getLocalPrincipal()
Возвращает субъект, отправленный узлу-партнеру во время выполнения рукопожатия.
int getPacketBufferSize()
Возвращает текущий размер наибольшего ожидаемого пакета SSL/TLS/DTLS при использовании этого сеанса.
default X509Certificate[] getPeerCertificateChain()
Устарело, будет удалено: этот элемент API подлежит удалению в будущей версии.
Вместо него следует использовать метод SSLSession.getPeerCertificates(), возвращающий массив объектов java.security.cert.Certificate.
Certificate[] getPeerCertificates()
Возвращает идентификатор узла-партнера, установленный при создании сеанса.
String getPeerHost()
Возвращает имя хоста узла-партнера в этом сеансе.
int getPeerPort()
Возвращает номер порта узла-партнера в этом сеансе.
Principal getPeerPrincipal()
Возвращает идентификатор узла-партнера, установленный при создании сеанса.
String getProtocol()
Возвращает стандартное название протокола, используемого для всех соединений в сеансе.
SSLSessionContext getSessionContext()
Возвращает контекст, к которому привязан этот сеанс.
Object getValue(String name)
Возвращает объект, привязанный к указанному имени в данных прикладного уровня сеанса.
String[] getValueNames()
Возвращает массив имен всех объектов данных прикладного уровня, привязанных к сеансу.
void invalidate()
Делает сеанс недействительным.
boolean isValid()
Возвращает признак того, что этот сеанс действителен и доступен для возобновления или объединения.
void putValue(String name, Object value)
Привязывает указанный объект value к данным прикладного уровня сеанса под заданным именем name.
void removeValue(String name)
Удаляет объект, привязанный к указанному имени в данных прикладного уровня сеанса.

Подробное описание конструкторов

ExtendedSSLSession

public ExtendedSSLSession()
Конструктор для вызова подклассами.

Подробное описание методов

getLocalSupportedSignatureAlgorithms

public abstract String[] getLocalSupportedSignatureAlgorithms()
Возвращает массив поддерживаемых алгоритмов подписи, которые локальная сторона готова использовать.

Примечание: этот метод используется для указания узлу-партнеру алгоритмов подписи, которые могут применяться для цифровых подписей в TLS/DTLS 1.2. Для версий TLS/DTLS до 1.2 этот метод не имеет смысла.

Название алгоритма подписи должно соответствовать стандартному названию в Java Security (например, "SHA1withRSA", "SHA256withECDSA" и т. д.). Сведения о стандартных названиях алгоритмов см. в документе Стандартные названия алгоритмов Java Security.

Примечание: поддерживаемые локальной стороной алгоритмы подписи должны соответствовать ограничениям алгоритмов, заданным методом getAlgorithmConstraints() в SSLParameters.

Возвращает:
Массив поддерживаемых алгоритмов подписи в порядке убывания предпочтительности. Если ни один алгоритм подписи не поддерживается, возвращается пустой массив.
Внешние спецификации
  • Стандартные названия алгоритмов Java Security
См. также:
  • SSLParameters.getAlgorithmConstraints()

getPeerSupportedSignatureAlgorithms

public abstract String[] getPeerSupportedSignatureAlgorithms()
Возвращает массив поддерживаемых алгоритмов подписи, которые может использовать узел-партнер.

Примечание: этот метод используется для указания локальной стороне алгоритмов подписи, которые могут применяться для цифровых подписей в TLS/DTLS 1.2. Для версий TLS/DTLS до 1.2 этот метод не имеет смысла.

Название алгоритма подписи должно соответствовать стандартному названию в Java Security (например, "SHA1withRSA", "SHA256withECDSA" и т. д.). Сведения о стандартных названиях алгоритмов см. в документе Стандартные названия алгоритмов Java Security.

Возвращает:
Массив поддерживаемых алгоритмов подписи в порядке убывания предпочтительности. Если узел-партнер не отправил список поддерживаемых алгоритмов подписи, возвращается пустой массив.
Внешние спецификации
  • Стандартные названия алгоритмов Java Security
См. также:
  • X509KeyManager
  • X509ExtendedKeyManager

getRequestedServerNames

public List<SNIServerName> getRequestedServerNames()
Возвращает List, содержащий все имена SNIServerName запрошенного расширения Server Name Indication (SNI).

В режиме сервера, если возвращаемый List не пуст, серверу следует использовать запрошенные имена серверов при выборе подходящего сертификата аутентификации и/или при определении других аспектов политики безопасности.

В режиме клиента, если возвращаемый List не пуст, клиенту следует использовать запрошенные имена серверов при идентификации узла-партнера и/или при определении других аспектов политики безопасности.

Возвращает:
неизменяемый список SNIServerName запрошенных указаний имени сервера, который не может быть равен null. Возвращаемый список может быть пустым, если указания имени сервера не запрашивались.
Выбрасывает:
UnsupportedOperationException — если базовый поставщик не реализует эту операцию
С версии:
1.8
См. также:
  • SNIServerName
  • X509ExtendedTrustManager
  • X509ExtendedKeyManager

getStatusResponses

public List<byte[]> getStatusResponses()
Возвращает List, содержащий ответы OCSP в кодировке DER (с использованием типа ASN.1 OCSPResponse, определенного в RFC 6960), чтобы клиент мог проверить статус сертификата сервера во время выполнения рукопожатия.

Этот метод применяется только для аутентификации сервера на основе сертификата. X509ExtendedTrustManager использует возвращаемое значение для проверки сертификата сервера.

Требования к реализации:
По умолчанию этот метод выбрасывает UnsupportedOperationException. Классы, производные от ExtendedSSLSession, должны реализовать этот метод.
Возвращает:
неизменяемый список массивов байтов, который не может быть равен null; каждая запись содержит ответ OCSP в кодировке DER (с использованием типа ASN.1 OCSPResponse, определенного в RFC 6960). Порядок ответов должен соответствовать порядку сертификатов, представленных сервером в сообщении Certificate (см. SSLSession.getLocalCertificates() для режима сервера и SSLSession.getPeerCertificates() для режима клиента). Число возвращенных записей может быть меньше числа представленных сертификатов. Если запись в списке представляет собой массив байтов нулевой длины, вызывающий код должен считать, что запись OCSP для соответствующего сертификата отсутствует. Возвращаемый список может быть пустым, если во время выполнения рукопожатия не было представлено ответов OCSP или если ни одна из конечных точек не поддерживает OCSP stapling для этого рукопожатия.
Выбрасывает:
UnsupportedOperationException — если базовый поставщик не реализует эту операцию
С версии:
9
См. также:
  • X509ExtendedTrustManager

exportKeyingMaterialKey

public SecretKey exportKeyingMaterialKey(String keyAlg, String label, byte[] context, int length) throws SSLKeyException
Генерирует экспортируемый материал ключа (EKM), вычисленный согласно алгоритмам, определенным в RFC 5705/8446.

В RFC 5705 (для (D)TLSv1.2 и более ранних версий) вычисляются разные значения EKM в зависимости от того, равен ли context null или не равен null/пуст. В RFC 8446 (TLSv1.3) контекст null трактуется как не равный null/пустой.

label будет преобразован в байты с использованием кодировки символов StandardCharsets.UTF_8.

Требования к реализации:
Реализация по умолчанию выбрасывает UnsupportedOperationException.
Параметры:
keyAlg — алгоритм результирующего объекта SecretKey. Сведения о стандартных названиях алгоритмов секретных ключей см. в разделе SecretKey Algorithms спецификации Стандартные названия алгоритмов Java Security.
label — байты метки, используемые при вычислении EKM. label будет преобразован в byte[] до начала операции.
context — байты контекста, используемые при вычислении EKM, или null
length — необходимое количество байтов материала EKM
Возвращает:
SecretKey, содержащий length байтов материала EKM
Выбрасывает:
SSLKeyException — если не удалось сгенерировать ключ
IllegalArgumentException — если keyAlg пуст, length не является положительным числом или длина label либо context не может быть обработана
NullPointerException — если keyAlg или label равен null
IllegalStateException — если в этом сеансе отсутствует необходимый материал для генерации ключа (например, если сеанс находится в процессе создания во время выполнения рукопожатия)
UnsupportedOperationException — если базовый поставщик не реализует эту операцию
С версии:
25
Внешние спецификации
  • RFC 5705: Экспортеры материала ключа для протокола транспортного уровня безопасности (TLS)
  • RFC 8446: Протокол транспортного уровня безопасности (TLS), версия 1.3

exportKeyingMaterialData

public byte[] exportKeyingMaterialData(String label, byte[] context, int length) throws SSLKeyException
Генерирует экспортируемый материал ключа (EKM), вычисленный согласно алгоритмам, определенным в RFC 5705/8446.

В RFC 5705 (для (D)TLSv1.2 и более ранних версий) вычисляются разные значения EKM в зависимости от того, равен ли context null или не равен null/пуст. В RFC 8446 (TLSv1.3) контекст null трактуется как не равный null/пустой.

label будет преобразован в байты с использованием кодировки символов StandardCharsets.UTF_8.

В зависимости от выбранного базового механизма выведения ключа извлечь или экспортировать необработанные байты может быть невозможно. В таких случаях для доступа к сгенерированному материалу ключа следует использовать метод exportKeyingMaterialKey(String, String, byte[], int).

Требования к реализации:
Реализация по умолчанию выбрасывает UnsupportedOperationException.
Параметры:
label — байты метки, используемые при вычислении EKM. label будет преобразован в byte[] до начала операции.
context — байты контекста, используемые при вычислении EKM, или null
length — необходимое количество байтов материала EKM
Возвращает:
массив байтов размером length, содержащий материал EKM
Выбрасывает:
SSLKeyException — если не удалось сгенерировать ключ
IllegalArgumentException — если length не является положительным числом или длина label либо context не может быть обработана
NullPointerException — если label равен null
IllegalStateException — если в этом сеансе отсутствует необходимый материал для генерации ключа (например, если сеанс находится в процессе создания во время выполнения рукопожатия)
UnsupportedOperationException — если базовый поставщик не реализует эту операцию или если производный материал ключа невозможно извлечь
С версии:
25
Внешние спецификации
  • RFC 5705: Экспортеры материала ключа для протокола транспортного уровня безопасности (TLS)
  • RFC 8446: Протокол транспортного уровня безопасности (TLS), версия 1.3

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в документации Java SE, содержащей более подробные описания для разработчиков, обзоры концепций, определения терминов, обходные решения и работающие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторские права © 1993, 2026, Oracle и/или ее аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API