Класс 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. Этот список и все Certificate в нём должны быть неизменяемыми.
Каждый объект CertPath должен поддерживать один или несколько кодирований, чтобы объект можно было преобразовать в массив байтов для хранения или передачи другим сторонам. В идеале эти кодировки должны соответствовать хорошо документированным стандартам (например, PKCS#7). Одно из поддерживаемых кодирований объекта CertPath считается кодированием по умолчанию. Это кодирование используется, если явно не указано другое (например, для метода getEncoded()).
Все объекты CertPath также являются Serializable. Объекты CertPath преобразуются в альтернативный объект CertPathRep во время сериализации. Это позволяет сериализовать объект CertPath в эквивалентное представление независимо от его базовой реализации.
Объекты CertPath могут быть созданы с помощью CertificateFactory или возвращены другими классами, такими как CertPathBuilder.
По соглашению, цепи сертификации X.509 (состоящие из X509Certificate), упорядочиваются, начиная с целевого сертификата и заканчивая сертификатом, выданным корневым центром сертификации. То есть, издатель одного сертификата является субъектом следующего. Сертификат, представляющий TrustAnchor, не должен включаться в цепь сертификации. Непроверенные цепи сертификации X.509 могут не следовать этим соглашениям. PKIX-реализации обнаружат любое отклонение от этих соглашений, которое делает цепь сертификации недействительной, и выбросят CertPathValidatorException.
Каждая реализация платформы Java обязана поддерживать следующие стандартные кодирования CertPath:
PKCS7PkiPath
Доступ к нескольким потокам
Все объекты CertPath должны быть потокобезопасными. То есть несколько потоков могут одновременно вызывать методы, определенные в этом классе, для одного объекта CertPath (или более чем одного) без каких-либо негативных последствий. Это также верно для List, возвращенного методом CertPath.getCertificates.
Требование, чтобы объекты CertPath были неизменяемыми и потокобезопасными, позволяет передавать их различным частям кода без необходимости согласования доступа. Обеспечение такой потоковой безопасности, как правило, несложно, так как объекты CertPath и List являются неизменяемыми.
- С:
- 1.4
- См. также:
-
CertificateFactory,CertPathBuilder, Формат сериализации
Вложенные классы
| Модификатор и тип | Класс | Описание |
|---|---|---|
protected static class | CertPath.CertPathRep | Альтернативный класс |
Краткое описание конструкторов
| Модификатор | Конструктор | Описание |
|---|---|---|
protected | CertPath(String type) | Создаёт объект |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
boolean | equals(Object other) | Сравнивает текущую цепь сертификации на равенство с указанным объектом. |
abstract List<? extends Certificate> | getCertificates() | Возвращает список сертификатов в этой цепи сертификации. |
abstract byte[] | getEncoded() | Возвращает закодированную форму этой цепи сертификации, используя кодирование по умолчанию. |
abstract byte[] | getEncoded(String encoding) | Возвращает закодированную форму этой цепи сертификации, используя указанное кодирование. |
abstract Iterator<String> | getEncodings() | Возвращает итератор поддерживаемых кодирований этой цепи сертификации, начиная с кодирования по умолчанию. |
String | getType() | Возвращает тип |
int | hashCode() | Возвращает хэш-код этой цепи сертификации. |
String | toString() | Возвращает строковое представление этой цепи сертификации. |
protected Object | writeReplace() | Заменяет |
Методы, объявленные в классе 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 для каждого из 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 должен быть неизменяемым и потокобезопасным.
- Возвращает:
- неизменяемый
ListCertificate(может быть пустым, но не 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.
https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/security/cert/CertPath.html