Класс CertPath
- Все реализуемые интерфейсы:
Serializable
public abstract class CertPath extends Object implements Serializable
Это абстрактный класс, определяющий методы, общие для всех CertPath. Подклассы могут обрабатывать различные типы сертификатов (X.509, PGP и т. д.).
Все объекты CertPath имеют тип, список Certificate и один или несколько поддерживаемых кодировок. Поскольку класс CertPath неизменяемый, объект CertPath не может быть изменён внешним образом после создания. Это ограничение относится ко всем общедоступным полям и методам этого класса и к любым добавленным или переопределённым подклассами.
Тип является String, который идентифицирует тип Certificate в пути сертификации. Для каждого сертификата cert в пути сертификации certPath, cert.getType().equals(certPath.getType()) должен быть true.
Список Certificate — упорядоченный List из нуля или более Certificate. Этот список и все Certificate, содержащиеся в нём, должны быть неизменяемыми.
Каждый объект CertPath должен поддерживать один или несколько кодировок, чтобы объект можно было преобразовать в массив байтов для хранения или передачи другим сторонам. В идеале эти кодировки должны быть хорошо документированными стандартами (такими как PKCS#7). Одна из поддерживаемых кодировок CertPath считается кодировкой по умолчанию. Эта кодировка используется, если явно не запрошена другая кодировка (например, для метода getEncoded()).
Все объекты CertPath также Serializable. Объекты CertPath преобразуются в альтернативный объект CertPathRep во время сериализации. Это позволяет объекту CertPath быть сериализованным в эквивалентную форму независимо от его реализации.
Объекты CertPath могут быть созданы с помощью CertificateFactory или возвращены другими классами, такими как CertPathBuilder.
По соглашению, пути X.509 CertPath (состоящие из X509Certificate) упорядочены, начиная с целевого сертификата и заканчивая сертификатом, выданным якорем доверия. То есть, эмитент одного сертификата является субъектом следующего. Сертификат, представляющий TrustAnchor, не должен включаться в путь сертификации. Непроверенные пути X.509 CertPath могут не следовать этим соглашениям. PKIX CertPathValidator обнаружит любое отклонение от этих соглашений, которое приводит к недействительности пути сертификации, и выбросит исключение CertPathValidatorException.
Каждая реализация Java платформы должна поддерживать следующие стандартные CertPath кодировки:
PKCS7PkiPath
Доступность из нескольких потоков
Все объекты CertPath должны быть потокобезопасными. Это означает, что несколько потоков могут одновременно вызывать методы, определённые в этом классе, для одного объекта CertPath (или более одного), без негативных последствий. Это также верно для объектов List, возвращаемых методом CertPath.getCertificates.
Требование неизменяемости и потокобезопасности объектов CertPath позволяет передавать их различным частям кода без необходимости согласовывать доступ. Обеспечение потокобезопасности обычно не сложно, поскольку объекты CertPath и List в вопросе неизменяемы.
- С:
- 1.4
- См. также:
Краткое описание вложенных классов
| Модификатор и тип | Класс | Описание |
|---|---|---|
protected static class |
CertPath.CertPathRep |
Альтернативный класс CertPath для сериализации. |
Краткое описание конструкторов
| Модификатор | Конструктор | Описание |
|---|---|---|
protected |
Создаёт CertPath заданного типа. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
boolean |
equals |
Сравнивает этот путь сертификации на равенство с указанным объектом. |
abstract List |
getCertificates() |
Возвращает список сертификатов в этом пути сертификации. |
abstract byte[] |
getEncoded() |
Возвращает закодированную форму этого пути сертификации, используя кодировку по умолчанию. |
abstract byte[] |
getEncoded |
Возвращает закодированную форму этого пути сертификации, используя указанную кодировку. |
abstract Iterator |
getEncodings() |
Возвращает итератор по кодировкам, поддерживаемым этим путем сертификации, с кодировкой по умолчанию первой. |
String |
getType() |
Возвращает тип Certificate в этом пути сертификации. |
int |
hashCode() |
Возвращает значение хэш-кода для этого пути сертификации. |
String |
toString() |
Возвращает строковое представление этого пути сертификации. |
protected Object |
writeReplace() |
Заменяет CertPath, подлежащий сериализации, объектом CertPathRep, содержащим тип Certificate и закодированные байты CertPath. |
Подробное описание конструкторов
CertPath
protected CertPath(String type)
CertPath заданного типа. Этот конструктор защищён, поскольку большинство пользователей должны использовать CertificateFactory для создания CertPath.
- Параметры:
-
type- стандартное имя типаCertificateв этом пути
Подробное описание методов
getType
public String getType()
Certificate в этом сертификационном пути. Это та же строка, которая возвращалась бы методом cert.getType() для всех Certificate в сертификационном пути.- Возвращает:
- тип
Certificateв этом сертификационном пути (никогда не null)
getEncodings
public abstract Iterator<String> getEncodings()
Iterator с помощью метода remove приведёт к UnsupportedOperationException.- Возвращает:
- итератор по именам поддерживаемых кодировок (в виде строк)
equals
public boolean equals(Object other)
CertPath равны тогда и только тогда, когда их типы равны, и их сертификаты List (а, следовательно, и Certificate в этих List) равны. CertPath никогда не равен объекту, который не является CertPath. Этот алгоритм реализован в этом методе. Если он переопределён, должно быть сохранено указанное здесь поведение.
hashCode
public int hashCode()
hashCode = path.getType().hashCode();
hashCode = 31*hashCode + path.getCertificates().hashCode();
Это гарантирует, что path1.equals(path2) подразумевает path1.hashCode()==path2.hashCode() для любых двух сертификационных путей, path1 и path2, как требуется общим контрактом Object.hashCode.toString
getEncoded
public abstract byte[] getEncoded() throws CertificateEncodingException
- Возвращает:
- закодированные байты
- Исключение:
-
CertificateEncodingException- если произошла ошибка кодирования
getEncoded
public abstract byte[] getEncoded(String encoding) throws CertificateEncodingException
- Параметры:
-
encoding- имя используемой кодировки - Возвращает:
- закодированные байты
- Исключение:
-
CertificateEncodingException- если произошла ошибка кодирования или запрошенная кодировка не поддерживается
getCertificates
public abstract List<? extends Certificate> getCertificates()
List должен быть неизменяемым и потокобезопасным.- Возвращает:
- неизменяемый список
ListCertificate(может быть пустым, но не null)
writeReplace
protected Object writeReplace() throws ObjectStreamException
CertPath для сериализации на объект CertPathRep содержащий тип Certificate и закодированные байты CertPath.- Возвращает:
- объект
CertPathRepсодержащий типCertificateи закодированные байтыCertPath - Исключение:
-
ObjectStreamException- если объектCertPathRep, представляющий этот сертификационный путь, не может быть создан
© 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/java/security/cert/CertPath.html