Класс 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 | Модификатор и тип | Метод | Описание |
|---|---|---|
protected Object |
clone() |
Создает и возвращает копию этого объекта. |
boolean |
equals |
Показывает, равен ли этот объект какому-либо другому объекту. |
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 |
Переводит текущий поток в состояние ожидания до пробуждения, обычно в результате вызова notify или interrupt, либо до истечения определенного промежутка реального времени. |
final void |
wait |
Переводит текущий поток в состояние ожидания до пробуждения, обычно в результате вызова 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[] |
getValueNames() |
Возвращает массив имен всех объектов данных прикладного уровня, привязанных к сеансу. |
void |
invalidate() |
Делает сеанс недействительным. |
boolean |
isValid() |
Возвращает признак того, что этот сеанс действителен и доступен для возобновления или объединения. |
void |
putValue |
Привязывает указанный объект value к данным прикладного уровня сеанса под заданным именем name. |
void |
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 не пуст, клиенту следует использовать запрошенные имена серверов при идентификации узла-партнера и/или при определении других аспектов политики безопасности.
- Возвращает:
- неизменяемый список
SNIServerNameзапрошенных указаний имени сервера, который не может быть равен null. Возвращаемый список может быть пустым, если указания имени сервера не запрашивались. - Выбрасывает:
-
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 или не равен 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
- Внешние спецификации
exportKeyingMaterialData
public byte[] exportKeyingMaterialData(String label, byte[] context, int length) throws SSLKeyException
В 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
- Внешние спецификации
© 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.