Spec-Zone.ru › OpenJDK 27

Класс X509Certificate

java.lang.Object
java.security.cert.Certificate
java.security.cert.X509Certificate
Все реализованные интерфейсы:
Serializable, BinaryEncodablePREVIEW, X509Extension
public abstract non-sealed class X509Certificate extends Certificate implements X509Extension, BinaryEncodablePREVIEW

Абстрактный класс для сертификатов X.509. Он предоставляет стандартный способ доступа ко всем атрибутам сертификата X.509.

В июне 1996 года базовый формат X.509 v3 был завершён ISO/IEC и ANSI X9; он описан ниже на языке ASN.1:

Certificate  ::=  SEQUENCE  {
    tbsCertificate       TBSCertificate,
    signatureAlgorithm   AlgorithmIdentifier,
    signature            BIT STRING  }

Эти сертификаты широко используются для поддержки аутентификации и других функций в системах безопасности Интернета. К распространённым приложениям относятся Privacy Enhanced Mail (PEM), Transport Layer Security (SSL), подписание кода для доверенного распространения программного обеспечения и Secure Electronic Transactions (SET).

Управление этими сертификатами и их заверение выполняют центры сертификации (CA). CA — это службы, которые создают сертификаты, помещая данные в стандартный формат X.509, а затем подписывая их цифровой подписью. CA выступают в качестве доверенных третьих сторон, устанавливая связь между субъектами, которые не знакомы друг с другом напрямую. Сертификаты CA подписываются либо самими этими CA, либо другим CA, например «корневым» CA.

Дополнительные сведения см. в RFC 5280: профиль сертификатов и списков отзыва сертификатов (CRL) инфраструктуры открытых ключей Internet X.509.

Определение ASN.1 для tbsCertificate:

TBSCertificate  ::=  SEQUENCE  {
    version         [0]  EXPLICIT Version DEFAULT v1,
    serialNumber         CertificateSerialNumber,
    signature            AlgorithmIdentifier,
    issuer               Name,
    validity             Validity,
    subject              Name,
    subjectPublicKeyInfo SubjectPublicKeyInfo,
    issuerUniqueID  [1]  IMPLICIT UniqueIdentifier OPTIONAL,
                         -- If present, version must be v2 or v3
    subjectUniqueID [2]  IMPLICIT UniqueIdentifier OPTIONAL,
                         -- If present, version must be v2 or v3
    extensions      [3]  EXPLICIT Extensions OPTIONAL
                         -- If present, version must be v3
    }

Сертификаты создаются с помощью фабрики сертификатов. Ниже приведён пример создания сертификата X.509:

try (InputStream inStream = new FileInputStream("fileName-of-cert")) {
    CertificateFactory cf = CertificateFactory.getInstance("X.509");
    X509Certificate cert = (X509Certificate)cf.generateCertificate(inStream);
}
Начиная с:
1.2
Внешние спецификации
  • RFC 5280: профиль сертификатов и списков отзыва сертификатов (CRL) инфраструктуры открытых ключей Internet X.509
См. также:
  • Certificate
  • CertificateFactory
  • X509Extension
  • Сериализованная форма

Краткое описание вложенных классов

Вложенные классы и интерфейсы, объявленные в классе Certificate

Certificate.CertificateRep
Модификатор и тип Класс Описание
protected static class  Certificate.CertificateRep
Альтернативный класс Certificate для сериализации.

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

X509Certificate()
Модификатор Конструктор Описание
protected
Конструктор сертификатов X.509.

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

Модификатор и тип Метод Описание
abstract void checkValidity()
Проверяет, действителен ли сертификат в данный момент.
abstract void checkValidity(Date date)
Проверяет, входит ли указанная дата в период действия сертификата.
abstract int getBasicConstraints()
Возвращает длину пути ограничений сертификата из критического расширения BasicConstraints (OID = 2.5.29.19).
List<String> getExtendedKeyUsage()
Возвращает неизменяемый список строк, представляющих идентификаторы объектов (OBJECT IDENTIFIER) поля ExtKeyUsageSyntax расширения расширенного использования ключа (OID = 2.5.29.37).
Collection<List<?>> getIssuerAlternativeNames()
Возвращает неизменяемую коллекцию альтернативных имён издателя из расширения IssuerAltName (OID = 2.5.29.18).
abstract Principal getIssuerDN()
Устарело.
Вместо этого используйте getIssuerX500Principal().
abstract boolean[] getIssuerUniqueID()
Возвращает значение issuerUniqueID из сертификата.
X500Principal getIssuerX500Principal()
Возвращает значение издателя (различительное имя издателя) из сертификата в виде X500Principal.
abstract boolean[] getKeyUsage()
Возвращает логический массив, представляющий биты расширения KeyUsage (OID = 2.5.29.15).
abstract Date getNotAfter()
Возвращает дату notAfter из периода действия сертификата.
abstract Date getNotBefore()
Возвращает дату notBefore из периода действия сертификата.
abstract BigInteger getSerialNumber()
Возвращает значение serialNumber из сертификата.
abstract String getSigAlgName()
Возвращает название алгоритма подписи, используемого для подписи сертификата.
abstract String getSigAlgOID()
Возвращает строку OID алгоритма подписи из сертификата.
abstract byte[] getSigAlgParams()
Возвращает параметры алгоритма подписи этого сертификата в кодировке DER.
abstract byte[] getSignature()
Возвращает значение signature (необработанные биты подписи) из сертификата.
Collection<List<?>> getSubjectAlternativeNames()
Возвращает неизменяемую коллекцию альтернативных имён субъекта из расширения SubjectAltName (OID = 2.5.29.17).
abstract Principal getSubjectDN()
Устарело.
Вместо этого используйте getSubjectX500Principal().
abstract boolean[] getSubjectUniqueID()
Возвращает значение subjectUniqueID из сертификата.
X500Principal getSubjectX500Principal()
Возвращает значение субъекта (различительное имя субъекта) из сертификата в виде X500Principal.
abstract byte[] getTBSCertificate()
Возвращает информацию о сертификате в кодировке DER — tbsCertificate этого сертификата.
abstract int getVersion()
Возвращает значение version (номер версии) из сертификата.
void verify(PublicKey key, Provider sigProvider)
Проверяет, подписан ли этот сертификат с помощью закрытого ключа, соответствующего указанному открытому ключу.

Методы, объявленные в классе Certificate

equals, getEncoded, getPublicKey, getType, hashCode, toString, verify, verify, writeReplace
Модификатор и тип Метод Описание
boolean equals(Object other)
Сравнивает этот сертификат на равенство с указанным объектом.
abstract byte[] getEncoded()
Возвращает закодированное представление этого сертификата.
abstract PublicKey getPublicKey()
Возвращает открытый ключ из этого сертификата.
final String getType()
Возвращает тип этого сертификата.
int hashCode()
Возвращает значение хеш-кода этого сертификата, вычисленное на основе его закодированного представления.
abstract String toString()
Возвращает строковое представление этого сертификата.
abstract void verify(PublicKey key)
Проверяет, подписан ли этот сертификат с помощью закрытого ключа, соответствующего указанному открытому ключу.
abstract void verify(PublicKey key, String sigProvider)
Проверяет, подписан ли этот сертификат с помощью закрытого ключа, соответствующего указанному открытому ключу.
protected Object writeReplace()
Заменяет Certificate, подлежащий сериализации, объектом CertificateRep, содержащим тип и закодированные байты Certificate.

Методы, объявленные в классе 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()
Переводит текущий поток в состояние ожидания до его пробуждения, обычно посредством уведомления или прерывания.
final void wait(long timeoutMillis)
Переводит текущий поток в состояние ожидания до его пробуждения, обычно посредством уведомления или прерывания, либо до истечения заданного промежутка реального времени.
final void wait(long timeoutMillis, int nanos)
Переводит текущий поток в состояние ожидания до его пробуждения, обычно посредством уведомления или прерывания, либо до истечения заданного промежутка реального времени.

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

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

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

X509Certificate

protected X509Certificate()
Конструктор для сертификатов X.509.

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

checkValidity

public abstract void checkValidity() throws CertificateExpiredException, CertificateNotYetValidException
Проверяет, действителен ли сертификат в настоящий момент. Сертификат действителен, если текущие дата и время входят в указанный в сертификате период действия.

Период действия состоит из двух значений даты и времени: первой и последней даты (и времени), в которые сертификат действителен. Он определен в ASN.1 следующим образом:

validity             Validity

Validity ::= SEQUENCE {
    notBefore      CertificateValidityDate,
    notAfter       CertificateValidityDate }

CertificateValidityDate ::= CHOICE {
    utcTime        UTCTime,
    generalTime    GeneralizedTime }
Вызывает исключение:
CertificateExpiredException — если срок действия сертификата истек.
CertificateNotYetValidException — если срок действия сертификата еще не начался.

checkValidity

public abstract void checkValidity(Date date) throws CertificateExpiredException, CertificateNotYetValidException
Проверяет, входит ли указанная дата в период действия сертификата. Иными словами, определяет, был бы сертификат действителен в указанную дату и время.
Параметры:
date — дата, относительно которой проверяется, действителен ли сертификат в этот момент.
Вызывает исключение:
CertificateExpiredException — если срок действия сертификата истек на момент, указанный в переданном date.
CertificateNotYetValidException — если срок действия сертификата еще не начался на момент, указанный в переданном date.
См. также:
  • checkValidity()

getVersion

public abstract int getVersion()
Возвращает значение version (номер версии) из сертификата. Определение ASN.1 для этого значения:
version  [0] EXPLICIT Version DEFAULT v1

Version ::=  INTEGER  {  v1(0), v2(1), v3(2)  }
Возвращает:
номер версии: 1, 2 или 3.

getSerialNumber

public abstract BigInteger getSerialNumber()
Возвращает значение serialNumber из сертификата. Серийный номер — это целое число, назначаемое удостоверяющим центром каждому сертификату. Он должен быть уникальным для каждого сертификата, выданного данным УЦ (то есть имя издателя и серийный номер идентифицируют уникальный сертификат). Определение ASN.1 для этого значения:
serialNumber     CertificateSerialNumber

CertificateSerialNumber  ::=  INTEGER
Возвращает:
серийный номер.

getIssuerDN

@Deprecated(since="16") 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

getSubjectDN

@Deprecated(since="16") public abstract Principal getSubjectDN()
Устарел.
Вместо него используйте getSubjectX500Principal(). Этот метод возвращает subject в виде зависящего от реализации объекта Principal, на который не следует полагаться в переносимом коде.
Возвращает значение subject (различительное имя субъекта) из сертификата. Если значение subject пусто, метод getName() возвращенного объекта Principal возвращает пустую строку ("").

Определение ASN.1 для этого значения:

subject    Name

Определения Name и другие относящиеся к делу определения см. в разделе getIssuerDN.

Возвращает:
Principal, имя которого является именем субъекта.

getSubjectX500Principal

public X500Principal getSubjectX500Principal()
Возвращает значение субъекта (различительное имя субъекта) из сертификата в виде X500Principal. Если значение субъекта пусто, метод getName() возвращенного объекта X500Principal возвращает пустую строку ("").

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

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

getNotBefore

public abstract Date getNotBefore()
Возвращает дату notBefore из периода действия сертификата. Соответствующие определения ASN.1:
validity             Validity

Validity ::= SEQUENCE {
    notBefore      CertificateValidityDate,
    notAfter       CertificateValidityDate }

CertificateValidityDate ::= CHOICE {
    utcTime        UTCTime,
    generalTime    GeneralizedTime }
Возвращает:
дата начала периода действия.
См. также:
  • checkValidity()

getNotAfter

public abstract Date getNotAfter()
Возвращает дату notAfter из периода действия сертификата. Соответствующие определения ASN.1 см. в разделе getNotBefore.
Возвращает:
дата окончания периода действия.
См. также:
  • checkValidity()

getTBSCertificate

public abstract byte[] getTBSCertificate() throws CertificateEncodingException
Возвращает закодированную в DER информацию о сертификате — tbsCertificate данного сертификата. Ее можно использовать для независимой проверки подписи.
Возвращает:
закодированную в DER информацию о сертификате.
Вызывает исключение:
CertificateEncodingException — если произошла ошибка кодирования.

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

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

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

getSigAlgOID

public abstract String getSigAlgOID()
Возвращает строку OID алгоритма подписи из сертификата. OID представляется набором неотрицательных целых чисел, разделенных точками. Например, строка "1.2.840.10040.4.3" обозначает алгоритм подписи SHA-1 с DSA, определенный в документе RFC 3279: Алгоритмы и идентификаторы для профиля сертификатов и списков отзыва сертификатов (CRL) инфраструктуры открытых ключей Internet X.509.

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

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

getSigAlgParams

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

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

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

getIssuerUniqueID

public abstract boolean[] getIssuerUniqueID()
Возвращает значение issuerUniqueID из сертификата. Уникальный идентификатор издателя присутствует в сертификате на случай повторного использования имен издателей с течением времени. RFC 5280 рекомендует не использовать повторно имена и не включать уникальные идентификаторы в соответствующие требованиям сертификаты. Приложения, соответствующие этому профилю, должны уметь анализировать уникальные идентификаторы и выполнять сравнение.

Определение ASN.1 для этого значения:

issuerUniqueID  [1]  IMPLICIT UniqueIdentifier OPTIONAL

UniqueIdentifier  ::=  BIT STRING
Возвращает:
уникальный идентификатор издателя или null, если он отсутствует в сертификате.

getSubjectUniqueID

public abstract boolean[] getSubjectUniqueID()
Возвращает значение subjectUniqueID из сертификата.

Определение ASN.1 для этого значения:

subjectUniqueID  [2]  IMPLICIT UniqueIdentifier OPTIONAL

UniqueIdentifier  ::=  BIT STRING
Возвращает:
уникальный идентификатор субъекта или null, если он отсутствует в сертификате.

getKeyUsage

public abstract boolean[] getKeyUsage()
Возвращает массив логических значений, представляющий биты расширения KeyUsage (OID = 2.5.29.15). Расширение использования ключа определяет назначение (например, шифрование, подпись, подписание сертификатов) ключа, содержащегося в сертификате. Определение ASN.1 для этого значения:
KeyUsage ::= BIT STRING {
    digitalSignature        (0),
    nonRepudiation          (1),
    keyEncipherment         (2),
    dataEncipherment        (3),
    keyAgreement            (4),
    keyCertSign             (5),
    cRLSign                 (6),
    encipherOnly            (7),
    decipherOnly            (8) }
RFC 5280 рекомендует, чтобы при использовании это расширение помечалось как критическое.
Возвращает:
расширение KeyUsage данного сертификата в виде массива логических значений. Порядок значений KeyUsage в массиве совпадает с порядком в приведенном выше определении ASN.1. Массив содержит значение для каждого указанного выше значения KeyUsage. Если список KeyUsage, закодированный в сертификате, длиннее приведенного выше списка, он не будет усечен. Возвращает null, если сертификат не содержит расширения KeyUsage.

getExtendedKeyUsage

public List<String> getExtendedKeyUsage() throws CertificateParsingException
Возвращает неизменяемый список строк, представляющих OBJECT IDENTIFIER поля ExtKeyUsageSyntax расширения расширенного использования ключа (OID = 2.5.29.37). Он указывает одно или несколько назначений, для которых может использоваться сертифицированный открытый ключ, помимо основных назначений, указанных в поле расширения использования ключа, или вместо них. Определение ASN.1 для этого значения:
ExtKeyUsageSyntax ::= SEQUENCE SIZE (1..MAX) OF KeyPurposeId

KeyPurposeId ::= OBJECT IDENTIFIER
Назначения ключей могут определяться любой организацией, которой это необходимо. Идентификаторы объектов, используемые для обозначения назначений ключей, должны назначаться в соответствии с рекомендациями IANA или ITU-T Rec. X.660 | ISO/IEC/ITU 9834-1.

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

Возвращает:
расширение ExtendedKeyUsage данного сертификата в виде неизменяемого списка идентификаторов объектов, представленных строками. Возвращает null, если сертификат не содержит расширения ExtendedKeyUsage.
Вызывает исключение:
CertificateParsingException — если расширение не удается декодировать
Начиная с версии:
1.4

getBasicConstraints

public abstract int getBasicConstraints()
Возвращает длину пути ограничений сертификата из критического расширения BasicConstraints (OID = 2.5.29.19).

Расширение базовых ограничений указывает, является ли субъект сертификата центром сертификации (CA), а также насколько длинным может быть путь сертификации через этот центр. Поле pathLenConstraint (см. ниже) имеет смысл только в том случае, если cA имеет значение TRUE. В этом случае оно задает максимальное количество сертификатов CA, которые могут следовать за данным сертификатом в пути сертификации. Значение 0 означает, что далее по пути может следовать только сертификат конечного субъекта.

Определение ASN.1 для этого значения:

BasicConstraints ::= SEQUENCE {
    cA                  BOOLEAN DEFAULT FALSE,
    pathLenConstraint   INTEGER (0..MAX) OPTIONAL }
Возвращает:
значение pathLenConstraint, если расширение BasicConstraints присутствует в сертификате и субъект сертификата является CA; в противном случае — -1. Если субъект сертификата является CA, а pathLenConstraint отсутствует, возвращается Integer.MAX_VALUE, указывающее на отсутствие ограничения длины пути сертификации.

getSubjectAlternativeNames

public Collection<List<?>> getSubjectAlternativeNames() throws CertificateParsingException
Возвращает неизменяемую коллекцию альтернативных имен субъекта из расширения SubjectAltName (OID = 2.5.29.17).

Определение ASN.1 расширения SubjectAltName:

SubjectAltName ::= GeneralNames

GeneralNames :: = SEQUENCE SIZE (1..MAX) OF GeneralName

GeneralName ::= CHOICE {
     otherName                       [0]     OtherName,
     rfc822Name                      [1]     IA5String,
     dNSName                         [2]     IA5String,
     x400Address                     [3]     ORAddress,
     directoryName                   [4]     Name,
     ediPartyName                    [5]     EDIPartyName,
     uniformResourceIdentifier       [6]     IA5String,
     iPAddress                       [7]     OCTET STRING,
     registeredID                    [8]     OBJECT IDENTIFIER}

OtherName ::= SEQUENCE {
     type-id    OBJECT IDENTIFIER,
     value      [0] EXPLICIT ANY DEFINED BY type-id }

Если сертификат не содержит расширения SubjectAltName, возвращается null. В противном случае возвращается Collection, содержащая запись для каждого GeneralName, включенного в расширение. Каждая запись представляет собой List, первый элемент которого — Integer (тип имени, 0–8), а второй — String или массив байтов (имя соответственно в строковом формате или в форме кодировки ASN.1 DER). В зависимости от типа имени могут присутствовать дополнительные элементы.

Имена RFC 822, DNS и URI возвращаются в виде String с использованием общепринятых строковых форматов этих типов (с учетом ограничений, указанных в RFC 5280). Имена IPv4-адресов возвращаются в точечно-десятичной нотации. Имена IPv6-адресов возвращаются в формате "a1:a2:...:a8", где a1–a8 — шестнадцатеричные значения, представляющие восемь 16-битных частей адреса. Имена OID возвращаются в виде String, представленных последовательностью неотрицательных целых чисел, разделенных точками. Имена каталогов (различительные имена) возвращаются в строковом формате RFC 2253. Стандартный строковый формат для имен X.400 и имен сторон EDI не определен. Они возвращаются в виде массивов байтов, содержащих имя в кодировке ASN.1 DER. otherNames также возвращаются в виде массивов байтов, содержащих имя в кодировке ASN.1 DER. Список может содержать третий элемент со значением type-id otherName в строковом формате и четвертый элемент со значением value: строкой (если значение является допустимой поддерживаемой символьной строкой) или массивом байтов, содержащим значение в кодировке ASN.1 DER без контекстно-зависимого конструктивного тега с номером 0.

Обратите внимание, что возвращаемая Collection может содержать несколько имен одного типа. Кроме того, возвращаемая Collection является неизменяемой, а все содержащие массивы байтов элементы клонируются для защиты от последующих изменений.

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

Примечание по реализации:
Поставщик JDK SUN поддерживает третий и четвертый элементы otherName.
Возвращает:
неизменяемая Collection альтернативных имен субъекта (или null)
Вызывает исключение:
CertificateParsingException — если расширение не удается декодировать
Начиная с версии:
1.4
Внешние спецификации
  • RFC 2253: Протокол облегченного доступа к каталогам (версия 3): представление различительных имен в виде строк UTF-8
  • RFC 822: Стандарт формата текстовых сообщений ARPA Internet

getIssuerAlternativeNames

public Collection<List<?>> getIssuerAlternativeNames() throws CertificateParsingException
Возвращает неизменяемую коллекцию альтернативных имен издателя из расширения IssuerAltName (OID = 2.5.29.18).

Определение ASN.1 расширения IssuerAltName:

IssuerAltName ::= GeneralNames
Определение ASN.1 для GeneralNames приведено в разделе getSubjectAlternativeNames.

Если сертификат не содержит расширения IssuerAltName, возвращается null. В противном случае возвращается Collection, содержащая запись для каждого GeneralName, включенного в расширение. Каждая запись представляет собой List, первый элемент которого — Integer (тип имени, 0–8), а второй — String или массив байтов (имя соответственно в строковом формате или в форме кодировки ASN.1 DER). В зависимости от типа имени могут присутствовать дополнительные элементы. Подробнее о форматах каждого типа имени см. в описании метода getSubjectAlternativeNames.

Обратите внимание, что возвращаемая Collection может содержать несколько имен одного типа. Кроме того, возвращаемая Collection является неизменяемой, а все содержащие массивы байтов элементы клонируются для защиты от последующих изменений.

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

Возвращает:
неизменяемая Collection альтернативных имен издателя (или null)
Вызывает исключение:
CertificateParsingException — если расширение не удается декодировать
Начиная с версии:
1.4

verify

public void verify(PublicKey key, Provider sigProvider) throws CertificateException, NoSuchAlgorithmException, InvalidKeyException, SignatureException
Проверяет, был ли данный сертификат подписан с использованием закрытого ключа, соответствующего указанному открытому ключу. Этот метод использует механизм проверки подписи, предоставляемый указанным поставщиком. Обратите внимание, что указанный объект Provider необязательно должен быть зарегистрирован в списке поставщиков. Этот метод добавлен в версию 1.8 Java Platform Standard Edition. Для обеспечения обратной совместимости с существующими поставщиками услуг этот метод не abstract и содержит реализацию по умолчанию.
Переопределяет:
verify в классе Certificate
Параметры:
key — открытый ключ, используемый для проверки.
sigProvider — поставщик алгоритма подписи.
Вызывает исключение:
NoSuchAlgorithmException — если алгоритмы подписи не поддерживаются.
InvalidKeyException — если ключ неверен.
SignatureException — при ошибках подписи.
CertificateException — при ошибках кодирования.
UnsupportedOperationException — если метод не поддерживается
Начиная с версии:
1.8

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по 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