Класс X509CRL
- Все реализуемые интерфейсы:
X509Extension, DEREncodablePREVIEW
public abstract non-sealed class X509CRL extends CRL implements X509Extension, DEREncodablePREVIEW
Абстрактный класс для списка отозванных сертификатов X.509 (CRL). CRL — это список отозванных сертификатов с указанием временных меток. Он подписывается центром сертификации (CA) и свободно доступен в общедоступном репозитории.
Каждый отозванный сертификат идентифицируется в CRL по серийному номеру сертификата. Когда система, использующая сертификаты, использует сертификат (например, для проверки цифровой подписи удаленного пользователя), эта система не только проверяет подпись и срок действия сертификата, но и получает достаточно актуальный CRL, а затем проверяет, что серийный номер сертификата отсутствует в этом CRL. Значение понятия «достаточно актуальный» может различаться в зависимости от локальной политики, но обычно это означает последний выпущенный CRL. Центр сертификации регулярно выпускает новые CRL (например, ежечасно, ежедневно или еженедельно). Записи добавляются в CRL по мере отзыва сертификатов, а запись может быть удалена по достижении срока действия сертификата.
Формат CRL X.509 v2 описан ниже на языке ASN.1:
CertificateList ::= SEQUENCE {
tbsCertList TBSCertList,
signatureAlgorithm AlgorithmIdentifier,
signature BIT STRING }
Дополнительные сведения см. в документе RFC 5280: профиль сертификатов и CRL инфраструктуры открытых ключей Internet X.509.
Определение tbsCertList на языке ASN.1:
TBSCertList ::= SEQUENCE {
version Version OPTIONAL,
-- if present, must be v2
signature AlgorithmIdentifier,
issuer Name,
thisUpdate ChoiceOfTime,
nextUpdate ChoiceOfTime OPTIONAL,
revokedCertificates SEQUENCE OF SEQUENCE {
userCertificate CertificateSerialNumber,
revocationDate ChoiceOfTime,
crlEntryExtensions Extensions OPTIONAL
-- if present, must be v2
} OPTIONAL,
crlExtensions [0] EXPLICIT Extensions OPTIONAL
-- if present, must be v2
}
Экземпляры CRL создаются с помощью фабрики сертификатов. Ниже приведен пример создания экземпляра X.509 CRL:
try (InputStream inStream = new FileInputStream("fileName-of-crl")) {
CertificateFactory cf = CertificateFactory.getInstance("X.509");
X509CRL crl = (X509CRL)cf.generateCRL(inStream);
}
- Начиная с:
- 1.2
- Внешние спецификации
- См. также:
Краткое описание конструкторов
| Модификатор | Конструктор | Описание |
|---|---|---|
protected |
Конструктор для X.509 CRL. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
boolean |
equals |
Сравнивает этот CRL с указанным объектом на равенство. |
abstract byte[] |
getEncoded() |
Возвращает DER-кодированное представление этого CRL в формате ASN.1. |
abstract Principal |
getIssuerDN() |
Устаревший. |
X500Principal |
getIssuerX500Principal() |
Возвращает значение издателя (различающееся имя издателя) из CRL в виде X500Principal. |
abstract Date |
getNextUpdate() |
Возвращает дату nextUpdate из CRL. |
abstract X509CRLEntry |
getRevokedCertificate |
Возвращает запись CRL, если она существует, с указанным серийным номером сертификата. |
X509CRLEntry |
getRevokedCertificate |
Возвращает запись CRL, если она существует, для указанного сертификата. |
abstract Set |
getRevokedCertificates() |
Возвращает все записи из этого CRL. |
abstract String |
getSigAlgName() |
Возвращает имя алгоритма подписи, использованного для подписи CRL. |
abstract String |
getSigAlgOID() |
Возвращает строку OID алгоритма подписи из CRL. |
abstract byte[] |
getSigAlgParams() |
Возвращает DER-кодированные параметры алгоритма подписи, использованного для подписи этого CRL. |
abstract byte[] |
getSignature() |
Возвращает значение signature (исходные биты подписи) из CRL. |
abstract byte[] |
getTBSCertList() |
Возвращает DER-кодированные сведения о CRL — tbsCertList из этого CRL. |
abstract Date |
getThisUpdate() |
Возвращает дату thisUpdate из CRL. |
abstract int |
getVersion() |
Возвращает значение version (номер версии) из CRL. |
int |
hashCode() |
Возвращает значение хеш-кода этого CRL, вычисленное на основе его кодированного представления. |
abstract void |
verify |
Проверяет, что этот CRL подписан с использованием закрытого ключа, соответствующего указанному открытому ключу. |
abstract void |
verify |
Проверяет, что этот CRL подписан с использованием закрытого ключа, соответствующего указанному открытому ключу. |
void |
verify |
Проверяет, что этот CRL подписан с использованием закрытого ключа, соответствующего указанному открытому ключу. |
Методы, объявленные в интерфейсе X509Extension
getCriticalExtensionOIDs, getExtensionValue, getNonCriticalExtensionOIDs, hasUnsupportedCriticalExtension
Подробное описание конструкторов
X509CRL
protected X509CRL()
Подробное описание методов
equals
public boolean equals(Object other)
other является instanceof X509CRL, извлекается его кодированное представление и сравнивается с кодированным представлением этого CRL.hashCode
getEncoded
public abstract byte[] getEncoded() throws CRLException
- Возвращает:
- кодированное представление этого сертификата
- Вызывает исключение:
-
CRLException— если произошла ошибка кодирования.
verify
public abstract void verify(PublicKey key) throws CRLException, NoSuchAlgorithmException, InvalidKeyException, NoSuchProviderException, SignatureException
- Параметры:
-
key— открытый ключ, используемый для выполнения проверки. - Вызывает исключение:
-
NoSuchAlgorithmException— если алгоритмы подписи не поддерживаются. -
InvalidKeyException— если указан неверный ключ. -
NoSuchProviderException— если поставщик по умолчанию отсутствует. -
SignatureException— если произошла ошибка подписи. -
CRLException— если произошла ошибка кодирования.
verify
public abstract void verify(PublicKey key, String sigProvider) throws CRLException, NoSuchAlgorithmException, InvalidKeyException, NoSuchProviderException, SignatureException
- Параметры:
-
key— открытый ключ, используемый для выполнения проверки. -
sigProvider— имя поставщика алгоритма подписи. - Вызывает исключение:
-
NoSuchAlgorithmException— если алгоритмы подписи не поддерживаются. -
InvalidKeyException— если указан неверный ключ. -
NoSuchProviderException— если указан неверный поставщик. -
SignatureException— если произошла ошибка подписи. -
CRLException— если произошла ошибка кодирования.
verify
public void verify(PublicKey key, Provider sigProvider) throws CRLException, NoSuchAlgorithmException, InvalidKeyException, SignatureException
abstract и предоставляет реализацию по умолчанию.- Параметры:
-
key— открытый ключ, используемый для выполнения проверки. -
sigProvider— поставщик алгоритма подписи. - Вызывает исключение:
-
NoSuchAlgorithmException— если алгоритмы подписи не поддерживаются. -
InvalidKeyException— если указан неверный ключ. -
SignatureException— если произошла ошибка подписи. -
CRLException— если произошла ошибка кодирования. - Начиная с:
- 1.8
getVersion
public abstract int getVersion()
version (номер версии) из CRL. Определение на языке ASN.1:
version Version OPTIONAL,
-- if present, must be v2
Version ::= INTEGER { v1(0), v2(1), v3(2) }
-- v3 does not apply to CRLs but appears for consistency
-- with definition of Version for certs
- Возвращает:
- номер версии, то есть 1 или 2.
getIssuerDN
@Deprecated(since="16") public abstract Principal getIssuerDN()
getIssuerX500Principal(). Этот метод возвращает issuer в виде зависящего от реализации объекта Principal, на который не следует полагаться в переносимом коде.issuer (различающееся имя издателя) из CRL. Имя издателя идентифицирует сущность, подписавшую (и выпустившую) CRL. Поле имени издателя содержит различающееся имя X.500 (DN). Определение на языке ASN.1:
issuer Name
Name ::= CHOICE { RDNSequence }
RDNSequence ::= SEQUENCE OF RelativeDistinguishedName
RelativeDistinguishedName ::=
SET OF AttributeValueAssertion
AttributeValueAssertion ::= SEQUENCE {
AttributeType,
AttributeValue }
AttributeType ::= OBJECT IDENTIFIER
AttributeValue ::= ANY
Объект Name описывает иерархическое имя, состоящее из атрибутов, например названия страны, и соответствующих значений, например US. Тип компонента AttributeValue определяется AttributeType; как правило, это будет directoryString. Обычно directoryString является одним из PrintableString, TeletexString или UniversalString.- Возвращает:
- объект Principal, имя которого является различающимся именем издателя.
getIssuerX500Principal
public X500Principal getIssuerX500Principal()
X500Principal. Рекомендуется переопределять этот метод в подклассах.
- Возвращает:
- объект
X500Principal, представляющий различающееся имя издателя - Начиная с:
- 1.4
getThisUpdate
public abstract Date getThisUpdate()
thisUpdate из CRL. Определение на языке ASN.1:
thisUpdate ChoiceOfTime
ChoiceOfTime ::= CHOICE {
utcTime UTCTime,
generalTime GeneralizedTime }
- Возвращает:
- дату
thisUpdateиз CRL.
getNextUpdate
public abstract Date getNextUpdate()
nextUpdate из CRL.- Возвращает:
- дату
nextUpdateиз CRL или null, если она отсутствует.
getRevokedCertificate
public abstract X509CRLEntry getRevokedCertificate(BigInteger serialNumber)
- Параметры:
-
serialNumber— серийный номер сертификата, запись CRL для которого требуется найти - Возвращает:
- запись с указанным серийным номером или null, если такой записи в этом CRL нет.
- См. также:
getRevokedCertificate
public X509CRLEntry getRevokedCertificate(X509Certificate certificate)
Этот метод можно использовать для поиска записей в косвенных CRL, то есть CRL, содержащих записи издателей, отличных от издателя CRL. Реализация по умолчанию возвращает только записи для сертификатов, выпущенных издателем CRL. Подклассы, которым требуется поддержка косвенных CRL, должны переопределить этот метод.
- Параметры:
-
certificate— сертификат, запись CRL для которого требуется найти - Возвращает:
- запись для указанного сертификата или null, если такой записи в этом CRL нет.
- Вызывает исключение:
-
NullPointerException— если сертификат равен null - Начиная с:
- 1.5
getRevokedCertificates
public abstract Set<? extends X509CRLEntry> getRevokedCertificates()
- Возвращает:
- все записи или null, если они отсутствуют.
- См. также:
getTBSCertList
public abstract byte[] getTBSCertList() throws CRLException
tbsCertList из этого CRL. Их можно использовать для независимой проверки подписи.- Возвращает:
- DER-кодированные сведения о CRL.
- Вызывает исключение:
-
CRLException— если произошла ошибка кодирования.
getSignature
public abstract byte[] getSignature()
signature (исходные биты подписи) из CRL. Определение на языке ASN.1: signature BIT STRING
- Возвращает:
- подпись.
getSigAlgName
public abstract String getSigAlgName()
signatureAlgorithm AlgorithmIdentifier
AlgorithmIdentifier ::= SEQUENCE {
algorithm OBJECT IDENTIFIER,
parameters ANY DEFINED BY algorithm OPTIONAL }
-- contains a value of the type
-- registered for use with the
-- algorithm object identifier value
Имя алгоритма определяется по строке OID algorithm.
- Возвращает:
- имя алгоритма подписи.
getSigAlgOID
public abstract String getSigAlgOID()
Соответствующие определения ASN.1 см. в разделе getSigAlgName.
- Возвращает:
- строку OID алгоритма подписи.
- Внешние спецификации
getSigAlgParams
public abstract byte[] getSigAlgParams()
AlgorithmParameters и создайте экземпляр с именем, возвращенным методом getSigAlgName. Соответствующие определения ASN.1 см. в разделе getSigAlgName.
- Возвращает:
- DER-кодированные параметры алгоритма подписи или null, если параметры отсутствуют.
© 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://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/security/cert/X509CRL.html
getIssuerX500Principal().