Spec-Zone.ru › OpenJDK 24

Класс SSLParameters

java.lang.Object
javax.net.ssl.SSLParameters
public class SSLParameters extends Object
Инкапсулирует параметры для подключения SSL/TLS/DTLS. Параметры представляют собой список наборов шифров, которые должны быть приняты в рукопожатии SSL/TLS/DTLS, список разрешенных протоколов, алгоритм идентификации конечной точки во время рукопожатия SSL/TLS/DTLS, Server Name Indication (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
См. также:
  • 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 параметров Server Name Indication (SNI), или null, если они не были установлены.
String[] getSignatureSchemes()
Возвращает упорядоченный массив имён схем подписи, которые могут использоваться по протоколам SSL/TLS/DTLS.
final Collection<SNIMatcher> getSNIMatchers()
Возвращает Collection, содержащий все SNIMatcher параметров Server Name Indication (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 параметров Server Name Indication (SNI).
void setSignatureSchemes(String[] signatureSchemes)
Устанавливает упорядоченный массив имён схем подписи, которые могут использоваться по протоколам SSL/TLS/DTLS.
final void setSNIMatchers(Collection<SNIMatcher> matchers)
Устанавливает SNIMatcher параметров Server Name Indication (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, cryptographic algorithm constraints, endpoint identification algorithm, signature schemes, server names и server name matchers установлены в null; useCipherSuitesOrder, wantClientAuth и needClientAuth установлены в false; enableRetransmissions установлен в true; максимальный размер сетевого пакета установлен в 0.

SSLParameters

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

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

Параметры:
cipherSuites - массив ciphersuites (или null)

SSLParameters

public SSLParameters(String[] cipherSuites, String[] protocols)
Создаёт SSLParameters из указанного массива ciphersuites и protocols.

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

Параметры:
cipherSuites - массив ciphersuites (или null)
protocols - массив protocols (или null)

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

getCipherSuites

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

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

Возвращает:
копию массива ciphersuites или null, если они не были установлены.

setCipherSuites

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

getProtocols

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

setProtocols

public void setProtocols(String[] protocols)
Устанавливает массив protocols.
Параметры:
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(AlgorithmConstraints)

setAlgorithmConstraints

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

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

Параметры:
constraints - ограничения на алгоритмы
С:
1.7

getEndpointIdentificationAlgorithm

public String getEndpointIdentificationAlgorithm()
Получает алгоритм идентификации конечной точки.
Возвращает:
алгоритм идентификации конечной точки или null, если он не был установлен.
С:
1.7
См. также:
  • X509ExtendedTrustManager
  • setEndpointIdentificationAlgorithm(String)

setEndpointIdentificationAlgorithm

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

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

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

setServerNames

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

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

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

Параметры:
serverNames - список требуемых SNIServerName (или null)
Исключения:
NullPointerException - если список serverNames содержит null элемент
IllegalArgumentException - если список serverNames содержит более одного имени одного и того же типа
С:
1.8
См. также:
  • SNIServerName
  • getServerNames()

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
См. также:
  • List
  • setServerNames(List)

setSNIMatchers

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

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

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

Параметры:
matchers - коллекция SNIMatcher (или null)
Исключения:
NullPointerException - если matchers содержит null элемент
IllegalArgumentException - если matchers содержит более одного имени одного типа
С:
1.8
См. также:
  • Collection
  • SNIMatcher
  • getSNIMatchers()

getSNIMatchers

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

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

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

Возвращает:
null или неизменяемый набор непустых SNIMatcher
С:
1.8
См. также:
  • SNIMatcher
  • setSNIMatchers(Collection)

setUseCipherSuitesOrder

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

getUseCipherSuitesOrder

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

setEnableRetransmissions

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

getEnableRetransmissions

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

setMaximumPacketSize

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

getMaximumPacketSize

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

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

Возвращает:
максимальный ожидаемый размер сетевого пакета или 0, если используется неявный размер, автоматически задаваемый базовой реализацией, и этот объект не был заполнен никаким соединением.
С:
9
См. также:
  • setMaximumPacketSize(int)

getApplicationProtocols

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

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

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

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

Установка приоритетного списка имен протоколов прикладного уровня

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);
 
Требования к реализации:
Этот метод создаст копию массива protocols.
Параметры:
protocols - упорядоченный массив протоколов прикладного уровня, причём protocols[0] имеет наивысший приоритет. Если массив пуст (длины 0), указания протокола не будут использоваться.
Исключения:
IllegalArgumentException - если protocols равен null, или если любой элемент в непустом массиве равен null или пустой строкой (длины 0).
С тех пор:
9
Внешние спецификации
  • RFC 7301: Расширение переговорной связи прикладного уровня для транспортного уровня безопасности (TLS)
См. также:
  • getApplicationProtocols()

Получить приоритезированный список схем подписи

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:
Обратите внимание, что поставщик может не быть обновлён для поддержки этого метода, и в этом случае может вернуть null вместо схем подписи по умолчанию для объектов, заполненных соединениями.
Примечания по реализации:
Поставщик SunJSSE поддерживает этот метод. Примечание: приложения могут использовать свойства системы jdk.tls.client.SignatureSchemes и/или jdk.tls.server.SignatureSchemes с поставщиком SunJSSE, чтобы переопределить схемы подписи по умолчанию, специфичные для поставщика.
Возвращаемое значение:
массив имён схем подписи Strings или null, если не задано ничего. Для ненулевых возвращаемых значений этот метод будет возвращать новый массив каждый раз при вызове. Массив упорядочен по приоритету схемы подписи, причём первый элемент имеет наивысший приоритет. Поставщики должны игнорировать неизвестные имена схем подписи при установлении соединений SSL/TLS/DTLS.
С тех пор:
19
См. также:
  • setSignatureSchemes(java.lang.String[])

Установить приоритезированный список схем подписи

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

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

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

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

Получить приоритезированный список имён групп

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:
Обратите внимание, что поставщик может не быть обновлён для поддержки этого метода, и в этом случае может вернуть null вместо групп по умолчанию для объектов, заполненных соединениями.
Примечания по реализации:
Поставщик SunJSSE поддерживает этот метод. Приложения могут использовать свойство системы jdk.tls.namedGroups с поставщиком SunJSSE, чтобы переопределить группы по умолчанию, специфичные для поставщика.
Возвращаемое значение:
массив имён групп обмена ключами Strings или null, если не задано ничего. Для ненулевых возвращаемых значений этот метод возвращает новый массив при каждом вызове. Массив упорядочен по приоритету групп, причём первый элемент имеет наивысший приоритет. Поставщики должны игнорировать неизвестные имена групп при установлении соединений SSL/TLS/DTLS.
С тех пор:
20
См. также:
  • 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:
Обратите внимание, что поставщик может быть не обновлён для поддержки этого метода и в таком случае может игнорировать установленные именованные группы.
Примечание реализации:
Поставщик SunJSSE поддерживает этот метод.
Параметры:
namedGroups — упорядоченный массив имён именованных групп обмена ключами, где первый элемент имеет наивысший приоритет или null. Этот метод создаст копию этого массива. Поставщики должны игнорировать неизвестные имена схем именованных групп при установлении соединений SSL/TLS/DTLS.
Исключения:
IllegalArgumentException — если любой элемент в массиве namedGroups является дубликатом, null или пустым.
С момента:
20
См. также:
  • getNamedGroups()

© 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://download.java.net/java/early_access/jdk24/docs/api/java.base/javax/net/ssl/SSLParameters.html

Spec-Zone.ru

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