Spec-Zone.ru › OpenJDK 25

Класс X509Certificate

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

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

В июне 1996 года ISO/IEC и ANSI X9 завершили работу над базовым форматом X.509 v3, описанным ниже в 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

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

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

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

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

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

getCriticalExtensionOIDs, getExtensionValue, getNonCriticalExtensionOIDs, 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

См. getIssuerDN, где приведены Name и другие соответствующие определения.

Возвращает:
объект 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. Имена otherName также возвращаются в виде массивов байтов, содержащих имя в кодировке 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, 2025, 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.
https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/security/cert/X509Certificate.html

Spec-Zone.ru

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