Spec-Zone.ru › OpenJDK 27

Класс X509CRL

java.lang.Object
java.security.cert.CRL
java.security.cert.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
Внешние спецификации
  • RFC 5280: профиль инфраструктуры открытых ключей X.509 в Интернете для сертификатов и списков отозванных сертификатов (CRL)
См. также:
  • 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
Модификатор и тип Метод Описание
final String getType()
Возвращает тип этого CRL.
abstract boolean isRevoked(Certificate cert)
Проверяет, содержится ли заданный сертификат в этом 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(long timeoutMillis)
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо истечения заданного промежутка реального времени.
final void wait(long timeoutMillis, int nanos)
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо истечения заданного промежутка реального времени.

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

getCriticalExtensionOIDs, getExtensionValue, getNonCriticalExtensionOIDs, hasUnsupportedCriticalExtension
Модификатор и тип Метод Описание
Set<String> getCriticalExtensionOIDs()
Возвращает набор строк OID расширений, отмеченных как CRITICAL в сертификате/CRL, обрабатываемом объектом, реализующим этот интерфейс.
byte[] getExtensionValue(String oid)
Возвращает DER-кодированную строку OCTET для значения расширения (extnValue), определяемого переданной строкой oid.
Set<String> getNonCriticalExtensionOIDs()
Возвращает набор строк OID расширений, отмеченных как NON-CRITICAL в сертификате/CRL, обрабатываемом объектом, реализующим этот интерфейс.
boolean 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 — открытый ключ (PublicKey), используемый для выполнения проверки.
Вызывает исключение:
NoSuchAlgorithmException — если алгоритмы подписи не поддерживаются.
InvalidKeyException — если ключ некорректен.
NoSuchProviderException — если поставщик по умолчанию отсутствует.
SignatureException — при ошибках подписи.
CRLException — при ошибках кодирования.

verify

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

verify

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

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

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

getSigAlgParams

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

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

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

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в документации Java SE, содержащей более подробные описания для разработчиков, обзоры концепций, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её аффилированных лиц в США и других странах.
Авторское право © 1993, 2026, 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.

Spec-Zone.ru

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