Класс SSLParameters
public class SSLParameters extends Object
Объекты SSLParameter можно создавать с помощью конструкторов этого класса и использовать как предварительно заполненные объекты. Объекты SSLParameter также можно получить с помощью методов getSSLParameters() в SSLSocket, SSLServerSocket и SSLEngine или методов getDefaultSSLParameters() и getSupportedSSLParameters() в SSLContext; их можно использовать как объекты, заполненные параметрами соединения.
Параметры 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. |
SSLParameters |
Создаёт объект SSLParameters из указанного массива наборов шифров. |
SSLParameters |
Создаёт объект SSLParameters из указанного массива наборов шифров и протоколов. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
AlgorithmConstraints |
getAlgorithmConstraints() |
Возвращает ограничения криптографических алгоритмов. |
String[] |
getApplicationProtocols() |
Возвращает упорядоченный по приоритету массив имён протоколов прикладного уровня, которые можно согласовать с использованием протоколов SSL/TLS/DTLS. |
String[] |
getCipherSuites() |
Возвращает копию массива наборов шифров или null, если они не заданы. |
boolean |
getEnableRetransmissions() |
Возвращает значение, указывающее, следует ли включить повторные передачи при согласовании DTLS. |
String |
getEndpointIdentificationAlgorithm() |
Возвращает алгоритм идентификации конечной точки. |
int |
getMaximumPacketSize() |
Возвращает максимальный ожидаемый размер сетевого пакета в байтах для записей SSL/TLS/DTLS. |
String[] |
getNamedGroups() |
Возвращает упорядоченный по приоритету массив имён именованных групп обмена ключами, которые можно использовать с протоколами SSL/TLS/DTLS. |
boolean |
getNeedClientAuth() |
Возвращает значение, указывающее, следует ли требовать аутентификацию клиента. |
String[] |
getProtocols() |
Возвращает копию массива протоколов или null, если они не заданы. |
final List |
getServerNames() |
Возвращает List, содержащий все объекты SNIServerName параметра индикации имени сервера (SNI), или null, если параметр не задан. |
String[] |
getSignatureSchemes() |
Возвращает упорядоченный по приоритету массив имён схем подписи, которые можно использовать с протоколами SSL/TLS/DTLS. |
final Collection |
getSNIMatchers() |
Возвращает Collection, содержащую все объекты SNIMatcher параметра индикации имени сервера (SNI), или null, если параметр не задан. |
final boolean |
getUseCipherSuitesOrder() |
Возвращает значение, указывающее, следует ли учитывать предпочтение локальной стороны относительно наборов шифров. |
boolean |
getWantClientAuth() |
Возвращает значение, указывающее, следует ли запрашивать аутентификацию клиента. |
void |
setAlgorithmConstraints |
Задаёт ограничения криптографических алгоритмов, которые будут применяться дополнительно к любым ограничениям, настроенным средой выполнения. |
void |
setApplicationProtocols |
Задаёт упорядоченный по приоритету массив имён протоколов прикладного уровня, которые можно согласовать с использованием протоколов SSL/TLS/DTLS. |
void |
setCipherSuites |
Задаёт массив наборов шифров. |
void |
setEnableRetransmissions |
Задаёт, следует ли включить повторные передачи при согласовании DTLS. |
void |
setEndpointIdentificationAlgorithm |
Задаёт алгоритм идентификации конечной точки. |
void |
setMaximumPacketSize |
Задаёт максимальный ожидаемый размер сетевого пакета в байтах для записей SSL/TLS/DTLS. |
void |
setNamedGroups |
Задаёт упорядоченный по приоритету массив имён именованных групп обмена ключами, которые можно использовать с протоколами SSL/TLS/DTLS. |
void |
setNeedClientAuth |
Задаёт, следует ли требовать аутентификацию клиента. |
void |
setProtocols |
Задаёт массив протоколов. |
final void |
setServerNames |
Задаёт требуемые объекты SNIServerName параметра индикации имени сервера (SNI). |
void |
setSignatureSchemes |
Задаёт упорядоченный по приоритету массив имён схем подписи, которые можно использовать с протоколами SSL/TLS/DTLS. |
final void |
setSNIMatchers |
Задаёт объекты SNIMatcher параметра индикации имени сервера (SNI). |
final void |
setUseCipherSuitesOrder |
Задаёт, следует ли учитывать предпочтение локальной стороны относительно наборов шифров. |
void |
setWantClientAuth |
Задаёт, следует ли запрашивать аутентификацию клиента. |
Методы, объявленные в классе 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, либо пока не истечёт заданный промежуток реального времени. |
Подробное описание конструкторов
SSLParameters
public SSLParameters()
Значения cipherSuites, protocols, ограничений криптографических алгоритмов, алгоритма идентификации конечной точки, схем подписей, имен серверов и средств сопоставления имен серверов устанавливаются в null; useCipherSuitesOrder, wantClientAuth и needClientAuth устанавливаются в false; enableRetransmissions устанавливается в true; максимальный размер сетевого пакета устанавливается в 0.
SSLParameters
public SSLParameters(String[] cipherSuites)
Вызов этого конструктора эквивалентен вызову конструктора без аргументов с последующим вызовом setCipherSuites(cipherSuites);. Обратите внимание, что стандартный список имен наборов шифров можно найти в разделе Имена наборов шифров JSSE спецификации «Стандартные имена алгоритмов безопасности Java». Поставщики могут поддерживать имена наборов шифров, отсутствующие в этом списке.
- Параметры:
-
cipherSuites— массив наборов шифров (или null) - Внешние спецификации
SSLParameters
public SSLParameters(String[] cipherSuites, String[] protocols)
Вызов этого конструктора эквивалентен вызову конструктора без аргументов с последующим вызовом setCipherSuites(cipherSuites); setProtocols(protocols);. Обратите внимание, что стандартный список имен наборов шифров можно найти в разделе Имена наборов шифров JSSE спецификации «Стандартные имена алгоритмов безопасности Java». Поставщики могут поддерживать имена наборов шифров, отсутствующие в этом списке.
- Параметры:
-
cipherSuites— массив наборов шифров (или null) -
protocols— массив протоколов (или null) - Внешние спецификации
Подробное описание методов
getCipherSuites
public String[] getCipherSuites()
Возвращаемый массив содержит наборы шифров из списка стандартных имен наборов шифров в разделе Имена наборов шифров JSSE спецификации «Стандартные имена алгоритмов безопасности Java», а также может содержать другие наборы шифров, поддерживаемые поставщиком.
- Возвращает:
- копию массива наборов шифров или null, если они не заданы.
- Внешние спецификации
setCipherSuites
public void setCipherSuites(String[] cipherSuites)
- Параметры:
-
cipherSuites— массив наборов шифров (или null). Обратите внимание, что стандартный список имен наборов шифров можно найти в разделе Имена наборов шифров JSSE спецификации «Стандартные имена алгоритмов безопасности Java». Поставщики могут поддерживать имена наборов шифров, отсутствующие в этом списке, или не использовать рекомендуемое имя для определенного набора шифров. - Внешние спецификации
getProtocols
public String[] getProtocols()
- Возвращает:
- копию массива протоколов или 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. Это необходимо для предотвращения атак типа «человек посередине».
- Параметры:
-
algorithm— стандартное строковое имя алгоритма идентификации конечной точки (или null). Сведения о стандартных именах алгоритмов см. в документе «Стандартные имена алгоритмов безопасности Java». - Начиная с:
- 1.7
- Внешние спецификации
- См. также:
setServerNames
public final void setServerNames(List<SNIServerName> serverNames)
SNIServerName параметра индикации имени сервера (SNI). Этот метод полезен только для SSLSocket или SSLEngine, работающих в режиме клиента.
Обратите внимание, что список serverNames клонируется для защиты от последующих изменений.
- Параметры:
-
serverNames— список требуемыхSNIServerName(или null) - Вызывает исключение:
-
NullPointerException— еслиserverNamesсодержит элементnull -
IllegalArgumentException— еслиserverNamesсодержит несколько имен одного типа - Начиная с:
- 1.8
- См. также:
getServerNames
public final List<SNIServerName> getServerNames()
List, содержащий все SNIServerName параметра индикации имени сервера (SNI), или null, если они не заданы. Этот метод полезен только для SSLSocket или SSLEngine, работающих в режиме клиента.
Для соединений SSL/TLS/DTLS базовый поставщик SSL/TLS/DTLS может задавать значение по умолчанию для определенного типа имени сервера. В режиме клиента рекомендуется, чтобы поставщики по умолчанию включали индикацию имени сервера, если сервер можно найти по поддерживаемому типу имени сервера.
Рекомендуется, чтобы поставщики инициализировали значения индикации имени сервера по умолчанию при создании SSLSocket/SSLEngine. В следующих примерах имя сервера может быть представлено экземпляром SNIHostName, инициализированным именем хоста "www.example.com" и типом StandardConstants.SNI_HOST_NAME.
Socket socket =
sslSocketFactory.createSocket("www.example.com", 443);
или
SSLEngine engine =
sslContext.createSSLEngine("www.example.com", 443);
- Возвращает:
- null или неизменяемый список ненулевых
SNIServerName - Начиная с:
- 1.8
- См. также:
setSNIMatchers
public final void setSNIMatchers(Collection<SNIMatcher> matchers)
SNIMatcher параметра индикации имени сервера (SNI). Этот метод полезен только для SSLSocket или SSLEngine, работающих в режиме сервера.
Обратите внимание, что коллекция matchers клонируется для защиты от последующих изменений.
- Параметры:
-
matchers— коллекцияSNIMatcher(или null) - Вызывает исключение:
-
NullPointerException— еслиmatchersсодержит элементnull -
IllegalArgumentException— еслиmatchersсодержит несколько имен одного типа - Начиная с:
- 1.8
- См. также:
getSNIMatchers
public final Collection<SNIMatcher> getSNIMatchers()
Collection, содержащую все SNIMatcher параметра индикации имени сервера (SNI), или null, если они не заданы. Этот метод полезен только для SSLSocket или SSLEngine, работающих в режиме сервера.
Для лучшей совместимости поставщики обычно не задают средства сопоставления по умолчанию, чтобы серверы по умолчанию игнорировали расширение SNI и продолжали рукопожатие.
- Возвращает:
- null или неизменяемую коллекцию ненулевых
SNIMatcher - Начиная с:
- 1.8
- См. также:
setUseCipherSuitesOrder
public final void setUseCipherSuitesOrder(boolean honorOrder)
- Параметры:
-
honorOrder— признак того, следует ли учитывать порядок наборов шифров локальной стороны в#getCipherSuitesво время рукопожатия SSL/TLS/DTLS. - Начиная с:
- 1.8
- См. также:
getUseCipherSuitesOrder
public final boolean getUseCipherSuitesOrder()
- Возвращает:
- признак того, следует ли учитывать порядок наборов шифров локальной стороны в
#getCipherSuitesво время рукопожатия SSL/TLS/DTLS. - Начиная с:
- 1.8
- См. также:
setEnableRetransmissions
public void setEnableRetransmissions(boolean enableRetransmissions)
- Параметры:
-
enableRetransmissions—trueозначает, что повторные передачи сообщений рукопожатия DTLS следует включить;falseозначает, что повторные передачи сообщений рукопожатия DTLS следует отключить - Начиная с:
- 9
- См. также:
getEnableRetransmissions
public boolean getEnableRetransmissions()
- Возвращает:
- true, если повторные передачи сообщений рукопожатия DTLS следует включить
- Начиная с:
- 9
- См. также:
setMaximumPacketSize
public void setMaximumPacketSize(int maximumPacketSize)
- Примечание к API:
- По возможности рекомендуется задавать максимальный размер пакета не менее 256 байт, чтобы небольшие сообщения рукопожатия, например HelloVerifyRequests, не фрагментировались.
- Примечание по реализации:
- Если максимальный размер пакета слишком мал для размещения минимальной записи, реализация может попытаться сформировать записи минимально возможного размера. Однако это может привести к тому, что сформированный пакет превысит максимальный размер пакета.
- Параметры:
-
maximumPacketSize— максимальный ожидаемый размер сетевого пакета в байтах или0, чтобы использовать неявный размер, автоматически заданный базовой реализацией. - Вызывает исключение:
-
IllegalArgumentException— еслиmaximumPacketSizeотрицательно. - Начиная с:
- 9
- См. также:
getMaximumPacketSize
public int getMaximumPacketSize()
- Примечание к API:
- Неявный размер может быть непостоянным, особенно в реализации протоколов DTLS.
- Примечание по реализации:
- Для соединений SSL/TLS/DTLS базовый поставщик должен вычислить и указать неявное значение максимального ожидаемого размера сетевого пакета, если оно не задано явно. Для объекта, заполненного параметрами соединения, этот метод никогда не должен возвращать
0, чтобы приложения могли получить фактический неявный размер базовой реализации.Реализация должна стремиться соблюдать заданное ограничение на размер пакета. Однако, если максимальный размер пакета слишком мал для размещения минимальной записи, реализация может попытаться сформировать записи минимально возможного размера. Это может привести к тому, что сформированный пакет превысит максимальный размер пакета.
- Возвращает:
- максимальный ожидаемый размер сетевого пакета или
0, если используется неявный размер, автоматически заданный базовой реализацией, и этот объект не был заполнен параметрами какого-либо соединения. - Начиная с:
- 9
- См. также:
getApplicationProtocols
public String[] getApplicationProtocols()
Массив может быть пустым (нулевой длины); в этом случае индикация протоколов использоваться не будет.
При каждом вызове этот метод возвращает новый массив.
- Возвращает:
- ненулевой массив протоколов прикладного уровня
String, который может иметь нулевую длину. Элементы массива упорядочены в соответствии с приоритетом протоколов: первая запись имеет наивысший приоритет. - Начиная с:
- 9
- См. также:
setApplicationProtocols
public void setApplicationProtocols(String[] protocols)
Если базовая реализация SSL/TLS поддерживает протоколы прикладного уровня, этот метод настраивает значения, которые могут быть согласованы такими протоколами, как RFC 7301 — согласование протоколов прикладного уровня (ALPN).
Если ожидается, что эта сторона соединения будет предлагать значения протоколов прикладного уровня, все протоколы, настроенные этим методом, будут отправлены другой стороне.
Если ожидается, что эта сторона соединения будет выбирать значение протокола прикладного уровня, значения protocols, заданные этим методом, сравниваются со значениями, отправленными другой стороной. Первое совпавшее значение становится согласованным значением. Если другая сторона фактически не запрашивала ни одно из значений protocols, базовый протокол определяет дальнейшие действия. (Например, ALPN отправит предупреждение "no_application_protocol" и завершит соединение.)
Значения String должны быть представлены в сетевом формате, ожидаемом другой стороной. Например, если значение ALPN String должно передаваться с использованием UTF-8, значение String следует преобразовать в его представление byte[] и сохранить как ориентированную на байты величину 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]имеет наивысший приоритет. Если массив пуст (нулевой длины), индикация протоколов использоваться не будет. - Вызывает исключение:
-
IllegalArgumentException— если protocols равен null или если какой-либо элемент непустого массива равен null либо является пустой строкой (нулевой длины) - Начиная с:
- 9
- Внешние спецификации
- См. также:
getSignatureSchemes
public String[] getSignatureSchemes()
Обратите внимание, что стандартный список имен схем подписей определен в разделе Схемы подписей спецификации «Стандартные имена алгоритмов безопасности Java». Поставщики могут поддерживать схемы подписей, не определенные в этом списке, или не использовать рекомендуемое имя для определенной схемы подписей.
Набор схем подписей, используемых в соединениях SSL/TLS/DTLS, определяется массивом, возвращаемым этим методом, и набором схем подписей по умолчанию, зависящим от поставщика.
Если возвращаемый массив равен null, в соединениях SSL/TLS/DTLS будет использоваться набор схем подписей по умолчанию, зависящий от поставщика.
Если возвращаемый массив пуст (нулевой длины), механизм согласования схем подписей отключается для протоколов SSL/TLS/DTLS, и соединения могут не установиться, если определенный протокол SSL/TLS/DTLS требует этот механизм согласования. Этот параметр переопределяет набор схем подписей по умолчанию, зависящий от поставщика.
Если возвращаемый массив не равен null и не пуст (нулевой длины), в соединениях SSL/TLS/DTLS будут использоваться схемы подписей из возвращаемого массива. Этот параметр переопределяет набор схем подписей по умолчанию, зависящий от поставщика.
Если метод setSignatureSchemes(String[]) был вызван, этот метод возвращает последнее переданное ему значение; в противном случае он возвращает схемы подписей по умолчанию для объектов, заполненных параметрами соединения, или null для предварительно заполненных объектов.
- Примечание к API:
- Обратите внимание, что поставщик может быть не обновлен для поддержки этого метода и в таком случае может возвращать
nullвместо схем подписей по умолчанию для объектов, заполненных параметрами соединения. - Примечание по реализации:
- Поставщик SunJSSE поддерживает этот метод. Обратите внимание, что приложения могут использовать системные свойства
jdk.tls.client.SignatureSchemesи/илиjdk.tls.server.SignatureSchemesс поставщиком SunJSSE для переопределения набора схем подписей по умолчанию, зависящего от поставщика. - Возвращает:
- массив имен схем подписей
Stringsилиnull, если они не заданы. При ненулевом результате этот метод возвращает новый массив при каждом вызове. Элементы массива упорядочены в соответствии с приоритетом схем подписей: первая запись имеет наивысший приоритет. Поставщикам следует игнорировать неизвестные имена схем подписей при установлении соединений SSL/TLS/DTLS. - Начиная с:
- 19
- Внешние спецификации
- См. также:
setSignatureSchemes
public void setSignatureSchemes(String[] signatureSchemes)
Обратите внимание, что стандартный список имен схем подписей определен в разделе Схемы подписей спецификации «Стандартные имена алгоритмов безопасности Java». Поставщики могут поддерживать схемы подписей, не определенные в этом списке, или не использовать рекомендуемое имя для определенной схемы подписей.
Набор схем подписей, используемых в соединениях SSL/TLS/DTLS, определяется входным параметром — массивом signatureSchemes — и набором схем подписей по умолчанию, зависящим от поставщика. Подробное описание использования параметров в соединениях SSL/TLS/DTLS см. в разделе getSignatureSchemes().
- Примечание к API:
- Обратите внимание, что поставщик может быть не обновлен для поддержки этого метода и в таком случае может игнорировать заданные схемы.
- Примечание по реализации:
- Поставщик SunJSSE поддерживает этот метод.
- Параметры:
-
signatureSchemes— упорядоченный массив имен схем подписей, в котором первая запись имеет наивысший приоритет, илиnull. Этот метод создает копию массива. Поставщикам следует игнорировать неизвестные имена схем подписей при установлении соединений SSL/TLS/DTLS. - Вызывает исключение:
-
IllegalArgumentException— если какой-либо элемент массиваsignatureSchemesравенnullили является пробельной строкой. - Начиная с:
- 19
- Внешние спецификации
- См. также:
getNamedGroups
public String[] getNamedGroups()
Обратите внимание, что стандартный список именованных групп обмена ключами определен в разделе Именованные группы спецификации стандартных имен алгоритмов безопасности Java. Поставщики могут поддерживать именованные группы, не включенные в этот список, или использовать для определенной именованной группы имя, отличное от рекомендуемого.
Набор именованных групп, используемых в соединениях SSL/TLS/DTLS, определяется возвращаемым массивом этого метода и набором именованных групп по умолчанию, заданным конкретным поставщиком.
Если возвращаемый массив равен null, в соединениях SSL/TLS/DTLS будут использоваться именованные группы по умолчанию, заданные конкретным поставщиком.
Если возвращаемый массив пуст (имеет нулевую длину), механизм согласования именованных групп отключается для протоколов SSL/TLS/DTLS, и соединения могут не установиться, если этот механизм необходим для определенного протокола SSL/TLS/DTLS. Этот параметр переопределяет набор именованных групп по умолчанию, заданный конкретным поставщиком.
Если возвращаемый массив не равен null и не пуст (не имеет нулевую длину), в соединениях SSL/TLS/DTLS будут использоваться именованные группы из возвращаемого массива. Этот параметр переопределяет набор именованных групп по умолчанию, заданный конкретным поставщиком.
Этот метод возвращает последнее значение, переданное в setNamedGroups(String[]), если этот метод был вызван; в противном случае он возвращает именованные группы по умолчанию для объектов, заполненных данными соединения, или null для предварительно заполненных объектов.
- Примечание к API:
- Обратите внимание, что поставщик может быть не обновлен для поддержки этого метода и в таком случае может возвращать
nullвместо именованных групп по умолчанию для объектов, заполненных данными соединения. - Примечание по реализации:
- Поставщик SunJSSE поддерживает этот метод. Обратите внимание, что приложения могут использовать системное свойство
jdk.tls.namedGroupsс поставщиком SunJSSE для переопределения набора именованных групп по умолчанию, заданного конкретным поставщиком. - Возвращает:
- массив имен именованных групп обмена ключами
Stringsилиnull, если ни одна группа не задана. При ненулевом результате этот метод при каждом вызове возвращает новый массив. Массив упорядочен по предпочтительности именованных групп: первая запись соответствует наиболее предпочтительной группе. Поставщикам следует игнорировать неизвестные имена именованных групп при установлении соединений SSL/TLS/DTLS. - Начиная с:
- 20
- Внешние спецификации
- См. также:
setNamedGroups
public void setNamedGroups(String[] namedGroups)
Обратите внимание, что стандартный список именованных групп обмена ключами определен в разделе Именованные группы спецификации стандартных имен алгоритмов безопасности Java. Поставщики могут поддерживать именованные группы, не включенные в этот список, или использовать для определенной именованной группы имя, отличное от рекомендуемого.
Набор именованных групп, используемых в соединениях SSL/TLS/DTLS, определяется входным массивом параметра namedGroups и набором именованных групп по умолчанию, заданным конкретным поставщиком. Подробные сведения об использовании параметров в соединениях SSL/TLS/DTLS см. в описании getNamedGroups().
- Примечание к API:
- Обратите внимание, что поставщик может быть не обновлен для поддержки этого метода и в таком случае может игнорировать заданные именованные группы.
- Примечание по реализации:
- Поставщик SunJSSE поддерживает этот метод.
- Параметры:
-
namedGroups— упорядоченный массив имен именованных групп обмена ключами, в котором первая запись соответствует наиболее предпочтительной группе, илиnull. Этот метод создает копию массива. Поставщикам следует игнорировать неизвестные имена схем именованных групп при установлении соединений SSL/TLS/DTLS. - Вызывает исключение:
-
IllegalArgumentException— если какой-либо элемент массиваnamedGroupsявляется дубликатом,nullили пустым. - Начиная с:
- 20
- Внешние спецификации
- См. также:
© 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.