Класс 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 создаются с помощью фабрики сертификатов. Ниже приведен пример создания CRL X.509:
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() |
Возвращает ASN.1 DER-кодированную форму этого CRL. |
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 подписан с использованием закрытого ключа, соответствующего заданному открытому ключу. |
Методы, объявленные в классе 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)
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- при ошибках кодирования. - Since:
- 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 как специфичный для реализации объект 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представляющий имя издателя. - Since:
- 1.4
getThisUpdate
public abstract Date getThisUpdate()
thisUpdate CRL. Определение ASN.1:
thisUpdate ChoiceOfTime
ChoiceOfTime ::= CHOICE {
utcTime UTCTime,
generalTime GeneralizedTime }
- Возвращает:
- дата
thisUpdateCRL.
getNextUpdate
public abstract Date getNextUpdate()
nextUpdate CRL.- Возвращает:
- дата
nextUpdateCRL, или 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 - Since:
- 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
Имя алгоритма определяется из algorithm строки OID.
- Возвращает:
- имя алгоритма подписи.
getSigAlgOID
public abstract String getSigAlgOID()
См. getSigAlgName для соответствующих определений ASN.1.
- Возвращает:
- строку OID алгоритма подписи.
getSigAlgParams
public abstract byte[] getSigAlgParams()
AlgorithmParameters и создайте экземпляр с именем, возвращаемым getSigAlgName. См. getSigAlgName для соответствующих определений ASN.1.
- Возвращает:
- DER-кодированные параметры алгоритма подписи или null, если параметры отсутствуют.
© 1993, 2023, 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/21/docs/api/java.base/java/security/cert/X509CRL.html
getIssuerX500Principal()вместо этого.