Spec-Zone.ru › OpenJDK 25

Класс X509CRL

java.lang.Object
java.security.cert.CRL
java.security.cert.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
Внешние спецификации
  • RFC 5280: профиль сертификатов и списков отзыва сертификатов (CRL) инфраструктуры открытых ключей Internet X.509
См. также:
  • CRL
  • CertificateFactory
  • X509Extension

Краткое описание конструкторов

X509CRL()
Модификатор Конструктор Описание
protected
Конструктор для X.509 CRL.

Краткое описание методов

Модификатор и тип Метод Описание
boolean equals(Object other)
Сравнивает этот CRL с указанным объектом на равенство.
abstract byte[] getEncoded()
Возвращает DER-кодированное представление этого CRL в формате ASN.1.
abstract Principal getIssuerDN()
Устаревший.
Вместо него используйте getIssuerX500Principal().
X500Principal getIssuerX500Principal()
Возвращает значение издателя (различающееся имя издателя) из CRL в виде X500Principal.
abstract Date getNextUpdate()
Возвращает дату nextUpdate из CRL.
abstract X509CRLEntry getRevokedCertificate(BigInteger serialNumber)
Возвращает запись CRL, если она существует, с указанным серийным номером сертификата.
X509CRLEntry getRevokedCertificate(X509Certificate certificate)
Возвращает запись 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(PublicKey key)
Проверяет, что этот CRL подписан с использованием закрытого ключа, соответствующего указанному открытому ключу.
abstract void verify(PublicKey key, String sigProvider)
Проверяет, что этот CRL подписан с использованием закрытого ключа, соответствующего указанному открытому ключу.
void verify(PublicKey key, Provider sigProvider)
Проверяет, что этот CRL подписан с использованием закрытого ключа, соответствующего указанному открытому ключу.

Методы, объявленные в классе CRL

getType, isRevoked, toString

Методы, объявленные в классе Object

clone, finalize, getClass, notify, notifyAll, wait, wait, wait

Методы, объявленные в интерфейсе X509Extension

getCriticalExtensionOIDs, getExtensionValue, getNonCriticalExtensionOIDs, hasUnsupportedCriticalExtension

Подробное описание конструкторов

X509CRL

protected X509CRL()
Конструктор для X.509 CRL.

Подробное описание методов

equals

public boolean equals(Object other)
Сравнивает этот CRL с указанным объектом на равенство. Если указанный объект other является instanceof X509CRL, извлекается его кодированное представление и сравнивается с кодированным представлением этого CRL.
Переопределяет:
equals в классе Object
Параметры:
other — объект, равенство с которым проверяется для этого CRL.
Возвращает:
true, если кодированные представления двух CRL совпадают; в противном случае false.
См. также:
  • Object.hashCode()
  • HashMap

hashCode

public int hashCode()
Возвращает значение хеш-кода этого CRL, вычисленное на основе его кодированного представления.
Переопределяет:
hashCode в классе Object
Возвращает:
значение хеш-кода этого CRL, вычисленное на основе его кодированного представления
См. также:
  • Object.equals(java.lang.Object)
  • System.identityHashCode(Object)

getEncoded

public abstract byte[] getEncoded() throws CRLException
Возвращает DER-кодированное представление этого CRL в формате ASN.1.
Возвращает:
кодированное представление этого сертификата
Вызывает исключение:
CRLException — если произошла ошибка кодирования.

verify

public abstract void verify(PublicKey key) throws CRLException, NoSuchAlgorithmException, InvalidKeyException, NoSuchProviderException, SignatureException
Проверяет, что этот CRL подписан с использованием закрытого ключа, соответствующего указанному открытому ключу.
Параметры:
key — открытый ключ, используемый для выполнения проверки.
Вызывает исключение:
NoSuchAlgorithmException — если алгоритмы подписи не поддерживаются.
InvalidKeyException — если указан неверный ключ.
NoSuchProviderException — если поставщик по умолчанию отсутствует.
SignatureException — если произошла ошибка подписи.
CRLException — если произошла ошибка кодирования.

verify

public abstract void verify(PublicKey key, String sigProvider) throws CRLException, NoSuchAlgorithmException, InvalidKeyException, NoSuchProviderException, SignatureException
Проверяет, что этот CRL подписан с использованием закрытого ключа, соответствующего указанному открытому ключу. Этот метод использует механизм проверки подписи, предоставленный указанным поставщиком.
Параметры:
key — открытый ключ, используемый для выполнения проверки.
sigProvider — имя поставщика алгоритма подписи.
Вызывает исключение:
NoSuchAlgorithmException — если алгоритмы подписи не поддерживаются.
InvalidKeyException — если указан неверный ключ.
NoSuchProviderException — если указан неверный поставщик.
SignatureException — если произошла ошибка подписи.
CRLException — если произошла ошибка кодирования.

verify

public void verify(PublicKey key, Provider sigProvider) throws CRLException, NoSuchAlgorithmException, InvalidKeyException, SignatureException
Проверяет, что этот CRL подписан с использованием закрытого ключа, соответствующего указанному открытому ключу. Этот метод использует механизм проверки подписи, предоставленный указанным поставщиком. Обратите внимание, что указанный объект Provider не обязательно должен быть зарегистрирован в списке поставщиков. Этот метод был добавлен в версии 1.8 Java Platform Standard Edition. Для обеспечения обратной совместимости с существующими поставщиками служб этот метод не является 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()
Возвращает значение издателя (различающееся имя издателя) из CRL в виде 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)
Возвращает запись CRL, если она существует, с указанным серийным номером сертификата.
Параметры:
serialNumber — серийный номер сертификата, запись CRL для которого требуется найти
Возвращает:
запись с указанным серийным номером или null, если такой записи в этом CRL нет.
См. также:
  • X509CRLEntry

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()
Возвращает все записи из этого CRL. Метод возвращает набор объектов X509CRLEntry.
Возвращает:
все записи или null, если они отсутствуют.
См. также:
  • X509CRLEntry

getTBSCertList

public abstract byte[] getTBSCertList() throws CRLException
Возвращает DER-кодированные сведения о CRL — tbsCertList из этого CRL. Их можно использовать для независимой проверки подписи.
Возвращает:
DER-кодированные сведения о CRL.
Вызывает исключение:
CRLException — если произошла ошибка кодирования.

getSignature

public abstract byte[] getSignature()
Возвращает значение signature (исходные биты подписи) из CRL. Определение на языке ASN.1:
signature     BIT STRING
Возвращает:
подпись.

getSigAlgName

public abstract String getSigAlgName()
Возвращает имя алгоритма подписи, использованного для подписи CRL. Пример — строка "SHA256withRSA". Определение на языке ASN.1:
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()
Возвращает строку OID алгоритма подписи из CRL. OID представляется набором неотрицательных целых чисел, разделенных точками. Например, строка "1.2.840.10040.4.3" обозначает алгоритм подписи SHA-1 с DSA, определенный в документе RFC 3279: алгоритмы и идентификаторы для профиля сертификатов и CRL инфраструктуры открытых ключей Internet X.509.

Соответствующие определения ASN.1 см. в разделе getSigAlgName.

Возвращает:
строку OID алгоритма подписи.
Внешние спецификации
  • RFC 3279: алгоритмы и идентификаторы для профиля сертификатов и списков отзыва сертификатов (CRL) инфраструктуры открытых ключей Internet X.509

getSigAlgParams

public abstract byte[] getSigAlgParams()
Возвращает DER-кодированные параметры алгоритма подписи, использованного для подписи этого CRL. В большинстве случаев параметры алгоритма подписи равны null; обычно параметры предоставляются вместе с открытым ключом. Если требуется получить отдельные значения параметров, используйте AlgorithmParameters и создайте экземпляр с именем, возвращенным методом getSigAlgName.

Соответствующие определения ASN.1 см. в разделе getSigAlgName.

Возвращает:
DER-кодированные параметры алгоритма подписи или null, если параметры отсутствуют.

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в документации Java SE, содержащей более подробные описания для разработчиков, включая концептуальные обзоры, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторские права © 1993, 2025, Oracle и/или ее аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API