Spec-Zone.ru › OpenJDK 24

Класс X509CRL

java.lang.Object
java.security.cert.CRL
java.security.cert.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 создаются с помощью фабрики сертификатов. Ниже приведен пример того, как создать 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) открытой инфраструктуры ключей X.509 Интернета
См. также:
  • CRL
  • CertificateFactory
  • X509Extension

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

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

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

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

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

getType, isRevoked, toString

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

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

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

getCriticalExtensionOIDs, getExtensionValue, getNonCriticalExtensionOIDs, hasUnsupportedCriticalExtension

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

X509CRL

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

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

equals

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

hashCode

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

getEncoded

public abstract byte[] getEncoded() throws CRLException
Возвращает ASN.1 DER-закодированную форму этого CRL.
Возвращает:
закодированную форму этого сертификата
Исключение:
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 Platform Standard Edition. Для обеспечения обратной совместимости с существующими поставщиками услуг этот метод не abstract и предоставляет реализацию по умолчанию.
Параметры:
key - PublicKey, используемый для проверки.
sigProvider - поставщик подписи.
Исключение:
NoSuchAlgorithmException - при использовании неподдерживаемых алгоритмов подписи.
InvalidKeyException - при неверном ключе.
SignatureException - при ошибках подписи.
CRLException - при ошибках кодирования.
С момента:
1.8

getVersion

public abstract int getVersion()
Получает значение версии 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() вместо этого. Этот метод возвращает имя издателя как объект, специфичный для реализации, на который не следует полагаться портативному коду.
Получает имя издателя (отличительное имя издателя) из 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
 
Отличительное имя описывает иерархическое имя, состоящее из атрибутов и соответствующих значений, таких как имя страны и значение US. Тип компонента отличительного имени определяется поставщиком; в общем случае это будет строка. Отличительное имя обычно является одним из PrintableString, TeletexString или UniversalString.
Возвращает:
Principal, имя которого является отличительным именем издателя.

getIssuerX500Principal

public X500Principal getIssuerX500Principal()
Возвращает значение издателя (отличительное имя издателя) из CRL как X500Principal.

Рекомендуется переопределять этот метод в подклассах.

Возвращает:
X500Principal, представляющий отличительное имя издателя
С момента:
1.4

getThisUpdate

public abstract Date getThisUpdate()
Получает дату обновления CRL. Определение ASN.1:
 thisUpdate   ChoiceOfTime
 ChoiceOfTime ::= CHOICE {
     utcTime        UTCTime,
     generalTime    GeneralizedTime }
 
Возвращает:
дату обновления CRL.

getNextUpdate

public abstract Date getNextUpdate()
Получает дату следующего обновления CRL.
Возвращает:
дату следующего обновления 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. Подклассы, которые хотят поддерживать косвенные 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()
Возвращает значение подписи (сырые биты подписи) из 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.

Возвращает:
имя алгоритма подписи.
END_OF_DOCUMENT_MARKER

getSigAlgOID

public abstract String getSigAlgOID()
Получает строку OID алгоритма подписи из CRL. OID представлен набором неотрицательных целых чисел, разделенных точками. Например, строка "1.2.840.10040.4.3" идентифицирует алгоритм подписи SHA-1 с DSA, определенный в RFC 3279: Algorithms and Identifiers for the Internet X.509 Public Key Infrastructure Certificate and CRL Profile.

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

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

getSigAlgParams

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

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

Возвращает:
параметры алгоритма подписи, закодированные в 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.
https://download.java.net/java/early_access/jdk24/docs/api/java.base/java/security/cert/X509CRL.html

Spec-Zone.ru

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