Spec-Zone.ru › OpenJDK 27

Класс CertPath

java.lang.Object
java.security.cert.CertPath
Все реализуемые интерфейсы:
Serializable
public abstract class CertPath extends Object implements Serializable
Неизменяемая последовательность сертификатов (путь сертификации).

Это абстрактный класс, определяющий методы, общие для всех CertPaths. Подклассы могут работать с различными видами сертификатов (X.509, PGP и т. д.).

Все объекты CertPath имеют тип, список Certificates и одну или несколько поддерживаемых кодировок. Поскольку класс CertPath является неизменяемым, после создания объект CertPath не может измениться каким-либо внешне наблюдаемым образом. Это требование распространяется на все открытые поля и методы данного класса, а также на любые поля и методы, добавленные или переопределённые подклассами.

Тип — это String, определяющий тип Certificates в пути сертификации. Для каждого сертификата cert в пути сертификации certPath, cert.getType().equals(certPath.getType()) должен быть true.

Список Certificates — это упорядоченная List из нуля или более Certificates. Эта List и все содержащиеся в ней Certificates должны быть неизменяемыми.

Каждый объект CertPath должен поддерживать одну или несколько кодировок, позволяющих преобразовать объект в массив байтов для хранения или передачи другим сторонам. Желательно, чтобы эти кодировки соответствовали хорошо документированным стандартам (например, PKCS#7). Одна из кодировок, поддерживаемых объектом CertPath, считается кодировкой по умолчанию. Она используется, если кодировка не указана явно (например, для метода getEncoded()).

Все объекты CertPath также являются Serializable. При сериализации объекты CertPath преобразуются в альтернативный объект CertPathRep. Это позволяет сериализовать объект CertPath в эквивалентном представлении независимо от его базовой реализации.

Объекты CertPath можно создавать с помощью CertificateFactory или получать от других классов, например от CertPathBuilder.

По соглашению, X.509 CertPaths (состоящие из X509Certificates) упорядочиваются начиная с целевого сертификата и заканчивая сертификатом, выданным доверенным центром. То есть издатель одного сертификата является субъектом следующего сертификата. Сертификат, представляющий TrustAnchor, не должен включаться в путь сертификации. Непроверенные X.509 CertPaths могут не соответствовать этим соглашениям. PKIX CertPathValidators обнаруживают любые отклонения от этих соглашений, делающие путь сертификации недействительным, и генерируют исключение CertPathValidatorException.

Каждая реализация платформы Java должна поддерживать следующие стандартные кодировки CertPath:

  • PKCS7
  • PkiPath
Эти кодировки описаны в разделе «Кодировки CertPath» спецификации стандартных имён алгоритмов безопасности Java. Сведения о поддержке других кодировок см. в документации к выпуску вашей реализации.

Параллельный доступ

Все объекты CertPath должны быть потокобезопасными. Это означает, что несколько потоков могут одновременно вызывать методы, определённые в этом классе, для одного (или нескольких) объектов CertPath без нежелательных последствий. Это также относится к List, возвращаемому методом CertPath.getCertificates.

Требование, чтобы объекты CertPath были неизменяемыми и потокобезопасными, позволяет передавать их различным частям кода, не беспокоясь о необходимости координировать доступ. Обеспечить потокобезопасность обычно несложно, поскольку рассматриваемые объекты CertPath и List являются неизменяемыми.

С версии:
1.4
Внешние спецификации
  • Стандартные имена алгоритмов безопасности Java
См. также:
  • CertificateFactory
  • CertPathBuilder
  • Сериализованное представление

Краткое описание вложенных классов

Модификатор и тип Класс Описание
protected static class  CertPath.CertPathRep
Альтернативный класс CertPath для сериализации.

Краткое описание конструкторов

CertPath(String type)
Модификатор Конструктор Описание
protected
Создаёт объект CertPath указанного типа.

Краткое описание методов

Модификатор и тип Метод Описание
boolean equals(Object other)
Сравнивает этот путь сертификации с указанным объектом на равенство.
abstract List<? extends Certificate> getCertificates()
Возвращает список сертификатов в этом пути сертификации.
abstract byte[] getEncoded()
Возвращает закодированное представление этого пути сертификации, используя кодировку по умолчанию.
abstract byte[] getEncoded(String encoding)
Возвращает закодированное представление этого пути сертификации, используя указанную кодировку.
abstract Iterator<String> getEncodings()
Возвращает итератор по кодировкам, поддерживаемым этим путём сертификации; кодировка по умолчанию указана первой.
String getType()
Возвращает тип Certificates в этом пути сертификации.
int hashCode()
Возвращает значение хеш-кода этого пути сертификации.
String toString()
Возвращает строковое представление этого пути сертификации.
protected Object writeReplace()
Заменяет сериализуемый объект CertPath объектом CertPathRep, содержащим тип Certificate и закодированные байты объекта CertPath.

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

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

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

CertPath

protected CertPath(String type)
Создаёт объект CertPath указанного типа.

Этот конструктор защищён, поскольку большинству пользователей следует использовать CertificateFactory для создания объектов CertPaths.

Параметры:
type — стандартное имя типа Certificates в этом пути

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

getType

public String getType()
Возвращает тип Certificates в этом пути сертификации. Это та же строка, которую возвращал бы метод cert.getType() для всех Certificates в пути сертификации.
Возвращает:
тип Certificates в этом пути сертификации (никогда не null)

getEncodings

public abstract Iterator<String> getEncodings()
Возвращает итератор по кодировкам, поддерживаемым этим путём сертификации; кодировка по умолчанию указана первой. Попытки изменить возвращённый Iterator с помощью его метода remove приводят к UnsupportedOperationException.
Возвращает:
Iterator имён поддерживаемых кодировок (в виде строк)

equals

public boolean equals(Object other)
Сравнивает этот путь сертификации с указанным объектом на равенство. Два объекта CertPath равны тогда и только тогда, когда их типы совпадают и совпадают их Lists сертификатов (а следовательно, и Certificates в этих Lists). Объект CertPath никогда не равен объекту, который не является CertPath.

Этот метод реализует данный алгоритм. При его переопределении необходимо сохранить описанное здесь поведение.

Переопределяет:
equals в классе Object
Параметры:
other — объект для сравнения с этим путём сертификации на равенство
Возвращает:
true, если указанный объект равен этому пути сертификации; в противном случае — false
См. также:
  • Object.hashCode()
  • HashMap

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.
Переопределяет:
hashCode в классе Object
Возвращает:
значение хеш-кода этого пути сертификации
См. также:
  • Object.equals(java.lang.Object)
  • System.identityHashCode(Object)

toString

public String toString()
Возвращает строковое представление этого пути сертификации. Для каждого Certificates в пути вызывается метод toString.
Переопределяет:
toString в классе Object
Возвращает:
строковое представление этого пути сертификации

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 должен быть неизменяемым и потокобезопасным.
Возвращает:
неизменяемую List из Certificates (может быть пустой, но не null)

writeReplace

protected Object writeReplace() throws ObjectStreamException
Заменяет сериализуемый объект CertPath объектом CertPathRep, содержащим тип Certificate и закодированные байты объекта CertPath.
Возвращает:
объект CertPathRep, содержащий тип Certificate и закодированные байты объекта CertPath
Выбрасывает:
ObjectStreamException — если не удалось создать объект CertPathRep, представляющий этот путь сертификации

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по 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