Spec-Zone.ru › OpenJDK 17

Класс 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: 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
См. также:
  • 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()
Возвращает хэш-код для этого 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 на равенство с заданным объектом. Если заданный объект является объектом типа instanceof X509CRL, то его закодированная форма извлекается и сравнивается с закодированной формой этого CRL.
Overrides:
equals в классе Object
Параметры:
other - объект для проверки на равенство с этим CRL.
Возвращает:
true, если закодированные формы двух CRL совпадают, иначе false.
См. также:
  • Object.hashCode()
  • HashMap

hashCode

public int hashCode()
Возвращает значение хэш-кода для этого CRL из его закодированной формы.
Overrides:
hashCode в классе Object
Возвращает:
значение хэш-кода.
См. также:
  • 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 - открытый ключ, используемый для проверки.
Исключения:
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()
Получает значение версии 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 как объект, специфичный для реализации, на который не следует полагаться переносному коду.
Получает значение имени издателя (дистингвишинг-имя) 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 описывает иерархическое имя, состоящее из атрибутов, таких как название страны, и соответствующих значений, таких как США. Тип компонента AttributeValue определяется AttributeType; как правило, это будет directoryString. directoryString обычно является одним из 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()
Получает значение 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.

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

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 алгоритма подписи.

getSigAlgParams

public abstract byte[] getSigAlgParams()
Получает DER-кодированные параметры алгоритма подписи из алгоритма подписи данного CRL. В большинстве случаев параметры алгоритма подписи равны null; параметры обычно предоставляются вместе с открытым ключом. Если необходим доступ к отдельным значениям параметров, используйте 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

Spec-Zone.ru

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