Spec-Zone.ru › OpenJDK 25

Класс 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);
Начиная с версии:
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 параметра индикации имени сервера (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)
Задаёт, следует ли запрашивать аутентификацию клиента.

Методы, объявленные в классе Object

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

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

SSLParameters

public SSLParameters()
Создает объект SSLParameters.

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

SSLParameters

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

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

Параметры:
cipherSuites — массив наборов шифров (или null)
Внешние спецификации
  • Стандартные имена алгоритмов безопасности Java

SSLParameters

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

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

Параметры:
cipherSuites — массив наборов шифров (или null)
protocols — массив протоколов (или null)
Внешние спецификации
  • Стандартные имена алгоритмов безопасности Java

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

getCipherSuites

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

Возвращаемый массив содержит наборы шифров из списка стандартных имен наборов шифров в разделе Имена наборов шифров JSSE спецификации стандартных имен алгоритмов безопасности Java, а также может содержать другие наборы шифров, поддерживаемые провайдером.

Возвращает:
копию массива наборов шифров или null, если они не заданы.
Внешние спецификации
  • Стандартные имена алгоритмов безопасности Java

setCipherSuites

public void setCipherSuites(String[] cipherSuites)
Задает массив наборов шифров.
Параметры:
cipherSuites — массив наборов шифров (или null). Обратите внимание, что стандартный список имен наборов шифров можно найти в разделе Имена наборов шифров JSSE спецификации стандартных имен алгоритмов безопасности Java. Провайдеры могут поддерживать имена наборов шифров, отсутствующие в этом списке, или не использовать рекомендованное имя для определенного набора шифров.
Внешние спецификации
  • Стандартные имена алгоритмов безопасности Java

getProtocols

public String[] getProtocols()
Возвращает копию массива протоколов или null, если они не заданы.
Возвращает:
копию массива протоколов или 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(AlgorithmConstraints)

setAlgorithmConstraints

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

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

Параметры:
constraints — ограничения алгоритмов (или null)
Начиная с версии:
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.
Начиная с версии:
1.7
Внешние спецификации
  • Стандартные имена алгоритмов безопасности Java
См. также:
  • X509ExtendedTrustManager

setServerNames

public final void setServerNames(List<SNIServerName> serverNames)
Задает требуемые имена SNIServerName параметра индикации имени сервера (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.

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

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

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

setApplicationProtocols

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

Если базовая реализация 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
Внешние спецификации
  • RFC 7301: расширение согласования протоколов прикладного уровня для протокола безопасности транспортного уровня (TLS)
См. также:
  • getApplicationProtocols()

getSignatureSchemes

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

Обратите внимание, что стандартный список имен схем подписей определен в разделе Схемы подписей спецификации стандартных имен алгоритмов безопасности 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
Внешние спецификации
  • Стандартные имена алгоритмов безопасности Java
См. также:
  • setSignatureSchemes(String[])

setSignatureSchemes

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

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

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

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

getNamedGroups

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

Обратите внимание, что стандартный список именованных групп обмена ключами определён в разделе «Именованные группы» спецификации «Стандартные имена алгоритмов безопасности 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
Внешние спецификации
  • Стандартные имена алгоритмов безопасности Java
См. также:
  • setNamedGroups(String[])

setNamedGroups

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

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

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

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

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в разделе Документация Java SE, содержащем более подробные описания для разработчиков, обзоры основных понятий, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её аффилированных лиц в США и других странах.
Авторские права © 1993, 2025, Oracle и/или её аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 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

Spec-Zone.ru

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