Класс X509CRL
- Все реализуемые интерфейсы:
BinaryEncodablePREVIEW, X509Extension
public abstract non-sealed class X509CRL extends CRL implements X509Extension, BinaryEncodablePREVIEW
Абстрактный класс для списка отозванных сертификатов X.509 (CRL). CRL — это список с временными метками, в котором указаны отозванные сертификаты. Он подписывается центром сертификации (CA) и свободно доступен в общедоступном репозитории.
Каждый отозванный сертификат идентифицируется в CRL по серийному номеру сертификата. Когда система, использующая сертификаты, использует сертификат (например, для проверки цифровой подписи удалённого пользователя), она не только проверяет подпись и срок действия сертификата, но и получает достаточно актуальный CRL, а затем проверяет, что серийный номер сертификата в нём отсутствует. Значение понятия «достаточно актуальный» может различаться в зависимости от локальной политики, но обычно имеется в виду последний выпущенный CRL. Центр сертификации выпускает новый CRL с регулярной периодичностью (например, каждый час, день или неделю). По мере отзыва сертификатов в CRL добавляются записи; запись может быть удалена по достижении срока действия сертификата.
Формат CRL X.509 версии 2 описан ниже на языке ASN.1:
CertificateList ::= SEQUENCE {
tbsCertList TBSCertList,
signatureAlgorithm AlgorithmIdentifier,
signature BIT STRING }
Дополнительную информацию см. в документе RFC 5280: профиль инфраструктуры открытых ключей X.509 в Интернете для сертификатов и CRL.
Определение 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 |
Конструктор для 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 подписан закрытым ключом, соответствующим заданному открытому ключу. |
Методы, объявленные в классе CRL
getType, isRevoked, toString | Модификатор и тип | Метод | Описание |
|---|---|---|
final String |
getType() |
Возвращает тип этого CRL. |
abstract boolean |
isRevoked |
Проверяет, содержится ли заданный сертификат в этом CRL. |
abstract String |
toString() |
Возвращает строковое представление этого CRL. |
Методы, объявленные в классе Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait | Модификатор и тип | Метод | Описание |
|---|---|---|
protected Object |
clone() |
Создаёт и возвращает копию этого объекта. |
protected void |
finalize() |
Устарел, будет удалён: этот элемент API подлежит удалению в будущей версии. Финализация устарела и подлежит удалению в одном из следующих выпусков. |
final Class |
getClass() |
Возвращает класс времени выполнения этого Object. |
final void |
notify() |
Пробуждает один поток, ожидающий на мониторе этого объекта. |
final void |
notifyAll() |
Пробуждает все потоки, ожидающие на мониторе этого объекта. |
final void |
wait() |
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt. |
final void |
wait |
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо истечения заданного промежутка реального времени. |
final void |
wait |
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо истечения заданного промежутка реального времени. |
Методы, объявленные в интерфейсе X509Extension
getCriticalExtensionOIDs, getExtensionValue, getNonCriticalExtensionOIDs, hasUnsupportedCriticalExtension | Модификатор и тип | Метод | Описание |
|---|---|---|
Set |
getCriticalExtensionOIDs() |
Возвращает набор строк OID расширений, отмеченных как CRITICAL в сертификате/CRL, обрабатываемом объектом, реализующим этот интерфейс. |
byte[] |
getExtensionValue |
Возвращает DER-кодированную строку OCTET для значения расширения (extnValue), определяемого переданной строкой oid. |
Set |
getNonCriticalExtensionOIDs() |
Возвращает набор строк OID расширений, отмеченных как NON-CRITICAL в сертификате/CRL, обрабатываемом объектом, реализующим этот интерфейс. |
boolean |
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— открытый ключ (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 (номер версии) из 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. Поле имени издателя содержит различительное имя (DN) X.500. Определение 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.
getIssuerX500Principal().