Класс CertPathValidator
- java.lang.Object
-
- java.security.cert.CertPathValidator
public class CertPathValidator extends Object
Класс для валидации цепочек сертификатов (также известных как сертификатные цепи).
Этот класс использует архитектуру, основанную на поставщиках. Для создания объекта CertPathValidator, вызовите один из статических getInstance методов, передав имя алгоритма CertPathValidator и, необязательно, имя желаемого поставщика.
После создания объекта CertPathValidator, он может быть использован для валидации сертификатных цепочек, вызвав метод validate и передав ему CertPath для проверки и набор параметров, специфичных для алгоритма. В случае успеха, результат возвращается в объекте, реализующем интерфейс CertPathValidatorResult.
Метод getRevocationChecker() позволяет приложению указать дополнительные параметры и опции, специфичные для алгоритма, используемые при проверке статуса отзыва сертификатов методом CertPathValidator. Ниже пример демонстрирует его использование с алгоритмом PKIX:
CertPathValidator cpv = CertPathValidator.getInstance("PKIX");
PKIXRevocationChecker rc = (PKIXRevocationChecker)cpv.getRevocationChecker();
rc.setOptions(EnumSet.of(Option.SOFT_FAIL));
params.addCertPathChecker(rc);
CertPathValidatorResult cpvr = cpv.validate(path, params); Каждая реализация платформы Java обязана поддерживать следующие стандартные CertPathValidator алгоритмы:
PKIX
Доступность из нескольких потоков
Статические методы этого класса гарантированно потокобезопасны. Несколько потоков могут одновременно вызывать статические методы, определенные в этом классе, без каких-либо негативных последствий.
Однако это не относится к методам, не являющимся статическими, определённым в этом классе. Если не указано иным образом конкретным поставщиком, потоки, которым требуется одновременный доступ к одному экземпляру CertPathValidator объекта, должны синхронизироваться между собой и обеспечить необходимые блокировки. Несколько потоков, каждый из которых манипулирует разными экземплярами CertPathValidator, не нуждаются в синхронизации.
- Since:
- 1.4
- См. также:
CertPath
Конструкторы
| Модификатор | Конструктор и описание |
|---|---|
protected |
CertPathValidator(CertPathValidatorSpi validatorSpi,
Provider provider,
String algorithm) Создаёт объект |
Методы
| Модификатор и тип | Метод и описание |
|---|---|
String |
getAlgorithm() Возвращает имя алгоритма данного объекта |
static String |
getDefaultType() Возвращает тип по умолчанию |
static CertPathValidator |
getInstance(String algorithm) Возвращает объект |
static CertPathValidator |
getInstance(String algorithm,
Provider provider) Возвращает объект |
static CertPathValidator |
getInstance(String algorithm,
String provider) Возвращает объект |
Provider |
getProvider() Возвращает |
CertPathChecker |
getRevocationChecker() Возвращает |
CertPathValidatorResult |
validate(CertPath certPath,
CertPathParameters params) Проверяет указанную цепочку сертификатов с использованием указанного алгоритма и набора параметров. |
Методы, унаследованные от класса java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait Конструкторы
CertPathValidator
protected CertPathValidator(CertPathValidatorSpi validatorSpi,
Provider provider,
String algorithm) Создаёт объект CertPathValidator заданного алгоритма и инкапсулирует в него предоставленное реализацию провайдера (объект SPI).
- Параметры:
-
validatorSpi- реализация провайдера -
provider- провайдер -
algorithm- имя алгоритма
Методы
getInstance
public static CertPathValidator getInstance(String algorithm)
throws NoSuchAlgorithmException Возвращает объект CertPathValidator, реализующий указанный алгоритм.
Этот метод обходит список зарегистрированных провайдеров безопасности, начиная с наиболее предпочтительного. Возвращается новый объект CertPathValidator, инкапсулирующий реализацию CertPathValidatorSpi из первого провайдера, поддерживающего указанный алгоритм.
Обратите внимание, что список зарегистрированных провайдеров можно получить с помощью метода Security.getProviders().
- Параметры:
-
algorithm- имя запрашиваемого алгоритмаCertPathValidator. Сведения о стандартных именах алгоритмов см. в разделе CertPathValidator документации Java Cryptography Architecture Standard Algorithm Name в Java Cryptography Architecture Standard Algorithm Name Documentation. - Возвращает:
- объект
CertPathValidator, реализующий указанный алгоритм. - Исключения:
-
NoSuchAlgorithmException- если ни один провайдер не поддерживает реализацию CertPathValidatorSpi для указанного алгоритма. - См. также:
Provider
getInstance
public static CertPathValidator getInstance(String algorithm,
String provider)
throws NoSuchAlgorithmException,
NoSuchProviderException Возвращает объект CertPathValidator, реализующий указанный алгоритм.
Возвращается новый объект CertPathValidator, инкапсулирующий реализацию CertPathValidatorSpi от указанного провайдера. Указанный провайдер должен быть зарегистрирован в списке провайдеров безопасности.
Обратите внимание, что список зарегистрированных провайдеров можно получить с помощью метода Security.getProviders().
- Параметры:
-
algorithm- имя запрашиваемого алгоритмаCertPathValidator. Сведения о стандартных именах алгоритмов см. в разделе CertPathValidator документации Java Cryptography Architecture Standard Algorithm Name в Java Cryptography Architecture Standard Algorithm Name Documentation. -
provider- имя провайдера. - Возвращает:
- объект
CertPathValidator, реализующий указанный алгоритм. - Исключения:
-
NoSuchAlgorithmException- если реализация CertPathValidatorSpi для указанного алгоритма недоступна от указанного провайдера. -
NoSuchProviderException- если указанный провайдер не зарегистрирован в списке провайдеров безопасности. -
IllegalArgumentException- если указанное имя провайдера null или пустое. - См. также:
Provider
getInstance
public static CertPathValidator getInstance(String algorithm,
Provider provider)
throws NoSuchAlgorithmException Возвращает объект CertPathValidator, реализующий указанный алгоритм.
Возвращается новый объект CertPathValidator, инкапсулирующий реализацию CertPathValidatorSpi от указанного объекта провайдера. Обратите внимание, что указанный объект провайдера не обязательно должен быть зарегистрирован в списке провайдеров.
- Параметры:
-
algorithm- имя запрашиваемого алгоритмаCertPathValidator. Сведения о стандартных именах алгоритмов см. в разделе CertPathValidator документации Java Cryptography Architecture Standard Algorithm Name в Java Cryptography Architecture Standard Algorithm Name Documentation. -
provider- провайдер. - Возвращает:
- объект
CertPathValidator, реализующий указанный алгоритм. - Исключения:
-
NoSuchAlgorithmException- если реализация CertPathValidatorSpi для указанного алгоритма недоступна от указанного объекта провайдера. -
IllegalArgumentException- если указанный провайдер null. - См. также:
Provider
getProvider
public final Provider getProvider()
Возвращает Provider этого CertPathValidator.
- Возвращает:
ProviderэтогоCertPathValidator.
getAlgorithm
public final String getAlgorithm()
Возвращает имя алгоритма этого CertPathValidator.
- Возвращает:
- имя алгоритма этого
CertPathValidator.
validate
public final CertPathValidatorResult validate(CertPath certPath,
CertPathParameters params)
throws CertPathValidatorException,
InvalidAlgorithmParameterException Проверяет указанный сертификационный путь, используя указанный набор параметров алгоритма.
Указанный CertPath должен быть типа, поддерживаемого алгоритмом проверки, в противном случае будет выброшено исключение InvalidAlgorithmParameterException. Например, CertPathValidator, реализующий алгоритм PKIX, проверяет объекты CertPath типа X.509.
- Параметры:
-
certPath- путь сертификата для проверки -
params- параметры алгоритма - Возвращает:
- результат алгоритма проверки
- Исключения:
-
CertPathValidatorException- еслиCertPathне проходит проверку -
InvalidAlgorithmParameterException- если указанные параметры или тип указанногоCertPathнеподходящи для данногоCertPathValidator
getDefaultType
public static final String getDefaultType()
Возвращает тип по умолчанию CertPathValidator, как указано в свойстве безопасности certpathvalidator.type, или строку "PKIX", если такого свойства нет.
Тип по умолчанию CertPathValidator может использоваться приложениями, которые не хотят использовать жёстко закодированный тип при вызове одного из методов getInstance, и хотят предоставить тип по умолчанию в случае, если пользователь не указывает свой собственный.
Тип по умолчанию CertPathValidator может быть изменён путём установки значения свойства безопасности certpathvalidator.type на желаемый тип.
- Возвращает:
- тип по умолчанию
CertPathValidator, как указано в свойстве безопасностиcertpathvalidator.type, или строку "PKIX", если такого свойства нет. - См. также:
security properties
getRevocationChecker
public final CertPathChecker getRevocationChecker()
Возвращает CertPathChecker, который использует реализация CertPathValidatorSpi для проверки статуса отзыва сертификатов. Реализация PKIX возвращает объекты типа PKIXRevocationChecker. Каждый вызов этого метода возвращает новый экземпляр CertPathChecker.
Основная цель этого метода — позволить вызывающим сторонам указывать дополнительные входные параметры и параметры, специфичные для проверки отзыва. См. описание класса для примера.
- Возвращает:
CertPathChecker- Исключения:
-
UnsupportedOperationException- если поставщик сервиса не поддерживает этот метод - С момента:
- 1.8
© 1993, 2020, 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.