Spec-Zone.ru › OpenJDK 21

Класс CertPath

java.lang.Object
java.security.cert.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. Этот List и все Certificate в нём должны быть неизменяемыми.

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

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

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

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

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

  • PKCS7
  • PkiPath
Эти кодировки описаны в разделе «Кодировки CertPath» спецификации Java Security Standard Algorithm Names Specification по адресу CertPath Encodings section. Обратитесь к документации выпуска вашей реализации, чтобы узнать о поддержке других кодировок.

Доступность из нескольких потоков

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

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

С:
1.4
См. также:
  • 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()
Возвращает тип Certificate в этом пути сертификации.
int hashCode()
Возвращает хэш-код для этого пути сертификации.
String toString()
Возвращает строковое представление этого пути сертификации.
protected Object writeReplace()
Заменяет CertPath для сериализации объектом CertPathRep, содержащим тип Certificate и закодированные байты CertPath.

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

clone, finalize, getClass, notify, notifyAll, wait, wait, wait

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

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.
Возвращает:
итератор Iterator по именам поддерживаемых кодировок (как строки)

equals

public boolean equals(Object other)
Сравнивает этот сертификационный путь на равенство с указанным объектом. Два CertPath равны тогда и только тогда, когда их типы равны, и их сертификаты List (и, следовательно, Certificate в этих List ) равны. 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(java.lang.Object)

toString

public String toString()
Возвращает строковое представление этого сертификационного пути. Вызывает метод toString для каждого из Certificate в пути.
Переопределяет:
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 Certificate (может быть пустым, но не null)

writeReplace

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

© 1993, 2023, 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/21/docs/api/java.base/java/security/cert/CertPath.html

Spec-Zone.ru

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