Spec-Zone.ru › OpenJDK 27

Класс 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
Модификатор и тип Метод Описание
protected Object clone()
Создаёт и возвращает копию этого объекта.
boolean equals(Object obj)
Указывает, равен ли этот объект какому-либо другому объекту.
protected void finalize()
Устарело, будет удалено: этот элемент API может быть удалён в будущей версии.
Финализация устарела и будет удалена в одном из будущих выпусков.
final Class<?> getClass()
Возвращает класс времени выполнения этого Object.
int hashCode()
Возвращает хеш-код этого объекта.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
String toString()
Возвращает строковое представление объекта.
final void wait()
Заставляет текущий поток ожидать, пока он не будет разбужен, обычно посредством вызова notify или interrupt.
final void wait(long timeoutMillis)
Заставляет текущий поток ожидать, пока он не будет разбужен, обычно посредством вызова notify или interrupt, либо пока не истечёт заданный промежуток реального времени.
final void wait(long timeoutMillis, int nanos)
Заставляет текущий поток ожидать, пока он не будет разбужен, обычно посредством вызова notify или interrupt, либо пока не истечёт заданный промежуток реального времени.

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

SSLParameters

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

Значения cipherSuites, protocols, ограничений криптографических алгоритмов, алгоритма идентификации конечной точки, схем подписей, имен серверов и средств сопоставления имен серверов устанавливаются в 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.

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

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

Возвращает:
ненулевой массив протоколов прикладного уровня 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 должны быть представлены в сетевом формате, ожидаемом другой стороной. Например, если значение ALPN String должно передаваться с использованием UTF-8, значение String следует преобразовать в его представление byte[] и сохранить как ориентированную на байты величину String перед вызовом этого метода. Например:

    // Encode 3 Meetei Mayek letters (HUK, UN, I) using Unicode Escapes
    //     0xabcd->0xabcf, 2 Unicode bytes/letter.
    String HUK_UN_I =  "\uabcd\uabce\uabcf";

    // Convert into UTF-8 encoded bytes (3 bytes/letter)
    byte[] bytes = HUK_UN_I.getBytes(StandardCharsets.UTF_8);

    // Preserve octet byte order by using ISO_8859_1 encoding
    String encodedHukUnI =
        new String(bytes, StandardCharsets.ISO_8859_1);

    // Also, encode a two byte RFC 8701 GREASE ALPN value
    //     e.g. 0x0A, 0x1A, 0x2A...0xFA
    String rfc8701Grease8A = "\u008A\u008A";

    // Set the ALPN vlues on the sslSocket.
    SSLParameters p = sslSocket.getSSLParameters();
    p.setApplicationProtocols(new String[] {
            "h2", "http/1.1", encodedHukUnI, rfc8701Grease8A});
    sslSocket.setSSLParameters(p);
Требования к реализации:
Этот метод создает копию массива protocols.
Параметры:
protocols — упорядоченный массив протоколов прикладного уровня; protocols[0] имеет наивысший приоритет. Если массив пуст (нулевой длины), индикация протоколов использоваться не будет.
Вызывает исключение:
IllegalArgumentException — если protocols равен null или если какой-либо элемент непустого массива равен null либо является пустой строкой (нулевой длины)
Начиная с:
9
Внешние спецификации
  • RFC 7301: расширение согласования протоколов прикладного уровня для Transport Layer Security (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, 2026, 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.

Spec-Zone.ru

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