Класс 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: Internet X.509 Public Key Infrastructure Certificate and CRL Profile.
Определение 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<? extends X509CRLEntry> |
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 был подписан с помощью закрытого ключа, соответствующего заданному открытому ключу. |
Методы, объявленные в классе 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)
instanceof X509CRL, то его закодированная форма извлекается и сравнивается с закодированной формой этого CRL.- Overrides:
-
equalsв классеObject - Параметры:
-
other- объект для проверки на равенство с этим CRL. - Возвращает:
- true, если закодированные формы двух CRL совпадают, иначе false.
- См. также:
hashCode
public int hashCode()
- Overrides:
-
hashCodeв классеObject - Возвращает:
- значение хэш-кода.
- См. также:
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 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 как объект, специфичный для реализации, на который не следует полагаться переносному коду.Поле имени издателя содержит 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 описывает иерархическое имя, состоящее из атрибутов, таких как название страны, и соответствующих значений, таких как США. Тип компонента AttributeValue определяется AttributeType; как правило, это будет directoryString. directoryString обычно является одним из PrintableString, TeletexString или UniversalString.- Возвращает:
- объект Principal, имя которого является дистингвишинг-именем издателя.
getIssuerX500Principal
public X500Principal getIssuerX500Principal()
X500Principal. Рекомендуется переопределять этот метод в подклассах.
- Возвращает:
- объект
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 (сырые биты подписи) из 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.
- Возвращает:
- имя алгоритма подписи.
getSigAlgOID
public abstract String getSigAlgOID()
См. getSigAlgName для соответствующих определений ASN.1.
- Возвращает:
- строку OID алгоритма подписи.
getSigAlgParams
public abstract byte[] getSigAlgParams()
AlgorithmParameters и создайте экземпляр с именем, возвращаемым getSigAlgName. См. getSigAlgName для соответствующих определений ASN.1.
- Возвращает:
- DER-кодированные параметры алгоритма подписи или null, если параметры отсутствуют.
© 1993, 2021, 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/17/docs/api/java.base/java/security/cert/X509CRL.html
getIssuerX500Principal()вместо этого.