Spec-Zone.ru › OpenJDK 8

Класс 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 — это отметенный во времени список, идентифицирующий отозванные сертификаты. Он подписан центром сертификации (CA) и свободно доступен в общедоступном репозитории.

Каждый отозванный сертификат идентифицируется в CRL по своему серийному номеру сертификата. Когда система, использующая сертификат (например, для проверки цифровой подписи удаленного пользователя), использует сертификат, она не только проверяет подпись и действительность сертификата, но также получает соответствующий последний CRL и проверяет, что серийный номер сертификата не содержится в этом CRL. Значение «соответственно последний» может варьироваться в зависимости от локальной политики, но обычно это означает последний выпущенный CRL. CA выпускает новый 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);
 }
См. также:
CRL, CertificateFactory, X509Extension

Конструкторы

Модификатор Конструктор и описание
protected X509CRL()

Конструктор для 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, если есть, с заданным номером сертификата serialNumber.

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 был подписан с использованием закрытого ключа, соответствующего указанному открытому ключу.

void verify(PublicKey key, Provider sigProvider)

Проверяет, что этот CRL был подписан с использованием закрытого ключа, соответствующего указанному открытому ключу.

abstract void verify(PublicKey key, String 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.

Методы

equals

public boolean equals(Object other)

Сравнивает этот список отозванных сертификатов на равенство с заданным объектом. Если объект other является instanceof X509CRL, то его закодированная форма извлекается и сравнивается с закодированной формой этого списка отозванных сертификатов.

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

hashCode

public int hashCode()

Возвращает значение хэш-кода для этого списка отозванных сертификатов из его закодированной формы.

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

getEncoded

public abstract byte[] getEncoded()
                           throws CRLException

Возвращает ASN.1 DER-закодированную форму этого списка отозванных сертификатов.

Возвращает:
закодированную форму этого сертификата
Исключения:
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

Проверяет, что этот список отозванных сертификатов был подписан с использованием закрытого ключа, соответствующего заданному открытому ключу. Этот метод использует механизм проверки подписи, предоставляемый указанным поставщиком. Обратите внимание, что указанный объект поставщика не обязательно должен быть зарегистрирован в списке поставщиков. Этот метод был добавлен в версию 1.8 платформы Java Standard Edition. Для поддержания обратной совместимости с существующими поставщиками услуг этот метод не abstract и предоставляет реализацию по умолчанию.

Параметры:
key - открытый ключ, используемый для проверки.
sigProvider - поставщик подписи.
Исключения:
NoSuchAlgorithmException - при неподдерживаемых алгоритмах подписи.
InvalidKeyException - при неверном ключе.
SignatureException - при ошибках подписи.
CRLException - при ошибках кодирования.
С тех пор как:
1.8

getVersion

public abstract int getVersion()

Получает значение version (номер версии) из списка отозванных сертификатов. Определение 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

public abstract Principal getIssuerDN()

Устаревший, заменён на getIssuerX500Principal(). Этот метод возвращает issuer как объект Principal, специфичный для реализации, на который не следует полагаться переносимому коду.

Получает значение issuer (имя издателя с отличительными характеристиками) из списка отозванных сертификатов. Имя издателя идентифицирует сущность, которая подписала (и выпустила) список отозванных сертификатов.

Поле имени издателя содержит имя с отличительными характеристиками 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, представляющий имя издателя с отличительными характеристиками
С тех пор как:
1.4

getThisUpdate

public abstract Date getThisUpdate()

Получает дату thisUpdate из списка отозванных сертификатов. Определение ASN.1 для этого:

thisUpdate   ChoiceOfTime
 ChoiceOfTime ::= CHOICE {
     utcTime        UTCTime,
     generalTime    GeneralizedTime }

Возвращает:
дата thisUpdate из списка отозванных сертификатов.

getNextUpdate

public abstract Date getNextUpdate()

Получает дату nextUpdate из списка отозванных сертификатов.

Возвращает:
дата nextUpdate из списка отозванных сертификатов, или null, если отсутствует.

getRevokedCertificate

public abstract X509CRLEntry getRevokedCertificate(BigInteger serialNumber)

Получает запись CRL, если таковая имеется, с заданным серийным номером сертификата.

Параметры:
serialNumber - серийный номер сертификата, для которого требуется найти запись в CRL
Возвращает:
запись с заданным серийным номером, или null, если такой записи нет в этом списке отозванных сертификатов.
См. также:
X509CRLEntry

getRevokedCertificate

public X509CRLEntry getRevokedCertificate(X509Certificate certificate)

Получить запись CRL, если таковая имеется, для заданного сертификата.

Этот метод может быть использован для поиска записей CRL в косвенных списках отозванных сертификатов, то есть в списках, содержащих записи от издателей, отличных от издателя списка отозванных сертификатов. Реализация по умолчанию вернёт только записи для сертификатов, выпущенных издателем списка отозванных сертификатов. Подклассы, которые хотят поддерживать косвенные списки отозванных сертификатов, должны переопределить этот метод.

Параметры:
certificate - сертификат, для которого требуется найти запись в CRL
Возвращает:
запись для заданного сертификата, или null, если такой записи нет в этом списке отозванных сертификатов.
Исключения:
NullPointerException - если сертификат null
С тех пор как:
1.5

getRevokedCertificates

public abstract Set<? extends X509CRLEntry> getRevokedCertificates()

Получает все записи из этого списка отозванных сертификатов. Возвращает множество объектов X509CRLEntry.

Возвращает:
все записи или null, если их нет.
См. также:
X509CRLEntry

getTBSCertList

public abstract byte[] getTBSCertList()
                               throws CRLException

Получает DER-закодированную информацию о списке отозванных сертификатов, tbsCertList из этого списка. Это может быть использовано для независимой проверки подписи.

Возвращает:
DER-закодированная информация о списке отозванных сертификатов.
Исключения:
CRLException - если произошла ошибка кодирования.

getSignature

public abstract byte[] getSignature()

Получает значение signature (сырые биты подписи) из списка отозванных сертификатов. Определение ASN.1 для этого:

signature     BIT STRING

Возвращает:
подпись.

getSigAlgName

public abstract String getSigAlgName()

Получает имя алгоритма подписи для алгоритма подписи списка отозванных сертификатов. Пример: строка "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

Имя алгоритма определяется из algorithm строки OID.

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

getSigAlgOID

public abstract String getSigAlgOID()

Получает строку OID алгоритма подписи из списка отозванных сертификатов. 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-закодированные параметры алгоритма подписи из алгоритма подписи этого списка отозванных сертификатов. В большинстве случаев параметры алгоритма подписи равны null; параметры обычно предоставляются вместе с открытым ключом. Если требуется доступ к отдельным значениям параметров, используйте AlgorithmParameters и инициализируйте его именем, возвращённым getSigAlgName.

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

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

© 1993, 2020, 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