Класс 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 |
Задаёт, следует ли запрашивать аутентификацию клиента. |
Подробное описание конструкторов
SSLParameters
public SSLParameters()
Значения наборов шифров, протоколов, ограничений криптографических алгоритмов, алгоритма идентификации конечной точки, схем подписей, имен серверов и сопоставителей имен серверов задаются равными 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()
Массив может быть пустым (нулевой длины); в этом случае идентификаторы протоколов использоваться не будут.
При каждом вызове этот метод возвращает новый массив.
- Возвращает:
- не равный null массив имен протоколов прикладного уровня
String, который может быть нулевой длины. Элементы массива упорядочены по предпочтительности: первый элемент является наиболее предпочтительным. - Начиная с версии:
- 9
- См. также:
setApplicationProtocols
public void setApplicationProtocols(String[] protocols)
Если базовая реализация SSL/TLS поддерживает протоколы прикладного уровня, этот метод задает значения, которые можно согласовать с помощью таких протоколов, как RFC 7301 — согласование протоколов прикладного уровня (ALPN).
Если ожидается, что эта сторона соединения будет предлагать значения протокола прикладного уровня, все протоколы, настроенные этим методом, будут отправлены другой стороне.
Если ожидается, что эта сторона соединения будет выбирать значение протокола прикладного уровня, настроенные этим методом значения protocols сравниваются со значениями, отправленными другой стороной. Первое совпавшее значение становится согласованным. Если другая сторона фактически не запрашивала ни одно из значений protocols, базовый протокол определяет дальнейшие действия. (Например, ALPN отправит оповещение "no_application_protocol" и разорвет соединение.)
Значения String должны быть представлены в сетевом байтовом формате, ожидаемом другой стороной. Например, если значение String для ALPN должно передаваться с использованием 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.
https://docs.oracle.com/en/java/javase/25/docs/api/java.base/javax/net/ssl/SSLParameters.html