Spec-Zone.ru › OpenJDK 21

Класс SSLParameters

java.lang.Object
javax.net.ssl.SSLParameters
public class SSLParameters extends Object
Оборачивает параметры для подключения SSL/TLS/DTLS. Параметры представляют собой список наборов шифрования, которые должны быть приняты в рукопожатии SSL/TLS/DTLS, список разрешенных протоколов, алгоритм идентификации конечной точки во время рукопожатия SSL/TLS/DTLS, указание имени сервера (SNI), максимальный размер сетевого пакета, ограничения алгоритмов, схемы подписи, именованные группы обмена ключами и то, должны ли серверы SSL/TLS/DTLS запрашивать или требовать аутентификацию клиента и т. д.

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);
 
Since:
1.6
See Also:
  • SSLSocket
  • SSLEngine
  • SSLContext

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

Конструктор Описание
SSLParameters()
Создаёт SSLParameters.
SSLParameters(String[] cipherSuites)
Создаёт SSLParameters из указанного массива наборов шифрования.
SSLParameters(String[] cipherSuites, String[] protocols)
Создаёт 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<SNIServerName> getServerNames()
Возвращает List содержащий все SNIServerName параметра указания имени сервера (SNI), или null, если он не задан.
String[] getSignatureSchemes()
Возвращает упорядоченный массив имён схем подписи, которые могут быть использованы по протоколам SSL/TLS/DTLS.
final Collection<SNIMatcher> getSNIMatchers()
Возвращает Collection содержащий все SNIMatcher параметра указания имени сервера (SNI), или null, если он не задан.
final boolean getUseCipherSuitesOrder()
Возвращает, следует ли учитывать предпочтение локальных наборов шифрования.
boolean getWantClientAuth()
Возвращает, следует ли запрашивать аутентификацию клиента.
void setAlgorithmConstraints(AlgorithmConstraints constraints)
Устанавливает ограничения криптографического алгоритма, которые будут использоваться дополнительно к любым, настроенным средой выполнения.
void setApplicationProtocols(String[] protocols)
Устанавливает упорядоченный массив имён протоколов прикладного уровня, которые могут быть переговорены по протоколам SSL/TLS/DTLS.
void setCipherSuites(String[] cipherSuites)
Устанавливает массив наборов шифрования.
void setEnableRetransmissions(boolean enableRetransmissions)
Устанавливает, следует ли включить повторные передачи рукопожатия DTLS.
void setEndpointIdentificationAlgorithm(String algorithm)
Устанавливает алгоритм идентификации конечной точки.
void setMaximumPacketSize(int maximumPacketSize)
Устанавливает максимальный ожидаемый размер сетевого пакета в байтах для записей SSL/TLS/DTLS.
void setNamedGroups(String[] namedGroups)
Устанавливает упорядоченный массив имён именованных групп обмена ключами, которые могут быть использованы по протоколам SSL/TLS/DTLS.
void setNeedClientAuth(boolean needClientAuth)
Устанавливает, должна ли быть необходима аутентификация клиента.
void setProtocols(String[] protocols)
Устанавливает массив протоколов.
final void setServerNames(List<SNIServerName> serverNames)
Устанавливает требуемые SNIServerName параметра указания имени сервера (SNI).
void setSignatureSchemes(String[] signatureSchemes)
Устанавливает упорядоченный массив имён схем подписи, которые могут быть использованы по протоколам SSL/TLS/DTLS.
final void setSNIMatchers(Collection<SNIMatcher> matchers)
Устанавливает SNIMatcher параметра указания имени сервера (SNI).
final void setUseCipherSuitesOrder(boolean honorOrder)
Устанавливает, следует ли учитывать предпочтение локальных наборов шифрования.
void setWantClientAuth(boolean wantClientAuth)
Устанавливает, следует ли запрашивать аутентификацию клиента.

Методы, унаследованные от класса java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

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

SSLParameters

public SSLParameters()
Создаёт SSLParameters.

Значения cipherSuites, protocols, ограничений криптографических алгоритмов, алгоритма идентификации конечной точки, схем подписи, имён сервера и соответствий имён сервера устанавливаются в null; useCipherSuitesOrder, wantClientAuth и needClientAuth устанавливаются в false; enableRetransmissions устанавливается в true; максимальный размер сетевого пакета устанавливается в 0.

SSLParameters

public SSLParameters(String[] cipherSuites)
Создаёт SSLParameters из указанного массива наборов шифров.

Вызов этого конструктора эквивалентен вызову конструктора без аргументов, за которым следует setCipherSuites(cipherSuites);. Обратите внимание, что стандартный список имён наборов шифров можно найти в разделе JSSE Cipher Suite Names спецификации Java Security Standard Algorithm Names. Поставщики могут поддерживать имена наборов шифров, отсутствующие в этом списке.

Parameters:
cipherSuites - массив наборов шифров (или null)

SSLParameters

public SSLParameters(String[] cipherSuites, String[] protocols)
Создаёт SSLParameters из указанного массива наборов шифров и протоколов.

Вызов этого конструктора эквивалентен вызову конструктора без аргументов, за которым следует setCipherSuites(cipherSuites); setProtocols(protocols);. Обратите внимание, что стандартный список имён наборов шифров можно найти в разделе JSSE Cipher Suite Names спецификации Java Security Standard Algorithm Names. Поставщики могут поддерживать имена наборов шифров, отсутствующие в этом списке.

Parameters:
cipherSuites - массив наборов шифров (или null)
protocols - массив протоколов (или null)

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

getCipherSuites

public String[] getCipherSuites()
Возвращает копию массива наборов шифров или null, если ни один не был задан.

Возвращаемый массив включает наборы шифров из списка стандартных имён наборов шифров в разделе JSSE Cipher Suite Names спецификации Java Security Standard Algorithm Names, а также может включать другие наборы шифров, которые поддерживает поставщик.

Returns:
копию массива наборов шифров или null, если ни один не был задан.

setCipherSuites

public void setCipherSuites(String[] cipherSuites)
Устанавливает массив наборов шифров.
Parameters:
cipherSuites - массив наборов шифров (или null). Обратите внимание, что стандартный список имён наборов шифров можно найти в разделе JSSE Cipher Suite Names спецификации Java Security Standard Algorithm Names. Поставщики могут поддерживать имена наборов шифров, отсутствующие в этом списке или могут не использовать рекомендуемое имя для определённого набора шифров.

getProtocols

public String[] getProtocols()
Возвращает копию массива протоколов или null, если ни один не был задан.
Returns:
копию массива протоколов или null, если ни один не был задан.

setProtocols

public void setProtocols(String[] protocols)
Устанавливает массив протоколов.
Parameters:
protocols - массив протоколов (или null)

getWantClientAuth

public boolean getWantClientAuth()
Возвращает, требуется ли запросить аутентификацию клиента.
Returns:
требуется ли запросить аутентификацию клиента.

setWantClientAuth

public void setWantClientAuth(boolean wantClientAuth)
Устанавливает, требуется ли запросить аутентификацию клиента. Вызов этого метода очищает флаг needClientAuth.
Parameters:
wantClientAuth - требуется ли запросить аутентификацию клиента

getNeedClientAuth

public boolean getNeedClientAuth()
Возвращает, требуется ли обязательная аутентификация клиента.
Returns:
требуется ли обязательная аутентификация клиента.

setNeedClientAuth

public void setNeedClientAuth(boolean needClientAuth)
Устанавливает, требуется ли обязательная аутентификация клиента. Вызов этого метода очищает флаг wantClientAuth.
Parameters:
needClientAuth - требуется ли обязательная аутентификация клиента

getAlgorithmConstraints

public AlgorithmConstraints getAlgorithmConstraints()
Возвращает ограничения криптографических алгоритмов.
Returns:
ограничения криптографических алгоритмов или null, если ограничения не заданы
Since:
1.7
See Also:
  • setAlgorithmConstraints(AlgorithmConstraints)

setAlgorithmConstraints

public void setAlgorithmConstraints(AlgorithmConstraints constraints)
Устанавливает ограничения криптографических алгоритмов, которые будут использоваться в дополнение к любым, настроенным средой выполнения.

Если параметр constraints не равен null, каждый криптографический алгоритм, ключ и параметры алгоритма, используемые в рукопожатии SSL/TLS/DTLS, должны быть разрешены ограничениями.

Parameters:
constraints - ограничения алгоритмов (или null)
Since:
1.7

getEndpointIdentificationAlgorithm

public String getEndpointIdentificationAlgorithm()
Получает алгоритм идентификации конечной точки.
Returns:
алгоритм идентификации конечной точки или null, если он не задан.
Since:
1.7
See Also:
  • X509ExtendedTrustManager
  • setEndpointIdentificationAlgorithm(String)

setEndpointIdentificationAlgorithm

public void setEndpointIdentificationAlgorithm(String algorithm)
Устанавливает алгоритм идентификации конечной точки.

Если параметр algorithm не равен null или не пуст, процедуры идентификации/проверки конечной точки должны обрабатываться во время рукопожатия SSL/TLS/DTLS. Это необходимо для предотвращения атак типа "man-in-the-middle".

Parameters:
algorithm - Стандартное строковое имя алгоритма идентификации конечной точки (или null). См. документ Java Security Standard Algorithm Names для получения информации о стандартных именах алгоритмов.
Since:
1.7
See Also:
  • X509ExtendedTrustManager

setServerNames

public final void setServerNames(List<SNIServerName> serverNames)
Устанавливает желаемые SNIServerName параметра Server Name Indication (SNI).

Этот метод полезен только для SSLSocket или SSLEngine в режиме клиента.

Обратите внимание, что список serverNames клонируется для защиты от последующих изменений.

Parameters:
serverNames - список желаемых SNIServerName (или null)
Throws:
NullPointerException - если список serverNames содержит null элемент
IllegalArgumentException - если список serverNames содержит более одного имени одного и того же типа
Since:
1.8
See Also:
  • SNIServerName
  • getServerNames()

getServerNames

public final List<SNIServerName> getServerNames()
Возвращает список List содержащий все SNIServerName параметра Server Name Indication (SNI) или null, если ни один не был задан.

Этот метод полезен только для SSLSocket или SSLEngine в режиме клиента.

Для подключений SSL/TLS/DTLS, базовый поставщик SSL/TLS/DTLS может указать значение по умолчанию для определённого типа имени сервера. В режиме клиента рекомендуется, чтобы поставщики по умолчанию включали указание имени сервера, когда сервер может быть расположен по поддерживаемому типу имени сервера.

Рекомендуется инициализировать значения по умолчанию Server Name Indication при создании 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);
 
Returns:
null или неизменяемый список не-null SNIServerName
Since:
1.8
See Also:
  • List
  • setServerNames(List)

setSNIMatchers

public final void setSNIMatchers(Collection<SNIMatcher> matchers)
Устанавливает SNIMatcher параметры указания имени сервера (SNI).

Этот метод полезен только для SSLSocket или SSLEngine работающих в режиме сервера.

Обратите внимание, что коллекция matchers клонируется для защиты от последующих изменений.

Parameters:
matchers - коллекция SNIMatcher (или null)
Throws:
NullPointerException - если коллекция matchers содержит null элемент
IllegalArgumentException - если коллекция matchers содержит более одного имени одного типа
Since:
1.8
See Also:
  • Collection
  • SNIMatcher
  • getSNIMatchers()

getSNIMatchers

public final Collection<SNIMatcher> getSNIMatchers()
Возвращает Collection, содержащий все SNIMatcher параметров указания имени сервера (SNI), или null, если не задано.

Этот метод полезен только для SSLSocket или SSLEngine работающих в режиме сервера.

Для лучшей совместимости, поставщики, как правило, не определяют соответствия по умолчанию, поэтому серверы по умолчанию игнорируют расширение SNI и продолжают установку соединения.

Returns:
null или неизменяемая коллекция непустых SNIMatcher
Since:
1.8
See Also:
  • SNIMatcher
  • setSNIMatchers(Collection)

setUseCipherSuitesOrder

public final void setUseCipherSuitesOrder(boolean honorOrder)
Устанавливает, следует ли учитывать предпочтения локальных наборов шифров.
Parameters:
honorOrder - следует ли учитывать порядок локальных наборов шифров в #getCipherSuites во время установления SSL/TLS/DTLS соединения.
Since:
1.8
See Also:
  • getUseCipherSuitesOrder()

getUseCipherSuitesOrder

public final boolean getUseCipherSuitesOrder()
Возвращает, следует ли учитывать предпочтения локальных наборов шифров.
Returns:
следует ли учитывать порядок локальных наборов шифров в #getCipherSuites во время установления SSL/TLS/DTLS соединения.
Since:
1.8
See Also:
  • setUseCipherSuitesOrder(boolean)

setEnableRetransmissions

public void setEnableRetransmissions(boolean enableRetransmissions)
Устанавливает, должны ли быть включены повторные передачи рукопожатия DTLS. Этот метод применим только к DTLS.
Parameters:
enableRetransmissions - true указывает, что повторные передачи рукопожатия DTLS должны быть включены; false указывает, что повторные передачи рукопожатия DTLS должны быть отключены
Since:
9
See Also:
  • getEnableRetransmissions()

getEnableRetransmissions

public boolean getEnableRetransmissions()
Возвращает, должны ли быть включены повторные передачи рукопожатия DTLS. Этот метод применим только к DTLS.
Returns:
true, если повторные передачи рукопожатия DTLS должны быть включены
Since:
9
See Also:
  • setEnableRetransmissions(boolean)

setMaximumPacketSize

public void setMaximumPacketSize(int maximumPacketSize)
Устанавливает максимальный ожидаемый размер сетевого пакета в байтах для записей SSL/TLS/DTLS.
API Note:
Рекомендуется, чтобы максимальный размер пакета, если это возможно, не был меньше 256 байт, чтобы небольшие сообщения рукопожатия, такие как HelloVerifyRequests, не фрагментировались.
Implementation Note:
Если максимальный размер пакета слишком мал для размещения минимальной записи, реализация может попытаться сгенерировать минимальные записи. Однако это может привести к тому, что сгенерированный пакет будет больше максимального размера пакета.
Parameters:
maximumPacketSize - максимальный ожидаемый размер сетевого пакета в байтах, или 0 для использования неявного размера, который автоматически задаётся основной реализацией.
Throws:
IllegalArgumentException - если maximumPacketSize отрицательное.
Since:
9
See Also:
  • getMaximumPacketSize()

getMaximumPacketSize

public int getMaximumPacketSize()
Возвращает максимальный ожидаемый размер сетевого пакета в байтах для записей SSL/TLS/DTLS.
API Note:
Неявный размер может не быть фиксированным значением, особенно для реализации протоколов DTLS.
Implementation Note:
Для подключений SSL/TLS/DTLS основная реализация должна рассчитать и указать неявное значение максимального ожидаемого размера сетевого пакета, если оно не настроено явно. Для любого подключенного объекта этот метод не должен возвращать 0, чтобы приложения могли получить фактический неявный размер основной реализации.

Реализация должна попытаться соответствовать настройке максимального размера пакета. Однако, если максимальный размер пакета слишком мал для размещения минимальной записи, реализация может попытаться сгенерировать минимальные записи. Это может привести к тому, что сгенерированный пакет будет больше максимального размера пакета.

Returns:
максимальный ожидаемый размер сетевого пакета, или 0 если используется неявный размер, который автоматически задаётся основной реализацией, и этот объект не был заполнен каким-либо подключением.
Since:
9
See Also:
  • setMaximumPacketSize(int)

getApplicationProtocols

public String[] getApplicationProtocols()
Возвращает упорядоченный массив имён протоколов прикладного уровня, которые могут быть согласованы по протоколам SSL/TLS/DTLS.

Массив может быть пустым (длина 0), в этом случае указания протоколов не будут использоваться.

Этот метод возвращает новый массив каждый раз, когда он вызывается.

Returns:
непустой, возможно пустой, массив имён протоколов прикладного уровня. Массив отсортирован по предпочтению протокола, при этом первый элемент является наиболее предпочтительным.
Since:
9
See Also:
  • setApplicationProtocols(java.lang.String[])

setApplicationProtocols

public void setApplicationProtocols(String[] protocols)
Устанавливает упорядоченный массив имён протоколов прикладного уровня, которые могут быть согласованы по протоколам SSL/TLS/DTLS.

Если протоколы прикладного уровня поддерживаются реализацией SSL/TLS, этот метод настраивает значения, которые могут быть согласованы протоколами, такими как RFC 7301 , Протокол согласования протоколов прикладного уровня (ALPN).

Если этот конец соединения должен предложить значения протоколов прикладного уровня, все протоколы, настроенные этим методом, будут отправлены партнёру.

Если этот конец соединения должен выбрать значение протокола прикладного уровня, настроенные этим методом protocols сравниваются с теми, что отправлены партнёром. Первое совпавшее значение становится согласованным значением. Если ни одно из protocols не было запрошено партнёром, основной протокол определит, какое действие предпринять. (Например, ALPN отправит "no_application_protocol" сигнал об ошибке и прервёт соединение.)

Значения String должны быть представлены с использованием сетевого представления байтов, ожидаемого партнёром. Например, если ALPN String должен быть обменён с использованием UTF-8, то String должен быть преобразован в его byte[] представление и сохранён как байтовый String перед вызовом этого метода.

     // MEETEI MAYEK LETTERS HUK UN I (Unicode 0xabcd->0xabcf): 2 bytes
     byte[] bytes = "\uabcd\uabce\uabcf"
             .getBytes(StandardCharsets.UTF_8);
     String HUK_UN_I = new String(bytes, StandardCharsets.ISO_8859_1);

     // 0x00-0xFF:  1 byte
     String rfc7301Grease8A = "\u008A\u008A";

     SSLParameters p = sslSocket.getSSLParameters();
     p.setApplicationProtocols(new String[] {
             "h2", "http/1.1", rfc7301Grease8A, HUK_UN_I});
     sslSocket.setSSLParameters(p);
 
Implementation Requirements:
Этот метод создаст копию массива protocols.
Parameters:
protocols - упорядоченный массив протоколов прикладного уровня, при этом protocols[0] является наиболее предпочтительным. Если массив пустой (длина 0), указания протоколов не будут использоваться.
Throws:
IllegalArgumentException - если protocols равен null или любой элемент в непустом массиве равен null или пустой (длиной 0) строке
Since:
9
See Also:
  • getApplicationProtocols()

getSignatureSchemes

public String[] getSignatureSchemes()
Возвращает упорядоченный массив имён схем подписи, которые могут использоваться по протоколам SSL/TLS/DTLS.

Обратите внимание, что стандартный список имён схем подписи определён в разделе Схемы подписи спецификации Java Security Standard Algorithm Names. Поставщики могут поддерживать схемы подписи, не определённые в этом списке, или могут не использовать рекомендуемое имя для определённой схемы подписи.

Набор схем подписи, которые будут использоваться по подключениям SSL/TLS/DTLS, определяется возвращаемым массивом этого метода и схемами подписи по умолчанию, специфичными для поставщика.

Если возвращаемый массив null, то схемы подписи по умолчанию, специфичные для поставщика, будут использоваться по подключениям SSL/TLS/DTLS.

Если возвращаемый массив пустой (длиной 0), то механизм переговоров схем подписи выключен для протоколов SSL/TLS/DTLS, и подключения могут не быть установлены, если механизм переговоров необходим определённому протоколу SSL/TLS/DTLS. Этот параметр переопределит схемы подписи по умолчанию, специфичные для поставщика.

Если возвращаемый массив не null или пустой (длиной 0), то схемы подписи в возвращаемом массиве будут использоваться по подключениям SSL/TLS/DTLS. Этот параметр переопределит схемы подписи по умолчанию, специфичные для поставщика.

Этот метод возвращает последнее значение, переданное в setSignatureSchemes(java.lang.String[]), если этот метод был вызван, а в противном случае возвращает схемы подписи по умолчанию для объектов подключений, заполненных объектами, или null для предопределённых объектов.

API Note:
Обратите внимание, что поставщик может не быть обновлён для поддержки этого метода, и в этом случае может вернуть null вместо схем подписи по умолчанию для объектов подключений, заполненных объектами.
Implementation Note:
Поставщик SunJSSE поддерживает этот метод. Обратите внимание, что приложения могут использовать системные свойства jdk.tls.client.SignatureSchemes и/или jdk.tls.server.SignatureSchemes с поставщиком SunJSSE для переопределения схем подписи по умолчанию, специфичных для поставщика.
Returns:
массив имён схем подписи Strings или null если ни один не был установлен. Для ненулевых возвращаемых значений этот метод будет возвращать новый массив каждый раз при вызове. Массив упорядочен по приоритету схем подписи, причём первый элемент — наиболее предпочтительный. Поставщики должны игнорировать неизвестные имена схем подписи при установлении подключений SSL/TLS/DTLS.
Since:
19
See Also:
  • setSignatureSchemes(java.lang.String[])

setSignatureSchemes

public void setSignatureSchemes(String[] signatureSchemes)
Устанавливает упорядоченный массив имён схем подписи, которые могут использоваться по протоколам SSL/TLS/DTLS.

Обратите внимание, что стандартный список имён схем подписи определён в разделе Схемы подписи спецификации Java Security Standard Algorithm Names. Поставщики могут поддерживать схемы подписи, не определённые в этом списке, или могут не использовать рекомендуемое имя для определённой схемы подписи.

Набор схем подписи, которые будут использоваться по подключениям SSL/TLS/DTLS, определяется входным параметром signatureSchemes массивом и схемами подписи по умолчанию, специфичными для поставщика. См. getSignatureSchemes() для подробностей о том, как параметры используются в подключениях SSL/TLS/DTLS.

API Note:
Обратите внимание, что поставщик может не быть обновлён для поддержки этого метода, и в этом случае может игнорировать установленные схемы.
Implementation Note:
Поставщик SunJSSE поддерживает этот метод.
Parameters:
signatureSchemes - упорядоченный массив имён схем подписи, где первый элемент является наиболее предпочтительным, или null. Этот метод создаст копию этого массива. Поставщики должны игнорировать неизвестные имена схем подписи при установлении подключений SSL/TLS/DTLS.
Throws:
IllegalArgumentException - если какой-либо элемент в массиве signatureSchemes является null или пустым.
Since:
19
See Also:
  • getSignatureSchemes()

getNamedGroups

public String[] getNamedGroups()
Возвращает упорядоченный массив имён ключевых групп, которые могут использоваться по протоколам SSL/TLS/DTLS.

Обратите внимание, что стандартный список имён ключевых групп определён в разделе Именённых групп спецификации Java Security Standard Algorithm Names. Поставщики могут поддерживать именённые группы, не определённые в этом списке, или могут не использовать рекомендуемое имя для определённой именённой группы.

Набор именённых групп, которые будут использоваться по подключениям SSL/TLS/DTLS, определяется возвращаемым массивом этого метода и именёнными группами по умолчанию, специфичными для поставщика.

Если возвращаемый массив null, то именённые группы по умолчанию, специфичные для поставщика, будут использоваться по подключениям SSL/TLS/DTLS.

Если возвращаемый массив пустой (длиной 0), то механизм переговоров именённых групп выключен для протоколов SSL/TLS/DTLS, и подключения могут не быть установлены, если механизм переговоров необходим определённому протоколу SSL/TLS/DTLS. Этот параметр переопределит именённые группы по умолчанию, специфичные для поставщика.

Если возвращаемый массив не null или пустой (длиной 0), то именённые группы в возвращаемом массиве будут использоваться по подключениям SSL/TLS/DTLS. Этот параметр переопределит именённые группы по умолчанию, специфичные для поставщика.

Этот метод возвращает последнее значение, переданное в setNamedGroups(java.lang.String[]), если этот метод был вызван, а в противном случае возвращает именённые группы по умолчанию для объектов подключений, заполненных объектами, или null для предопределённых объектов.

API Note:
Обратите внимание, что поставщик может не быть обновлён для поддержки этого метода, и в этом случае может вернуть null вместо именённых групп по умолчанию для объектов подключений, заполненных объектами.
Implementation Note:
Поставщик SunJSSE поддерживает этот метод. Обратите внимание, что приложения могут использовать системное свойство jdk.tls.namedGroups с поставщиком SunJSSE для переопределения именённых групп по умолчанию, специфичных для поставщика.
Returns:
массив имён ключевых групп Strings или null если ни один не был установлен. Для ненулевых возвращаемых значений этот метод будет возвращать новый массив каждый раз при вызове. Массив упорядочен по приоритету именённых групп, причём первый элемент — наиболее предпочтительный. Поставщики должны игнорировать неизвестные имена именённых групп при установлении подключений SSL/TLS/DTLS.
Since:
20
See Also:
  • setNamedGroups(java.lang.String[])

setNamedGroups

public void setNamedGroups(String[] namedGroups)
Устанавливает упорядоченный массив имён ключевых групп, которые могут использоваться по протоколам SSL/TLS/DTLS.

Обратите внимание, что стандартный список имён ключевых групп определён в разделе Именённых групп спецификации Java Security Standard Algorithm Names. Поставщики могут поддерживать именённые группы, не определённые в этом списке, или могут не использовать рекомендуемое имя для определённой именённой группы.

Набор именённых групп, которые будут использоваться по подключениям SSL/TLS/DTLS, определяется входным параметром namedGroups массивом и именёнными группами по умолчанию, специфичными для поставщика. См. getNamedGroups() для подробностей о том, как параметры используются в подключениях SSL/TLS/DTLS.

API Note:
Обратите внимание, что поставщик может не быть обновлён для поддержки этого метода, и в этом случае может игнорировать установленные именённые группы.
Implementation Note:
Поставщик SunJSSE поддерживает этот метод.
Parameters:
namedGroups - упорядоченный массив имён ключевых групп, где первый элемент является наиболее предпочтительным, или null. Этот метод создаст копию этого массива. Поставщики должны игнорировать неизвестные имена именённых схем групп при установлении подключений SSL/TLS/DTLS.
Throws:
IllegalArgumentException - если какой-либо элемент в массиве namedGroups является дубликатом, null или пустым.
Since:
20
See Also:
  • getNamedGroups()

© 1993, 2023, 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/21/docs/api/java.base/javax/net/ssl/SSLParameters.html

Spec-Zone.ru

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