Spec-Zone.ru › OpenJDK 21

Класс X509CertSelector

java.lang.Object
java.security.cert.X509CertSelector
Все реализованные интерфейсы:
Cloneable, CertSelector
public class X509CertSelector extends Object implements CertSelector
Класс, CertSelector для выбора X509Certificates, которые соответствуют всем указанным критериям. Этот класс особенно полезен при выборе сертификатов из CertStore, чтобы построить совместимый с PKIX путь сертификации.

При первом создании у объекта класса X509CertSelector нет включенных критериев, и каждый из методов get возвращает значение по умолчанию (null, или -1 для метода getBasicConstraints). Поэтому метод match вернёт true для любого X509Certificate. Обычно несколько критериев включаются (например, вызовом setIssuer(X500Principal) или setKeyUsage), а затем объект X509CertSelector передаётся в метод CertStore.getCertificates или в какой-либо аналогичный метод.

Несколько критериев могут быть включены (например, вызовом setIssuer(X500Principal) и setSerialNumber), поэтому метод match обычно уникально соответствует одному X509Certificate. Мы говорим «обычно», так как возможно, что у двух выпустивших центров сертификации одинаковое полное имя и каждый выпустил сертификат с одинаковым номером. Другие уникальные комбинации включают критерий эмитента, субъекта, идентификатора открытого ключа субъекта и/или открытого ключа субъекта.

Обратитесь к документу RFC 5280: Internet X.509 Public Key Infrastructure Certificate and CRL Profile для определений расширений сертификата X.509, упомянутых ниже.

Доступность из нескольких потоков

Если не указано иное, методы, определённые в этом классе, не потокобезопасны. Несколько потоков, которым требуется одновременный доступ к одному объекту, должны синхронизироваться между собой и обеспечить необходимое блокирование. Несколько потоков, каждый из которых манипулирует отдельными объектами, синхронизироваться не должны.

С тех пор:
1.4
См. также:
  • CertSelector
  • X509Certificate

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

Конструктор Описание
X509CertSelector()
Создаёт X509CertSelector.

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

Модификатор и тип Метод Описание
void addPathToName(int type, byte[] name)
Добавляет имя в критерий pathToNames.
void addPathToName(int type, String name)
Добавляет имя в критерий pathToNames.
void addSubjectAlternativeName(int type, byte[] name)
Добавляет имя в критерий subjectAlternativeNames.
void addSubjectAlternativeName(int type, String name)
Добавляет имя в критерий subjectAlternativeNames.
Object clone()
Возвращает копию этого объекта.
byte[] getAuthorityKeyIdentifier()
Возвращает критерий authorityKeyIdentifier.
int getBasicConstraints()
Возвращает ограничение basic constraints.
X509Certificate getCertificate()
Возвращает критерий certificateEquals.
Date getCertificateValid()
Возвращает критерий certificateValid.
Set<String> getExtendedKeyUsage()
Возвращает критерий extendedKeyUsage.
X500Principal getIssuer()
Возвращает критерий issuer в виде X500Principal.
byte[] getIssuerAsBytes()
Возвращает критерий issuer в виде массива байтов.
String getIssuerAsString()
Устаревший метод.
Используйте getIssuer() или getIssuerAsBytes() вместо него.
boolean[] getKeyUsage()
Возвращает критерий keyUsage.
boolean getMatchAllSubjectAltNames()
Указывает, должен ли X509Certificate содержать все или хотя бы одно из subjectAlternativeNames, указанных в методах setSubjectAlternativeNames или addSubjectAlternativeName.
byte[] getNameConstraints()
Возвращает критерий name constraints.
Collection<List<?>> getPathToNames()
Возвращает копию критерия pathToNames.
Set<String> getPolicy()
Возвращает критерий policy.
Date getPrivateKeyValid()
Возвращает критерий privateKeyValid.
BigInteger getSerialNumber()
Возвращает критерий serialNumber.
X500Principal getSubject()
Возвращает критерий subject в виде X500Principal.
Collection<List<?>> getSubjectAlternativeNames()
Возвращает копию критерия subjectAlternativeNames.
byte[] getSubjectAsBytes()
Возвращает критерий subject в виде массива байтов.
String getSubjectAsString()
Устаревший метод.
Используйте getSubject() или getSubjectAsBytes() вместо него.
byte[] getSubjectKeyIdentifier()
Возвращает критерий subjectKeyIdentifier.
PublicKey getSubjectPublicKey()
Возвращает критерий subjectPublicKey.
String getSubjectPublicKeyAlgID()
Возвращает критерий subjectPublicKeyAlgID.
boolean match(Certificate cert)
Определяет, должен ли Certificate быть выбран.
void setAuthorityKeyIdentifier(byte[] authorityKeyID)
Устанавливает критерий authorityKeyIdentifier.
void setBasicConstraints(int minMaxPathLen)
Устанавливает ограничение basic constraints.
void setCertificate(X509Certificate cert)
Устанавливает критерий certificateEquals.
void setCertificateValid(Date certValid)
Устанавливает критерий certificateValid.
void setExtendedKeyUsage(Set<String> keyPurposeSet)
Устанавливает критерий extendedKeyUsage.
void setIssuer(byte[] issuerDN)
Устанавливает критерий issuer.
void setIssuer(String issuerDN)
Устаревший метод.
Используйте setIssuer(X500Principal) или setIssuer(byte[]) вместо него.
void setIssuer(X500Principal issuer)
Устанавливает критерий issuer.
void setKeyUsage(boolean[] keyUsage)
Устанавливает критерий keyUsage.
void setMatchAllSubjectAltNames(boolean matchAllNames)
Включает/выключает соответствие всем subjectAlternativeNames, указанным в методах setSubjectAlternativeNames или addSubjectAlternativeName.
void setNameConstraints(byte[] bytes)
Устанавливает критерий name constraints.
void setPathToNames(Collection<List<?>> names)
Устанавливает критерий pathToNames.
void setPolicy(Set<String> certPolicySet)
Устанавливает ограничение policy constraint.
void setPrivateKeyValid(Date privateKeyValid)
Устанавливает критерий privateKeyValid.
void setSerialNumber(BigInteger serial)
Устанавливает критерий serialNumber.
void setSubject(byte[] subjectDN)
Устанавливает критерий subject.
void setSubject(String subjectDN)
Устаревший метод.
Используйте setSubject(X500Principal) или setSubject(byte[]) вместо него.
void setSubject(X500Principal subject)
Устанавливает критерий subject.
void setSubjectAlternativeNames(Collection<List<?>> names)
Устанавливает критерий subjectAlternativeNames.
void setSubjectKeyIdentifier(byte[] subjectKeyID)
Устанавливает критерий subjectKeyIdentifier.
void setSubjectPublicKey(byte[] key)
Устанавливает критерий subjectPublicKey.
void setSubjectPublicKey(PublicKey key)
Устанавливает критерий subjectPublicKey.
void setSubjectPublicKeyAlgID(String oid)
Устанавливает критерий subjectPublicKeyAlgID.
String toString()
Возвращает удобочитаемое представление CertSelector.

Методы, унаследованные от класса java.lang.Object

equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait

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

X509CertSelector

public X509CertSelector()
Создаёт X509CertSelector. Изначально критерии не заданы, поэтому любой X509Certificate будет соответствовать.

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

setCertificate

public void setCertificate(X509Certificate cert)
Устанавливает критерий certificateEquals. Указанный X509Certificate должен быть равен X509Certificate , переданному в метод match. Если null, то эта проверка не применяется.

Этот метод особенно полезен, когда необходимо сопоставить один сертификат. Хотя другие критерии могут быть указаны совместно с критерием certificateEquals, это обычно непрактично или не требуется.

Параметры:
cert - совпадающий X509Certificate (или null)
См. также:
  • getCertificate()

setSerialNumber

public void setSerialNumber(BigInteger serial)
Устанавливает критерий serialNumber. Указанный серийный номер должен соответствовать серийному номеру сертификата в X509Certificate. Если null, то подойдет любой серийный номер сертификата.
Параметры:
serial - серийный номер сертификата для сопоставления (или null)
См. также:
  • getSerialNumber()

setIssuer

public void setIssuer(X500Principal issuer)
Устанавливает критерий issuer. Указанное имя должен совпадать с именем издателя в X509Certificate. Если null, подойдет любое имя издателя.
Параметры:
issuer - имя как X500Principal (или null)
C тех пор:
1.5

setIssuer

@Deprecated(since="16") public void setIssuer(String issuerDN) throws IOException
Устарело.
Используйте setIssuer(X500Principal) или setIssuer(byte[]) вместо этого. На этот метод не стоит полагаться, так как он может не сопоставить некоторые сертификаты из-за потери кодирования информации в формате строки RFC 2253 некоторых имен.
Устанавливает критерий issuer. Указанное имя должно совпадать с именем издателя в X509Certificate. Если null, подойдет любое имя издателя.

Если issuerDN не null, оно должно содержать имя, в формате RFC 2253.

Параметры:
issuerDN - имя в формате RFC 2253 (или null)
Исключения:
IOException - если произошла ошибка парсинга (неверный формат DN)

setIssuer

public void setIssuer(byte[] issuerDN) throws IOException
Устанавливает критерий issuer. Указанное имя должно совпадать с именем издателя в X509Certificate. Если null указано, то критерий издателя отключен, и подойдет любое имя издателя.

Если issuerDN не null, оно должно содержать одно кодированное в DER имя, как определено в X.501. ASN.1 обозначение этой структуры:


 Name ::= CHOICE {
   RDNSequence }

 RDNSequence ::= SEQUENCE OF RelativeDistinguishedName

 RelativeDistinguishedName ::=
   SET SIZE (1 .. MAX) OF AttributeTypeAndValue

 AttributeTypeAndValue ::= SEQUENCE {
   type     AttributeType,
   value    AttributeValue }

 AttributeType ::= OBJECT IDENTIFIER

 AttributeValue ::= ANY DEFINED BY AttributeType
 ....
 DirectoryString ::= CHOICE {
       teletexString           TeletexString (SIZE (1..MAX)),
       printableString         PrintableString (SIZE (1..MAX)),
       universalString         UniversalString (SIZE (1..MAX)),
       utf8String              UTF8String (SIZE (1.. MAX)),
       bmpString               BMPString (SIZE (1..MAX)) }
 

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

Параметры:
issuerDN - массив байтов, содержащий имя в ASN.1 DER кодировке (или null)
Исключения:
IOException - если произошла ошибка кодирования (неверный формат DN)

setSubject

public void setSubject(X500Principal subject)
Устанавливает критерий subject. Указанное имя должно совпадать с именем субъекта в X509Certificate. Если null, подойдет любое имя субъекта.
Параметры:
subject - имя как X500Principal (или null)
C тех пор:
1.5

setSubject

@Deprecated(since="16") public void setSubject(String subjectDN) throws IOException
Устарело.
Используйте setSubject(X500Principal) или setSubject(byte[]) вместо этого. На этот метод не стоит полагаться, так как он может не сопоставить некоторые сертификаты из-за потери кодирования информации в формате строки RFC 2253 некоторых имён.
Устанавливает критерий subject. Указанное имя должно совпадать с именем субъекта в X509Certificate. Если null, подойдет любое имя субъекта.

Если subjectDN не null, оно должно содержать имя, в формате RFC 2253.

Параметры:
subjectDN - имя в формате RFC 2253 (или null)
Исключения:
IOException - если произошла ошибка парсинга (неверный формат DN)

setSubject

public void setSubject(byte[] subjectDN) throws IOException
Устанавливает критерий subject. Указанное имя должно совпадать с именем субъекта в X509Certificate. Если null, подойдет любое имя субъекта.

Если subjectDN не null, оно должно содержать одно DER-кодированное имя, как определено в X.501. Для ASN.1 обозначения этой структуры, см. setIssuer(byte[]).

Параметры:
subjectDN - массив байтов, содержащий имя в ASN.1 DER формате (или null)
Исключения:
IOException - если произошла ошибка кодирования (неверный формат DN)

setSubjectKeyIdentifier

public void setSubjectKeyIdentifier(byte[] subjectKeyID)
Устанавливает критерий subjectKeyIdentifier. X509Certificate должен содержать расширение SubjectKeyIdentifier, содержимое которого совпадает с указанным значением критерия. Если значение критерия null, проверка subjectKeyIdentifier не будет выполнена.

Если subjectKeyID не null, оно должно содержать одно DER-кодированное значение, соответствующее содержимому значения расширения (без учёта идентификатора объекта, битовой установки критичности и обертывающей OCTET STRING) для расширения SubjectKeyIdentifier. ASN.1 обозначение этой структуры:


 SubjectKeyIdentifier ::= KeyIdentifier

 KeyIdentifier ::= OCTET STRING
 

Поскольку формат идентификаторов ключей субъекта не регламентирован ни одним стандартом, идентификаторы ключей субъекта не анализируются X509CertSelector. Вместо этого значения сравниваются побайтово.

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

Параметры:
subjectKeyID - идентификатор ключа субъекта (или null)
См. также:
  • getSubjectKeyIdentifier()

setAuthorityKeyIdentifier

public void setAuthorityKeyIdentifier(byte[] authorityKeyID)
Устанавливает критерий authorityKeyIdentifier. X509Certificate должен содержать расширение AuthorityKeyIdentifier, содержимое которого совпадает с указанным значением критерия. Если значение критерия null, проверка authorityKeyIdentifier не будет выполнена.

Если authorityKeyID не null, оно должно содержать одно DER-кодированное значение, соответствующее содержимому значения расширения (без учёта идентификатора объекта, битовой установки критичности и обертывающей OCTET STRING) для расширения AuthorityKeyIdentifier. ASN.1 обозначение этой структуры:


 AuthorityKeyIdentifier ::= SEQUENCE {
    keyIdentifier             [0] KeyIdentifier           OPTIONAL,
    authorityCertIssuer       [1] GeneralNames            OPTIONAL,
    authorityCertSerialNumber [2] CertificateSerialNumber OPTIONAL  }

 KeyIdentifier ::= OCTET STRING
 

Идентификаторы ключей авторитета не анализируются X509CertSelector. Вместо этого значения сравниваются побайтово.

Когда поле keyIdentifier в AuthorityKeyIdentifier заполнено, значение обычно берется из расширения SubjectKeyIdentifier в сертификате издателя. Обратите внимание, однако, что результат X509Certificate.getExtensionValue(<SubjectKeyIdentifier Object Identifier>) для сертификата издателя НЕ может быть использован непосредственно в качестве входных данных для setAuthorityKeyIdentifier. Это связано с тем, что SubjectKeyIdentifier содержит только KeyIdentifier OCTET STRING, а не SEQUENCE из KeyIdentifier, GeneralNames и CertificateSerialNumber. Для использования значения расширения сертификата издателя в расширении SubjectKeyIdentifier потребуется извлечь значение вложенного KeyIdentifier OCTET STRING, затем DER-кодировать этот OCTET STRING внутри SEQUENCE. Для более подробной информации о SubjectKeyIdentifier, см. setSubjectKeyIdentifier(byte[] subjectKeyID).

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

Параметры:
authorityKeyID - идентификатор ключа авторитета (или null)
См. также:
  • getAuthorityKeyIdentifier()

УстановитьДействительностьСертификата

public void setCertificateValid(Date certValid)
Устанавливает критерий certificateValid. Указанная дата должна находиться в пределах срока действия сертификата для X509Certificate. Если null, проверка certificateValid не будет выполнена.

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

Параметры:
certValid - проверяемая Date (или null)
См. также:
  • getCertificateValid()

УстановитьДействительностьЗакрытогоКлюча

public void setPrivateKeyValid(Date privateKeyValid)
Устанавливает критерий privateKeyValid. Указанная дата должна находиться в пределах срока действия закрытого ключа для X509Certificate. Если null, проверка privateKeyValid не будет выполнена.

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

Параметры:
privateKeyValid - проверяемый Date (или null)
См. также:
  • getPrivateKeyValid()

УстановитьИдентификаторАлгоритмаОткрытогоКлючаСубъекта

public void setSubjectPublicKeyAlgID(String oid) throws IOException
Устанавливает критерий subjectPublicKeyAlgID. X509Certificate должен содержать открытый ключ субъекта с указанным алгоритмом. Если null, проверка subjectPublicKeyAlgID не будет выполнена.
Параметры:
oid - идентификатор объекта (OID) алгоритма для проверки (или null). OID представлен набором неотрицательных целых чисел, разделенных точками.
Исключения:
IOException - если OID недействителен, например, первая составляющая не равна 0, 1 или 2, или вторая составляющая больше 39.
См. также:
  • getSubjectPublicKeyAlgID()

УстановитьОткрытыйКлючСубъекта

public void setSubjectPublicKey(PublicKey key)
Устанавливает критерий subjectPublicKey. X509Certificate должен содержать указанный открытый ключ субъекта. Если null, проверка subjectPublicKey не будет выполнена.
Параметры:
key - проверяемый открытый ключ субъекта (или null)
См. также:
  • getSubjectPublicKey()

УстановитьОткрытыйКлючСубъекта

public void setSubjectPublicKey(byte[] key) throws IOException
Устанавливает критерий subjectPublicKey. X509Certificate должен содержать указанный открытый ключ субъекта. Если null, проверка subjectPublicKey не будет выполнена.

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

Если key не null, он должен содержать одну закодированную в DER структуру SubjectPublicKeyInfo, как определено в X.509. ASN.1 обозначение этой структуры таково.


 SubjectPublicKeyInfo  ::=  SEQUENCE  {
   algorithm            AlgorithmIdentifier,
   subjectPublicKey     BIT STRING  }

 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
 

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

Параметры:
key - массив байтов, содержащий открытый ключ субъекта в формате ASN.1 DER (или null)
Исключения:
IOException - если произошла ошибка кодирования (неправильная форма для открытого ключа субъекта)
См. также:
  • getSubjectPublicKey()

УстановитьИспользованиеКлюча

public void setKeyUsage(boolean[] keyUsage)
Устанавливает критерий keyUsage. X509Certificate должен допускать указанные значения keyUsage. Если null, проверка keyUsage не будет выполнена. Обратите внимание, что X509Certificate без расширения keyUsage неявно разрешает все значения keyUsage.

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

Параметры:
keyUsage - массив boolean в том же формате, что и массив boolean, возвращаемый X509Certificate.getKeyUsage(). Или null.
См. также:
  • getKeyUsage()

УстановитьРасширенноеИспользованиеКлюча

public void setExtendedKeyUsage(Set<String> keyPurposeSet) throws IOException
Устанавливает критерий extendedKeyUsage. X509Certificate должен разрешать указанные цели использования ключа в его расширении extended key usage. Если keyPurposeSet пусто или null, проверка extendedKeyUsage не будет выполнена. Обратите внимание, что X509Certificate без расширения extendedKeyUsage неявно разрешает все цели использования ключа.

Обратите внимание, что Set клонируется для защиты от последующих изменений.

Параметры:
keyPurposeSet - набор OID целей использования ключа в строковом формате (или null). Каждый OID представлен набором неотрицательных целых чисел, разделенных точками.
Исключения:
IOException - если OID недействителен, например, первая составляющая не равна 0, 1 или 2, или вторая составляющая больше 39.
См. также:
  • getExtendedKeyUsage()

УстановитьСовпадениеВсехSubjectAlternativeNames

public void setMatchAllSubjectAltNames(boolean matchAllNames)
Включает/выключает соответствие всем subjectAlternativeNames, указанным в методах setSubjectAlternativeNames или addSubjectAlternativeName. При включении X509Certificate должен содержать все указанные альтернативные имена субъекта. При отключении X509Certificate должен содержать по крайней мере одно из указанных альтернативных имен субъекта.

Флаг matchAllNames по умолчанию true.

Параметры:
matchAllNames - если true, флаг включен; если false, флаг выключен.
См. также:
  • getMatchAllSubjectAltNames()

УстановитьSubjectAlternativeNames

public void setSubjectAlternativeNames(Collection<List<?>> names) throws IOException
Устанавливает критерий subjectAlternativeNames. X509Certificate должен содержать все или хотя бы одно из указанных subjectAlternativeNames, в зависимости от значения флага matchAllNames (см. setMatchAllSubjectAltNames).

Этот метод позволяет вызывающему коду указать весь набор альтернативных имен субъекта для критерия subjectAlternativeNames за один вызов. Указанное значение заменяет предыдущее значение для критерия subjectAlternativeNames.

Параметр names (если не null) является Collection с одной записью для каждого имени, которое должно быть включено в критерий альтернативных имен субъекта. Каждая запись — это List, в которой первая запись — это Integer (тип имени, 0-8), а вторая запись — это String или массив байтов (само имя в строковом или кодированном в ASN.1 DER формате соответственно). Может быть несколько имен одного типа. Если null предоставлено как значение для этого аргумента, проверка subjectAlternativeNames не будет выполнена.

Каждое альтернативное имя субъекта в Collection может быть указано либо как String, либо как массив байтов в кодировке ASN.1. Подробнее о используемых форматах см. addSubjectAlternativeName(int type, String name) и addSubjectAlternativeName(int type, byte [] name).

Примечание: для отличительных имен укажите форму массива байтов, а не строковую. См. примечание в addSubjectAlternativeName(int, String) для получения дополнительной информации.

Обратите внимание, что параметр names может содержать дублируемые имена (одно имя и тип имени), но они могут быть удалены из Collection имен, возвращаемых методом getSubjectAlternativeNames.

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

Параметры:
names - набор имен (или null)
Исключения:
IOException - если произошла ошибка разбора
См. также:
  • getSubjectAlternativeNames()

addSubjectAlternativeName

public void addSubjectAlternativeName(int type, String name) throws IOException
Добавляет имя в критерий subjectAlternativeNames. Критерий X509Certificate должен содержать все или хотя бы одно из указанных subjectAlternativeNames, в зависимости от значения флага matchAllNames (см. setMatchAllSubjectAltNames).

Этот метод позволяет вызывающей стороне добавить имя в множество альтернативных имён субъекта. Указанное имя добавляется к любому предыдущему значению для критерия subjectAlternativeNames. Если указанное имя является дубликатом, оно может быть проигнорировано.

Имя предоставляется в строковом формате. Имена RFC 822, DNS и URI используют общепринятые строковые форматы для этих типов (с учётом ограничений, указанных в RFC 5280). Имена адресов IPv4 предоставляются в формате с точками. Имена адресов OID представляются в виде последовательности неотрицательных целых чисел, разделённых точками. Имена каталога (различительные имена) предоставляются в формате RFC 2253. Для других имён, имён X.400, имён сторон EDI, имён адресов IPv6 или любых других типов имён не определён стандартный строковый формат. Они должны быть указаны с помощью метода addSubjectAlternativeName(int type, byte [] name).

Примечание: для различительных имён используйте addSubjectAlternativeName(int, byte[]) вместо этого. На этот метод не следует полагаться, так как он может не соответствовать некоторым сертификатам из-за потери информации об кодировании в строковой форме RFC 2253 некоторых различительных имён.

Parameters:
type - тип имени (0-8, как указано в RFC 5280, раздел 4.2.1.6)
name - имя в строковом формате (не null)
Throws:
IOException - если произошла ошибка парсинга

addSubjectAlternativeName

public void addSubjectAlternativeName(int type, byte[] name) throws IOException
Добавляет имя в критерий subjectAlternativeNames. Критерий X509Certificate должен содержать все или хотя бы одно из указанных subjectAlternativeNames, в зависимости от значения флага matchAllNames (см. setMatchAllSubjectAltNames).

Этот метод позволяет вызывающей стороне добавить имя в множество альтернативных имён субъекта. Указанное имя добавляется к любому предыдущему значению для критерия subjectAlternativeNames. Если указанное имя является дубликатом, оно может быть проигнорировано.

Имя предоставляется как массив байтов. Этот массив байтов должен содержать закодированное с помощью DER имя, как оно отображается в структуре GeneralName, определённой в RFC 5280 и X.509. Кодированный массив байтов должен содержать только закодированное значение имени и не должен включать метку, связанную с именем в структуре GeneralName. Определение ASN.1 этой структуры приведено ниже.


  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}
 

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

Parameters:
type - тип имени (0-8, перечислены выше)
name - массив байтов, содержащий имя в ASN.1 DER закодированной форме
Throws:
IOException - если произошла ошибка парсинга

setNameConstraints

public void setNameConstraints(byte[] bytes) throws IOException
Устанавливает критерий ограничений имён. Критерий X509Certificate должен иметь субъект и альтернативные имена субъекта, которые соответствуют указанным ограничениям имён.

Ограничения имён задаются как массив байтов. Этот массив байтов должен содержать DER закодированную форму ограничений имён, как они отображаются в структуре NameConstraints, определённой в RFC 5280 и X.509. Определение ASN.1 этой структуры приведено ниже.


  NameConstraints ::= SEQUENCE {
       permittedSubtrees       [0]     GeneralSubtrees OPTIONAL,
       excludedSubtrees        [1]     GeneralSubtrees OPTIONAL }

  GeneralSubtrees ::= SEQUENCE SIZE (1..MAX) OF GeneralSubtree

  GeneralSubtree ::= SEQUENCE {
       base                    GeneralName,
       minimum         [0]     BaseDistance DEFAULT 0,
       maximum         [1]     BaseDistance OPTIONAL }

  BaseDistance ::= INTEGER (0..MAX)

  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}
 

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

Parameters:
bytes - массив байтов, содержащий ASN.1 DER кодирование расширения NameConstraints для проверки ограничений имён. Включается только значение расширения, а не OID или флаг критичности. Может быть null, в этом случае проверка ограничений имён не будет выполняться.
Throws:
IOException - если произошла ошибка парсинга
See Also:
  • getNameConstraints()

setBasicConstraints

public void setBasicConstraints(int minMaxPathLen)
Устанавливает ограничение базовых ограничений. Если значение больше или равно нулю, X509Certificates должно включать расширение basicConstraints с pathLen, по меньшей мере, равным этому значению. Если значение равно -2, принимаются только сертификаты конечных сущностей. Если значение равно -1, проверка не выполняется.

Это ограничение полезно при построении сертификационного пути вперёд (от цели к якорю доверия). Если частичный путь был построен, любой кандидатский сертификат должен иметь значение maxPathLen, большее или равное числу сертификатов в частичном пути.

Parameters:
minMaxPathLen - значение ограничения базовых ограничений
Throws:
IllegalArgumentException - если значение меньше -2
See Also:
  • getBasicConstraints()

setPolicy

public void setPolicy(Set<String> certPolicySet) throws IOException
Устанавливает ограничение политики. X509Certificate должен содержать как минимум одну из указанных политик в расширении certificate policies. Если certPolicySet пусто, то X509Certificate должен содержать как минимум одну указанную политику в расширении certificate policies. Если certPolicySet является null, проверка политики не будет выполнена.

Обратите внимание, что Set клонируется для защиты от последующих изменений.

Parameters:
certPolicySet - множество OID сертификационной политики в строковом формате (или null). Каждый OID представлен набором неотрицательных целых чисел, разделённых точками.
Throws:
IOException - если произошла ошибка парсинга OID, например, первый компонент не равен 0, 1 или 2, или второй компонент больше 39.
See Also:
  • getPolicy()

setPathToNames

public void setPathToNames(Collection<List<?>> names) throws IOException
Устанавливает критерий pathToNames. X509Certificate не должен включать ограничения имён, которые бы запретили построение пути к указанным именам.

Этот метод позволяет вызывающей стороне указать полное множество имён, которые ограничения имён X509Certificates должны допускать. Указанное значение заменяет предыдущее значение для критерия pathToNames.

Это ограничение полезно при построении сертификационного пути вперёд (от цели к якорю доверия). Если частичный путь был построен, любой кандидатский сертификат не должен включать ограничения имён, которые запрещали бы построение пути к любому из имён в частичном пути.

Параметр names (если не null) — коллекция с одним элементом для каждого имени, которое должно быть включено в критерий pathToNames. Каждый элемент — пара, содержащая Integer (тип имени, 0-8) и String или массив байтов (имя в строковом или ASN.1 DER закодированном формате соответственно). Может быть несколько имён одного типа. Если null используется в качестве значения для этого аргумента, проверка pathToNames не будет выполняться.

Каждое имя в Collection может быть указано либо как строка, либо как ASN.1 закодированный массив байтов. Более подробная информация о используемых форматах см. в addPathToName(int type, String name) и addPathToName(int type, byte [] name).

Примечание: для различительных имён используйте массив байтов вместо строкового формата. См. примечание в addPathToName(int, String) для получения дополнительной информации.

Параметр names может содержать дублирующиеся имена (одинаковое имя и тип имени), но они могут быть удалены из множества имён, возвращаемых методом getPathToNames.

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

Parameters:
names - коллекция с одним элементом на имя (или null)
Throws:
IOException - если произошла ошибка парсинга
See Also:
  • getPathToNames()

addPathToName

public void addPathToName(int type, String name) throws IOException
Добавляет имя в критерий pathToNames. X509Certificate не должно включать ограничения имён, которые бы запретили построение пути к указанному имени.

Этот метод позволяет вызывающей стороне добавить имя в множество имён, которые ограничения имён X509Certificates должны допускать. Указанное имя добавляется к любому предыдущему значению для критерия pathToNames. Если имя является дубликатом, оно может быть проигнорировано.

Имя предоставляется в строковом формате. Имена RFC 822, DNS и URI используют общепринятые строковые форматы для этих типов (с учётом ограничений, указанных в RFC 5280). Имена адресов IPv4 предоставляются в формате с точками. Имена адресов OID представляются в виде последовательности неотрицательных целых чисел, разделённых точками. Имена каталога (различительные имена) предоставляются в формате RFC 2253. Для других имён, имён X.400, имён сторон EDI, имён адресов IPv6 или любых других типов имён не определён стандартный строковый формат. Они должны быть указаны с помощью метода addPathToName(int type, byte [] name).

Примечание: для различительных имён используйте addPathToName(int, byte[]) вместо этого. На этот метод не следует полагаться, так как он может не соответствовать некоторым сертификатам из-за потери информации об кодировании в строковой форме RFC 2253 некоторых различительных имён.

Parameters:
type - тип имени (0-8, как указано в RFC 5280, раздел 4.2.1.6)
name - имя в строковом формате
Throws:
IOException - если произошла ошибка парсинга
END_OF_DOCUMENT_MARKER

addPathToName

public void addPathToName(int type, byte[] name) throws IOException
Добавляет имя в критерий pathToNames. Имя X509Certificate не должно включать ограничений, которые препятствуют созданию пути к указанному имени.

Этот метод позволяет вызывающей стороне добавить имя в множество имён, которые ограничения на имя X509Certificates должны разрешать. Указанное имя добавляется к любому предыдущему значению для критерия pathToNames. Если имя является дубликатом, оно может быть проигнорировано.

Имя предоставляется в виде массива байтов. Этот массив байтов должен содержать закодированное в DER имя, как оно появляется в структуре GeneralName, определённой в RFC 5280 и X.509. Определение ASN.1 этой структуры приведено в документации для addSubjectAlternativeName(int type, byte [] name).

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

Parameters:
type - тип имени (0-8, как указано в RFC 5280, раздел 4.2.1.6)
name - массив байтов, содержащий имя в ASN.1 DER-кодированном формате
Throws:
IOException - если произошла ошибка разбора

getCertificate

public X509Certificate getCertificate()
Возвращает критерий certificateEquals. Указанное X509Certificate должно быть равно X509Certificate , переданному методу match. Если null, эта проверка не применяется.
Returns:
требуемое X509Certificate для соответствия (или null)
See Also:
  • setCertificate(java.security.cert.X509Certificate)

getSerialNumber

public BigInteger getSerialNumber()
Возвращает критерий serialNumber. Указанный номер сертификата должен совпадать с номером сертификата в X509Certificate. Если null, любой номер сертификата подойдёт.
Returns:
номер сертификата для соответствия (или null)
See Also:
  • setSerialNumber(java.math.BigInteger)

getIssuer

public X500Principal getIssuer()
Возвращает критерий издателя в виде X500Principal. Это имя каталога должно соответствовать имени каталога издателя в X509Certificate. Если null, критерий издателя отключён и любое имя каталога издателя подойдёт.
Returns:
требуемое имя каталога издателя в виде X500Principal (или null)
Since:
1.5

getIssuerAsString

@Deprecated(since="16") public String getIssuerAsString()
Устарело.
Используйте getIssuer() или getIssuerAsBytes() вместо этого. На этот метод нельзя полагаться, так как он может не соответствовать некоторым сертификатам из-за потери информации об кодировании в формате RFC 2253 строки некоторых имён каталогов.
Возвращает критерий издателя как String. Это имя каталога должно соответствовать имени каталога издателя в X509Certificate. Если null, критерий издателя отключён и любое имя каталога издателя подойдёт.

Если возвращаемое значение не null, это имя каталога в формате RFC 2253.

Returns:
требуемое имя каталога издателя в формате RFC 2253 (или null)

getIssuerAsBytes

public byte[] getIssuerAsBytes() throws IOException
Возвращает критерий издателя как массив байтов. Это имя каталога должно соответствовать имени каталога издателя в X509Certificate. Если null, критерий издателя отключён и любое имя каталога издателя подойдёт.

Если возвращаемое значение не null, это массив байтов, содержащий одно закодированное в DER имя каталога, как определено в X.501. Нотация ASN.1 этой структуры приведена в документации для setIssuer(byte[]).

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

Returns:
массив байтов, содержащий требуемое имя каталога издателя в формате ASN.1 DER (или null)
Throws:
IOException - если произошла ошибка кодирования

getSubject

public X500Principal getSubject()
Возвращает критерий субъекта как X500Principal. Это имя каталога должно соответствовать имени каталога субъекта в X509Certificate. Если null, критерий субъекта отключён и любое имя каталога субъекта подойдёт.
Returns:
требуемое имя каталога субъекта в виде X500Principal (или null)
Since:
1.5

getSubjectAsString

@Deprecated(since="16") public String getSubjectAsString()
Устарело.
Используйте getSubject() или getSubjectAsBytes() вместо этого. На этот метод нельзя полагаться, так как он может не соответствовать некоторым сертификатам из-за потери информации об кодировании в формате RFC 2253 строки некоторых имён каталогов.
Возвращает критерий субъекта как String. Это имя каталога должно соответствовать имени каталога субъекта в X509Certificate. Если null, критерий субъекта отключён и любое имя каталога субъекта подойдёт.

Если возвращаемое значение не null, это имя каталога в формате RFC 2253.

Returns:
требуемое имя каталога субъекта в формате RFC 2253 (или null)

getSubjectAsBytes

public byte[] getSubjectAsBytes() throws IOException
Возвращает критерий субъекта как массив байтов. Это имя каталога должно соответствовать имени каталога субъекта в X509Certificate. Если null, критерий субъекта отключён и любое имя каталога субъекта подойдёт.

Если возвращаемое значение не null, это массив байтов, содержащий одно закодированное в DER имя каталога, как определено в X.501. Нотация ASN.1 этой структуры приведена в документации для setSubject(byte[]).

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

Returns:
массив байтов, содержащий требуемое имя каталога субъекта в формате ASN.1 DER (или null)
Throws:
IOException - если произошла ошибка кодирования

getSubjectKeyIdentifier

public byte[] getSubjectKeyIdentifier()
Возвращает критерий subjectKeyIdentifier. X509Certificate должен содержать расширение SubjectKeyIdentifier со значением. Если null, проверка subjectKeyIdentifier не будет выполнена.

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

Returns:
идентификатор ключа (или null)
See Also:
  • setSubjectKeyIdentifier(byte[])

getAuthorityKeyIdentifier

public byte[] getAuthorityKeyIdentifier()
Возвращает критерий authorityKeyIdentifier. X509Certificate должен содержать расширение AuthorityKeyIdentifier со значением. Если null, проверка authorityKeyIdentifier не будет выполнена.

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

Returns:
идентификатор ключа (или null)
See Also:
  • setAuthorityKeyIdentifier(byte[])

getCertificateValid

public Date getCertificateValid()
Возвращает критерий certificateValid. Указанная дата должна попадать в период действия сертификата для X509Certificate. Если null, проверка certificateValid не будет выполнена.

Обратите внимание, что возвращаемая Date дата клонируется для защиты от последующих изменений.

Returns:
требуемую Date дату (или null)
See Also:
  • setCertificateValid(java.util.Date)

getPrivateKeyValid

public Date getPrivateKeyValid()
Возвращает критерий privateKeyValid. Указанная дата должна попадать в период действия закрытого ключа для X509Certificate. Если null, проверка privateKeyValid не будет выполнена.

Обратите внимание, что возвращаемая Date дата клонируется для защиты от последующих изменений.

Returns:
требуемую Date дату (или null)
See Also:
  • setPrivateKeyValid(java.util.Date)

getSubjectPublicKeyAlgID

public String getSubjectPublicKeyAlgID()
Возвращает критерий subjectPublicKeyAlgID. X509Certificate должен содержать открытый ключ субъекта с указанным алгоритмом. Если null, проверка subjectPublicKeyAlgID не будет выполнена.
Returns:
идентификатор объекта (OID) алгоритма подписи для проверки (или null). OID представлен набором неотрицательных целых чисел, разделённых точками.
See Also:
  • setSubjectPublicKeyAlgID(java.lang.String)

getSubjectPublicKey

public PublicKey getSubjectPublicKey()
Возвращает критерий subjectPublicKey. Критерий X509Certificate должен содержать указанный открытый ключ субъекта. Если null, проверка subjectPublicKey не будет выполнена.
Возвращает:
открытый ключ субъекта для проверки (или null)
См. также:
  • setSubjectPublicKey(java.security.PublicKey)

getKeyUsage

public boolean[] getKeyUsage()
Возвращает критерий keyUsage. Критерий X509Certificate должен допускать указанные значения keyUsage. Если null, проверка keyUsage не будет выполнена.

Обратите внимание, что возвращаемый массив boolean клонируется для защиты от последующих изменений.

Возвращает:
массив boolean в том же формате, что и возвращаемый массив boolean методом X509Certificate.getKeyUsage(). Или null.
См. также:
  • setKeyUsage(boolean[])

getExtendedKeyUsage

public Set<String> getExtendedKeyUsage()
Возвращает критерий extendedKeyUsage. Критерий X509Certificate должен допускать указанные цели ключа в расширении extended key usage. Если возвращаемое keyPurposeSet пустое или null, проверка extendedKeyUsage не будет выполнена. Обратите внимание, что сертификат X509Certificate, у которого отсутствует расширение extendedKeyUsage, подразумевает разрешение всех целей ключа.
Возвращает:
неизменяемый Set идентификаторов целей ключа в строковом формате (или null)
См. также:
  • setExtendedKeyUsage(java.util.Set<java.lang.String>)

getMatchAllSubjectAltNames

public boolean getMatchAllSubjectAltNames()
Указывает, должен ли X509Certificate содержать все или хотя бы один из указанных в методах setSubjectAlternativeNames или addSubjectAlternativeName subjectAlternativeNames. Если true, X509Certificate должен содержать все указанные альтернативные имена субъекта. Если false, X509Certificate должен содержать по крайней мере одно из указанных альтернативных имен субъекта.
Возвращает:
true если флаг включен; false если флаг отключен. Флаг включен по умолчанию. true
См. также:
  • setMatchAllSubjectAltNames(boolean)

getSubjectAlternativeNames

public Collection<List<?>> getSubjectAlternativeNames()
Возвращает копию критерия subjectAlternativeNames. Критерий X509Certificate должен содержать все или хотя бы одно из указанных subjectAlternativeNames, в зависимости от значения флага matchAllNames (см. getMatchAllSubjectAltNames). Если возвращаемое значение null, проверка subjectAlternativeNames не будет выполнена.

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

Каждое альтернативное имя субъекта в Collection может быть указано как String или как закодированный в ASN.1 массив байтов. Более подробную информацию о используемых форматах см. в addSubjectAlternativeName(int type, String name) и addSubjectAlternativeName(int type, byte [] name).

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

Возвращает:
a Collection имен (или null)
См. также:
  • setSubjectAlternativeNames(java.util.Collection<java.util.List<?>>)

getNameConstraints

public byte[] getNameConstraints()
Возвращает критерий name constraints. Критерий X509Certificate должен иметь имена субъекта и альтернативные имена субъекта, которые соответствуют указанным ограничениям имен.

Ограничения имен возвращаются в виде массива байтов. Этот массив байтов содержит DER-закодированную форму ограничений имен, как они представлены в структуре NameConstraints, определенной в RFC 5280 и X.509. Нотация ASN.1 для этой структуры приводится в документации для setNameConstraints(byte [] bytes).

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

Возвращает:
массив байтов, содержащий ASN.1 DER-кодирование расширения NameConstraints, используемого для проверки ограничений имен. null если проверка ограничений имен не будет выполнена.
См. также:
  • setNameConstraints(byte[])

getBasicConstraints

public int getBasicConstraints()
Возвращает ограничение basic constraints. Если значение больше или равно нулю, X509Certificates должен включать расширение basicConstraints с pathLen по крайней мере этого значения. Если значение равно -2, принимаются только сертификаты конечных объектов. Если значение равно -1, проверка basicConstraints не выполняется.
Возвращает:
значение ограничения basic constraints
См. также:
  • setBasicConstraints(int)

getPolicy

public Set<String> getPolicy()
Возвращает критерий policy. Критерий X509Certificate должен включать по крайней мере одну из указанных политик в своем расширении политики сертификата. Если возвращаемое Set пустое, тогда X509Certificate должен включать по крайней мере какую-то указанную политику в расширении политики сертификата. Если возвращаемое Set null, проверка политики не будет выполнена.
Возвращает:
неизменяемый Set идентификаторов политики сертификата в строковом формате (или null)
См. также:
  • setPolicy(java.util.Set<java.lang.String>)

getPathToNames

public Collection<List<?>> getPathToNames()
Возвращает копию критерия pathToNames. Критерий X509Certificate не должен включать ограничения имен, которые запретили бы построение пути к указанным именам. Если возвращаемое значение null, проверка pathToNames не будет выполнена.

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

Каждое имя в Collection может быть указано как String или как закодированный в ASN.1 массив байтов. Более подробную информацию о используемых форматах см. в addPathToName(int type, String name) и addPathToName(int type, byte [] name).

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

Возвращает:
a Collection имен (или null)
См. также:
  • setPathToNames(java.util.Collection<java.util.List<?>>)

toString

public String toString()
Возвращает удобочитаемое представление CertSelector.
Переопределяет:
toString в классе Object
Возвращает:
a String описывающее содержимое CertSelector

match

public boolean match(Certificate cert)
Определяет, должен ли быть выбран Certificate.
Задано:
match в интерфейсе CertSelector
Параметры:
cert - проверяемый Certificate
Возвращает:
true если Certificate должен быть выбран, false в противном случае

clone

public Object clone()
Возвращает копию этого объекта.
Задано:
clone в интерфейсе CertSelector
Переопределяет:
clone в классе Object
Возвращает:
копию
См. также:
  • Cloneable

© 1993, 2023, 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/21/docs/api/java.base/java/security/cert/X509CertSelector.html

Spec-Zone.ru

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