Spec-Zone.ru › OpenJDK 8

Класс 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 Cryptography Architecture https://docs.oracle.com/javase/7/docs/technotes/guides/security/StandardNames.html#CertPathEncodings. Обратитесь к документации вашей реализации для получения информации о других поддерживаемых кодировках.

Одновременный доступ

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

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

С:
1.4
См. также:
CertificateFactory, CertPathBuilder, Формат сериализации

Вложенные классы

Модификатор и тип Класс и описание
protected static class  CertPath.CertPathRep

Альтернативный класс CertPath для сериализации.

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

Модификатор Конструктор и описание
protected CertPath(String type)

Создаёт 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.

Методы, унаследованные от класса 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.

Возвращает:
итератор по именам поддерживаемых кодировок (в виде строк)

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 для каждого сертификата в пути.

Переопределяет:
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.

Возвращает:
CertPathRep для сериализации
Выбрасывает:
ObjectStreamException - если объект CertPathRep представляющий этот путь сертификации не может быть создан

© 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.

Spec-Zone.ru

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