Класс 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: Профиль сертификатов и списков аннулирования сертификатов для общедоступной инфраструктуры открытых ключей Internet 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 создаются с помощью фабрики сертификатов. Ниже приведен пример создания CRL X.509:
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
Конструкторы
| Модификатор | Конструктор | Описание |
|---|---|---|
protected | X509CRL() | Конструктор для CRL X.509. |
Методы
| Модификатор и тип | Метод | Описание |
|---|---|---|
boolean | equals(Object other) | Сравнивает этот CRL с заданным объектом на равенство. |
abstract byte[] | getEncoded() | Возвращает форму CRL в кодировке DER ASN.1. |
abstract Principal | getIssuerDN() | Устаревший, заменён на getIssuerX500Principal(). |
X500Principal | getIssuerX500Principal() | Возвращает эмитента (идентификатор субъекта эмитента) из CRL в виде |
abstract Date | getNextUpdate() | Получает дату |
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() | Получает значение |
abstract byte[] | getTBSCertList() | Получает CRL-информацию в кодировке DER, |
abstract Date | getThisUpdate() | Получает дату |
abstract int | getVersion() | Получает значение |
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 на равенство с заданным объектом. Если данный other объект является instanceof X509CRL, то извлекается его закодированная форма и сравнивается с закодированной формой этого CRL.
- Переопределяет:
-
equalsв классеObject - Параметры:
-
other- объект для проверки на равенство с данным CRL. - Возвращает:
- true, если закодированные формы двух CRL совпадают, иначе false.
- См. также:
-
Object.hashCode(),HashMap
hashCode
public int hashCode()
Возвращает значение хэш-кода для данного CRL из его закодированной формы.
- Переопределяет:
-
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()
Получает значение 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
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 описывает иерархическое имя, состоящее из атрибутов, таких как имя страны, и соответствующих значений, таких как США. Тип компонента 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. Подклассы, которые хотят поддерживать косвенные 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. Это можно использовать для независимой проверки подписи.
- Возвращает:
- информация CRL, закодированная в DER.
- Исключение:
-
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: 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, 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.
https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/security/cert/X509CRL.html