Класс X509CRL
- Все реализованные интерфейсы:
X509Extension
public abstract class X509CRL extends CRL implements X509Extension
Абстрактный класс для списка отозванных сертификатов X.509 (CRL). CRL — это список, отметенный по времени, идентифицирующий отозванные сертификаты. Он подписывается центром сертификации (ЦС) и делается свободно доступным в общедоступном хранилище.
Каждый отозванный сертификат идентифицируется в CRL по своему серийному номеру сертификата. Когда система, использующая сертификат (например, для проверки цифровой подписи удаленного пользователя), использует сертификат, эта система не только проверяет подпись и действительность сертификата, но также получает подходяще свежий CRL и проверяет, что серийный номер сертификата не указан в этом CRL. Значение «подходяще свежий» может варьироваться в зависимости от локальной политики, но обычно это означает последний выпущенный CRL. ЦС выпускает новый CRL регулярно (например, каждый час, день или неделю). Записи добавляются в CRL по мере отзыва, а запись может быть удалена, когда истекает срок действия сертификата.
Формат CRL X.509 v2 описан ниже в ASN.1:
CertificateList ::= SEQUENCE {
tbsCertList TBSCertList,
signatureAlgorithm AlgorithmIdentifier,
signature BIT STRING }
Дополнительную информацию можно найти в RFC 5280: Профиль сертификатов и списков отозванных сертификатов (CRL) открытой инфраструктуры ключей X.509 Интернета.
Определение ASN.1 для tbsCertList:
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 |
Конструктор для CRL X.509. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
boolean |
equals |
Сравнивает этот CRL на равенство с заданным объектом. |
abstract byte[] |
getEncoded() |
Возвращает форму этого CRL в кодировке ASN.1 DER. |
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() |
Возвращает значение hashcode для этого CRL из его закодированной формы. |
abstract void |
verify |
Проверяет, что этот CRL был подписан с использованием закрытого ключа, соответствующего заданному открытому ключу. |
abstract void |
verify |
Проверяет, что этот CRL был подписан с использованием закрытого ключа, соответствующего заданному открытому ключу. |
void |
verify |
Проверяет, что этот CRL был подписан с использованием закрытого ключа, соответствующего заданному открытому ключу. |
Методы, объявленные в классе java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
Методы, объявленные в интерфейсе java.security.cert.X509Extension
getCriticalExtensionOIDs, getExtensionValue, getNonCriticalExtensionOIDs, hasUnsupportedCriticalExtension
Подробное описание конструкторов
X509CRL
protected X509CRL()
Подробное описание методов
equals
public boolean equals(Object other)
hashCode
getEncoded
public abstract byte[] getEncoded() throws CRLException
- Возвращает:
- закодированную форму этого сертификата
- Исключение:
-
CRLException- если произошла ошибка кодирования.
verify
public abstract void verify(PublicKey key) throws CRLException, NoSuchAlgorithmException, InvalidKeyException, NoSuchProviderException, SignatureException
- Параметры:
-
key- PublicKey, используемый для проверки. - Исключение:
-
NoSuchAlgorithmException- при использовании неподдерживаемых алгоритмов подписи. -
InvalidKeyException- при неверном ключе. -
NoSuchProviderException- если нет поставщика по умолчанию. -
SignatureException- при ошибках подписи. -
CRLException- при ошибках кодирования.
verify
public abstract void verify(PublicKey key, String sigProvider) throws CRLException, NoSuchAlgorithmException, InvalidKeyException, NoSuchProviderException, SignatureException
- Параметры:
-
key- PublicKey, используемый для проверки. -
sigProvider- имя поставщика подписи. - Исключение:
-
NoSuchAlgorithmException- при использовании неподдерживаемых алгоритмов подписи. -
InvalidKeyException- при неверном ключе. -
NoSuchProviderException- при неверном поставщике. -
SignatureException- при ошибках подписи. -
CRLException- при ошибках кодирования.
verify
public void verify(PublicKey key, Provider sigProvider) throws CRLException, NoSuchAlgorithmException, InvalidKeyException, SignatureException
abstract и предоставляет реализацию по умолчанию.- Параметры:
-
key- PublicKey, используемый для проверки. -
sigProvider- поставщик подписи. - Исключение:
-
NoSuchAlgorithmException- при использовании неподдерживаемых алгоритмов подписи. -
InvalidKeyException- при неверном ключе. -
SignatureException- при ошибках подписи. -
CRLException- при ошибках кодирования. - С момента:
- 1.8
getVersion
public abstract int getVersion()
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() вместо этого. Этот метод возвращает имя издателя как объект, специфичный для реализации, на который не следует полагаться портативному коду.Поле имени издателя содержит отличительное имя 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
Отличительное имя описывает иерархическое имя, состоящее из атрибутов и соответствующих значений, таких как имя страны и значение US. Тип компонента отличительного имени определяется поставщиком; в общем случае это будет строка. Отличительное имя обычно является одним из PrintableString, TeletexString или UniversalString.- Возвращает:
- Principal, имя которого является отличительным именем издателя.
getIssuerX500Principal
public X500Principal getIssuerX500Principal()
Рекомендуется переопределять этот метод в подклассах.
- Возвращает:
- X500Principal, представляющий отличительное имя издателя
- С момента:
- 1.4
getThisUpdate
public abstract Date getThisUpdate()
thisUpdate ChoiceOfTime
ChoiceOfTime ::= CHOICE {
utcTime UTCTime,
generalTime GeneralizedTime }
- Возвращает:
- дату обновления CRL.
getNextUpdate
public abstract Date getNextUpdate()
- Возвращает:
- дату следующего обновления CRL, или null, если она отсутствует.
getRevokedCertificate
public abstract X509CRLEntry getRevokedCertificate(BigInteger serialNumber)
- Параметры:
-
serialNumber- серийный номер сертификата, запись CRL для которого нужно найти - Возвращает:
- запись с заданным серийным номером, или null, если такой записи нет в этом CRL.
- См. также:
getRevokedCertificate
public X509CRLEntry getRevokedCertificate(X509Certificate certificate)
Этот метод может быть использован для поиска записей CRL в косвенных 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 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()
См. getSigAlgName для соответствующих определений ASN.1.
- Возвращает:
- строку OID алгоритма подписи.
- Внешние спецификации
getSigAlgParams
public abstract byte[] getSigAlgParams()
AlgorithmParameters и инициализируйте его именем, возвращенным getSigAlgName. См. getSigAlgName для соответствующих определений ASN.1.
- Возвращает:
- параметры алгоритма подписи, закодированные в 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://download.java.net/java/early_access/jdk24/docs/api/java.base/java/security/cert/X509CRL.html
getIssuerX500Principal()вместо этого.