Класс ExtendedSSLSession
- Все реализуемые интерфейсы:
SSLSession
public abstract class ExtendedSSLSession extends Object implements SSLSession
SSLSession для поддержки дополнительных атрибутов сеанса.- С версии:
- 1.7
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
ExtendedSSLSession() |
Конструктор для вызова из подклассов. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
byte[] |
exportKeyingMaterialData |
Создает экспортируемый материал ключей (EKM), вычисленный согласно алгоритмам, определенным в RFC 5705/8446. |
SecretKey |
exportKeyingMaterialKey |
Создает экспортируемый материал ключей (EKM), вычисленный согласно алгоритмам, определенным в RFC 5705/8446. |
abstract String[] |
getLocalSupportedSignatureAlgorithms() |
Получает массив поддерживаемых алгоритмов подписи, которые локальная сторона готова использовать. |
abstract String[] |
getPeerSupportedSignatureAlgorithms() |
Получает массив поддерживаемых алгоритмов подписи, которые может использовать узел-партнер. |
List |
getRequestedServerNames() |
Получает List, содержащий все SNIServerName запрошенного расширения Server Name Indication (SNI). |
List |
getStatusResponses() |
Возвращает List, содержащий ответы OCSP в кодировке DER (с типом ASN.1 OCSPResponse, определенным в RFC 6960), чтобы клиент мог проверить статус сертификата сервера во время рукопожатия. |
Методы, объявленные в классе Object
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. Для версий TLS/DTLS ниже 1.2 он не имеет смысла.
Имя алгоритма подписи должно быть стандартным именем Java Security (например, "SHA1withRSA", "SHA256withECDSA" и т. д.). Сведения о стандартных именах алгоритмов см. в документе Стандартные имена алгоритмов Java Security.
Примечание: поддерживаемые локальной стороной алгоритмы подписи должны соответствовать ограничениям алгоритмов, заданным методом getAlgorithmConstraints() в SSLParameters.
- Возвращает:
- Массив поддерживаемых алгоритмов подписи в порядке убывания предпочтения. Если ни один алгоритм подписи не поддерживается, возвращается пустой массив.
- Внешние спецификации
- См. также:
getPeerSupportedSignatureAlgorithms
public abstract String[] getPeerSupportedSignatureAlgorithms()
Примечание: этот метод используется для указания локальной стороне, какие алгоритмы подписи могут применяться для цифровых подписей в TLS/DTLS 1.2. Для версий TLS/DTLS ниже 1.2 он не имеет смысла.
Имя алгоритма подписи должно быть стандартным именем Java Security (например, "SHA1withRSA", "SHA256withECDSA" и т. д.). Сведения о стандартных именах алгоритмов см. в документе Стандартные имена алгоритмов Java Security.
- Возвращает:
- Массив поддерживаемых алгоритмов подписи в порядке убывания предпочтения. Если узел-партнер не отправил список поддерживаемых алгоритмов подписи, возвращается пустой массив.
- Внешние спецификации
- См. также:
getRequestedServerNames
public List<SNIServerName> getRequestedServerNames()
List, содержащий все SNIServerName запрошенного расширения Server Name Indication (SNI). В режиме сервера, если возвращаемый List не пуст, серверу следует использовать запрошенные имена сервера для выбора подходящего сертификата аутентификации и/или определения других аспектов политики безопасности.
В режиме клиента, если возвращаемый List не пуст, клиенту следует использовать запрошенные имена сервера для идентификации конечной точки и установления идентичности узла-партнера и/или определения других аспектов политики безопасности.
- Возвращает:
- не null, неизменяемый список
SNIServerNameзапрошенных указаний имени сервера. Возвращаемый список может быть пустым, если указания имени сервера не запрашивались. - Выбрасывает:
-
UnsupportedOperationException— если базовый провайдер не реализует эту операцию - С версии:
- 1.8
- См. также:
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
- См. также:
exportKeyingMaterialKey
public SecretKey exportKeyingMaterialKey(String keyAlg, String label, byte[] context, int length) throws SSLKeyException
RFC 5705 (для (D)TLSv1.2 и более ранних версий) вычисляет разные значения EKM в зависимости от того, является ли context null или ненулевым/непустым. RFC 8446 (TLSv1.3) рассматривает 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
- Внешние спецификации
exportKeyingMaterialData
public byte[] exportKeyingMaterialData(String label, byte[] context, int length) throws SSLKeyException
RFC 5705 (для (D)TLSv1.2 и более ранних версий) вычисляет разные значения EKM в зависимости от того, является ли context null или ненулевым/непустым. RFC 8446 (TLSv1.3) рассматривает 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
- Внешние спецификации
© 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.
https://docs.oracle.com/en/java/javase/25/docs/api/java.base/javax/net/ssl/ExtendedSSLSession.html