Spec-Zone .ru
спецификации, руководства, описания, API
|
public class X509CertSelector extends Object implements CertSelector
CertSelector
это выбирает X509Certificates
то соответствие все указанные критерии. Этот class особенно полезен, выбирая сертификаты из a CertStore
создавать PKIX-совместимый путь сертификации. Когда сначала создано, X509CertSelector
не имеет никаких включенных критериев и каждый из get
методы возвращают значение по умолчанию (null
, или -1
для getBasicConstraints
метод). Поэтому, match
метод возвратился бы true
для любого X509Certificate
. Как правило, несколько критериев включаются (вызывая setIssuer
или setKeyUsage
, например) и затем X509CertSelector
к передают CertStore.getCertificates
или некоторый подобный метод.
Несколько критериев могут быть включены (вызывая setIssuer
и setSerialNumber
, например) так, что match
метод обычно уникально соответствует сингл X509Certificate
. Мы обычно говорим, так как для двух АВАРИЙ издания возможно иметь то же самое отличительное имя и каждую проблему сертификат с тем же самым порядковым номером. Другие уникальные комбинации включают выпускающего, предмет, subjectKeyIdentifier и/или subjectPublicKey критерии.
Пожалуйста, обратитесь к
Параллельный Доступ
Если иначе не определено, методы, определенные в этом class, не ориентированы на многопотоковое исполнение. Многократные потоки, которые должны получить доступ к единственному объекту одновременно, должны синхронизироваться среди себя и обеспечить необходимую блокировку. Многократные потоки каждое управление отдельные объекты не должны синхронизироваться.
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 критерию.
|
Объект |
clone()
Возвращает копию этого объекта.
|
byte[] |
getAuthorityKeyIdentifier()
Возвращает authorityKeyIdentifier критерий.
|
int |
getBasicConstraints()
Возвращает основное ограничительное ограничение.
|
X509Certificate |
getCertificate()
Возвращает certificateEquals критерий.
|
Дата |
getCertificateValid()
Возвращает certificateValid критерий.
|
Set<String> |
getExtendedKeyUsage()
Возвращает extendedKeyUsage критерий.
|
X500Principal |
getIssuer()
Возвращает критерий выпускающего как
X500Principal . |
byte[] |
getIssuerAsBytes()
Возвращает критерий выпускающего как байтовый массив.
|
Строка |
getIssuerAsString()
Клеветавший, используйте getIssuer () или getIssuerAsBytes () вместо этого.
|
boolean[] |
getKeyUsage()
Возвращает keyUsage критерий.
|
boolean |
getMatchAllSubjectAltNames()
Указывает если
X509Certificate должен содержать все или по крайней мере один из subjectAlternativeNames, определенных в setSubjectAlternativeNames или addSubjectAlternativeName методы. |
byte[] |
getNameConstraints()
Возвращает ограничительный критерий имени.
|
Collection<List<?>> |
getPathToNames()
Возвращает копию pathToNames критерия.
|
Set<String> |
getPolicy()
Возвращает критерий политики.
|
Дата |
getPrivateKeyValid()
Возвращает privateKeyValid критерий.
|
BigInteger |
getSerialNumber()
Возвращает serialNumber критерий.
|
X500Principal |
getSubject()
Возвращает подчиненный критерий как
X500Principal . |
Collection<List<?>> |
getSubjectAlternativeNames()
Возвращает копию subjectAlternativeNames критерия.
|
byte[] |
getSubjectAsBytes()
Возвращает подчиненный критерий как байтовый массив.
|
Строка |
getSubjectAsString()
Клеветавший, используйте getSubject () или getSubjectAsBytes () вместо этого.
|
byte[] |
getSubjectKeyIdentifier()
Возвращает subjectKeyIdentifier критерий.
|
PublicKey |
getSubjectPublicKey()
Возвращает subjectPublicKey критерий.
|
Строка |
getSubjectPublicKeyAlgID()
Возвращает subjectPublicKeyAlgID критерий.
|
boolean |
match(Certificate cert)
Решает ли a
Certificate должен быть выбран. |
void |
setAuthorityKeyIdentifier(byte[] authorityKeyID)
Устанавливает authorityKeyIdentifier критерий.
|
void |
setBasicConstraints(int minMaxPathLen)
Устанавливает основное ограничительное ограничение.
|
void |
setCertificate(X509Certificate cert)
Устанавливает certificateEquals критерий.
|
void |
setCertificateValid(Date certValid)
Устанавливает certificateValid критерий.
|
void |
setExtendedKeyUsage(Set<String> keyPurposeSet)
Устанавливает extendedKeyUsage критерий.
|
void |
setIssuer(byte[] issuerDN)
Устанавливает критерий выпускающего.
|
void |
setIssuer(String issuerDN)
Клеветавший, используйте setIssuer (X500Principal) или setIssuer (байт []) вместо этого.
|
void |
setIssuer(X500Principal issuer)
Устанавливает критерий выпускающего.
|
void |
setKeyUsage(boolean[] keyUsage)
Устанавливает keyUsage критерий.
|
void |
setMatchAllSubjectAltNames(boolean matchAllNames)
Позволяет/отключает соответствовать все subjectAlternativeNames, определенные в
setSubjectAlternativeNames или addSubjectAlternativeName методы. |
void |
setNameConstraints(byte[] bytes)
Устанавливает ограничительный критерий имени.
|
void |
setPathToNames(Collection<List<?>> names)
Устанавливает pathToNames критерий.
|
void |
setPolicy(Set<String> certPolicySet)
Устанавливает ограничение политики.
|
void |
setPrivateKeyValid(Date privateKeyValid)
Устанавливает privateKeyValid критерий.
|
void |
setSerialNumber(BigInteger serial)
Устанавливает serialNumber критерий.
|
void |
setSubject(byte[] subjectDN)
Устанавливает подчиненный критерий.
|
void |
setSubject(String subjectDN)
Клеветавший, используйте setSubject (X500Principal) или setSubject (байт []) вместо этого.
|
void |
setSubject(X500Principal 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 критерий.
|
Строка |
toString()
Возвратите печатаемое представление
CertSelector . |
public X509CertSelector()
X509CertSelector
. Первоначально, никакие критерии не устанавливаются так никто X509Certificate
будет соответствовать.public void setCertificate(X509Certificate cert)
X509Certificate
должно быть равным X509Certificate
переданный к match
метод. Если null
, тогда эта проверка не применяется. Этот метод особенно полезен, когда необходимо соответствовать единственный сертификат. Хотя другие критерии могут быть определены в соединении с certificateEquals критерием, это обычно не практично или необходимо.
cert
- X509Certificate
соответствовать (или null
)getCertificate()
public void setSerialNumber(BigInteger serial)
X509Certificate
. Если null
, любой порядковый номер сертификата сделает.serial
- порядковый номер сертификата, чтобы соответствовать (или null
)getSerialNumber()
public void setIssuer(X500Principal issuer)
X509Certificate
. Если null
, любое отличительное имя выпускающего сделает.issuer
- отличительное имя как X500Principal (или null
)public void setIssuer(String issuerDN) throws IOException
Устанавливает критерий выпускающего. Указанное отличительное имя должно соответствовать отличительное имя выпускающего в X509Certificate
. Если null
, любое отличительное имя выпускающего сделает.
Если issuerDN
не null
, это должно содержать отличительное имя в формате RFC 2253.
issuerDN
- отличительное имя в формате RFC 2253 (или null
)IOException
- если ошибка парсинга происходит (неправильная форма для DN)public void setIssuer(byte[] issuerDN) throws IOException
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)public void setSubject(X500Principal subject)
X509Certificate
. Если null
, любое подчиненное отличительное имя сделает.subject
- отличительное имя как X500Principal (или null
)public void setSubject(String subjectDN) throws IOException
Устанавливает подчиненный критерий. Указанное отличительное имя должно соответствовать подчиненное отличительное имя в X509Certificate
. Если null
, любое подчиненное отличительное имя сделает.
Если subjectDN
не null
, это должно содержать отличительное имя в формате RFC 2253.
subjectDN
- отличительное имя в формате RFC 2253 (или null
)IOException
- если ошибка парсинга происходит (неправильная форма для DN)public void setSubject(byte[] subjectDN) throws IOException
X509Certificate
. Если null
, любое подчиненное отличительное имя сделает. Если subjectDN
не null
, это должно содержать единственный DER закодированное отличительное имя, как определено в X.501. Для нотации ASN.1 для этой структуры см. setIssuer(byte [] issuerDN)
.
subjectDN
- байтовый массив, содержащий отличительное имя в ASN.1 DER формат (или null
)IOException
- если ошибка кодирования происходит (неправильная форма для DN)public void setSubjectKeyIdentifier(byte[] subjectKeyID)
X509Certificate
должен содержать расширение SubjectKeyIdentifier, для которого содержание расширения соответствует указанное значение критерия. Если значение критерия null
, никакая проверка subjectKeyIdentifier не будет сделана. Если subjectKeyID
не null
, это должно содержать единственный DER закодированное значение, соответствующее содержанию значения расширения (не включая объектный идентификатор, установку критичности, и инкапсуляцию СТРОКИ ОКТЕТА) для расширения SubjectKeyIdentifier. Нотация ASN.1 для этой структуры следует.
SubjectKeyIdentifier ::= KeyIdentifier
KeyIdentifier ::= OCTET STRING
Так как формат подчиненных ключевых идентификаторов не получает мандат никакими стандартными, подчиненными ключевыми идентификаторами, не анализируются X509CertSelector
. Вместо этого значения сравниваются, используя сравнение байта байтом.
Отметьте, что байтовый массив, предоставленный здесь, клонируется, чтобы защитить от последующих модификаций.
subjectKeyID
- подчиненный ключевой идентификатор (или null
)getSubjectKeyIdentifier()
public void setAuthorityKeyIdentifier(byte[] authorityKeyID)
X509Certificate
должен содержать расширение AuthorityKeyIdentifier, для которого содержание значения расширения соответствует указанное значение критерия. Если значение критерия null
, никакая проверка authorityKeyIdentifier не будет сделана. Если authorityKeyID
не null
, это должно содержать единственный DER закодированное значение, соответствующее содержанию значения расширения (не включая объектный идентификатор, установку критичности, и инкапсуляцию СТРОКИ ОКТЕТА) для расширения 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, и не ПОСЛЕДОВАТЕЛЬНОСТЬ KeyIdentifier, GeneralNames, и CertificateSerialNumber. Чтобы использовать значение расширения сертификата выпускающего SubjectKeyIdentifier
расширение, будет необходимо извлечь значение встроенного KeyIdentifier
СТРОКА ОКТЕТА, тогда DER кодируют эту СТРОКУ ОКТЕТА в ПОСЛЕДОВАТЕЛЬНОСТИ. Для получения дополнительной информации на SubjectKeyIdentifier, см. setSubjectKeyIdentifier(byte[] subjectKeyID)
.
Отметьте также, что байтовый массив, предоставленный здесь, клонируется, чтобы защитить от последующих модификаций.
authorityKeyID
- ключевой идентификатор полномочий (или null
)getAuthorityKeyIdentifier()
public void setCertificateValid(Date certValid)
X509Certificate
. Если null
, никакая проверка certificateValid не будет сделана. Отметьте что Date
предоставленный здесь клонируется, чтобы защитить от последующих модификаций.
certValid
- Date
проверять (или null
)getCertificateValid()
public void setPrivateKeyValid(Date privateKeyValid)
X509Certificate
. Если null
, никакая проверка privateKeyValid не будет сделана. Отметьте что Date
предоставленный здесь клонируется, чтобы защитить от последующих модификаций.
privateKeyValid
- Date
проверять (или null
)getPrivateKeyValid()
public void setSubjectPublicKeyAlgID(String oid) throws IOException
X509Certificate
должен содержать подчиненный открытый ключ с указанным алгоритмом. Если null
, никакая проверка subjectPublicKeyAlgID не будет сделана.oid
- Объектный идентификатор (OID) алгоритма, чтобы проверить на (или null
). OID представляется рядом неотрицательных целых чисел, разделенных периодами.IOException
- если OID недопустим, таков как первый компонент быть не 0, 1 или 2 или второй компонент, являющийся больше чем 39.getSubjectPublicKeyAlgID()
public void setSubjectPublicKey(PublicKey key)
X509Certificate
должен содержать указанный подчиненный открытый ключ. Если null
, никакая проверка subjectPublicKey не будет сделана.key
- подчиненный открытый ключ, чтобы проверить на (или null
)getSubjectPublicKey()
public void setSubjectPublicKey(byte[] key) throws IOException
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)
X509Certificate
должен позволить указанные значения keyUsage. Если null
, никакая проверка keyUsage не будет сделана. Отметьте что X509Certificate
у этого нет никакого keyUsage расширения, неявно позволяет все значения keyUsage. Отметьте, что булев массив, предоставленный здесь, клонируется, чтобы защитить от последующих модификаций.
keyUsage
- булев массив в том же самом формате как булев массив, возвращенный X509Certificate.getKeyUsage()
. Или null
.getKeyUsage()
public void setExtendedKeyUsage(Set<String> keyPurposeSet) throws IOException
X509Certificate
должен позволить указанные ключевые цели в его расширенном ключевом расширении использования. Если keyPurposeSet
пусто или null
, никакая проверка extendedKeyUsage не будет сделана. Отметьте что X509Certificate
у этого нет никакого extendedKeyUsage расширения, неявно позволяет все ключевые цели. Отметьте что Set
клонируется, чтобы защитить от последующих модификаций.
keyPurposeSet
- a Set
из ключевых OID цели в строковом формате (или null
). Каждый OID представляется рядом неотрицательных целых чисел, разделенных периодами.IOException
- если OID недопустим, таков как первый компонент быть не 0, 1 или 2 или второй компонент, являющийся больше чем 39.getExtendedKeyUsage()
public void setMatchAllSubjectAltNames(boolean matchAllNames)
setSubjectAlternativeNames
или addSubjectAlternativeName
методы. Если включено, X509Certificate
должен содержать все указанные подчиненные альтернативные имена. Если отключено, X509Certificate
должен содержать по крайней мере одно из указанных подчиненных альтернативных имен. Флаг matchAllNames true
по умолчанию.
matchAllNames
- если true
, флаг включается; если false
, флаг отключается.getMatchAllSubjectAltNames()
public void setSubjectAlternativeNames(Collection<List<?>> names) throws IOException
X509Certificate
должен содержать все или по крайней мере один из указанных subjectAlternativeNames, в зависимости от значения флага matchAllNames (см. setMatchAllSubjectAltNames
). Этот метод позволяет вызывающей стороне определять, с единственным вызовом метода, полным набором подчиненных альтернативных имен для subjectAlternativeNames критерия. Указанное значение заменяет предыдущее значение для subjectAlternativeNames критерия.
names
параметр (если нет null
) a Collection
с одной записью для каждого имени, которое будет включено в подчиненную альтернативу, называют критерий. Каждая запись является a List
чья первая запись Integer
(тип имени, 0-8) и чья вторая запись является a String
или байтовый массив (имя, в строке или ASN.1 DER закодированная форма, соответственно). Могут быть многократные имена того же самого типа. Если null
предоставляется как значение для этого параметра, никакая проверка subjectAlternativeNames не будет выполняться.
Каждое подчиненное альтернативное имя в Collection
может быть определен любой как a String
или как ASN.1 закодированный байтовый массив. Для получения дополнительной информации об используемых форматах, см. addSubjectAlternativeName(int type, String name)
и addSubjectAlternativeName(int type, byte [] name)
.
Отметьте: для отличительных имен определите форму байтового массива вместо Строковой формы. См. примечание в addSubjectAlternativeName(int, String)
для получения дополнительной информации.
Отметьте что names
параметр может содержать двойные названия (то же самое имя и назвать тип), но они могут быть удалены из Collection
из имен, возвращенных getSubjectAlternativeNames
метод.
Отметьте, что глубокая копия выполняется на Collection
защищать от последующих модификаций.
names
- a Collection
из имен (или null
)IOException
- если ошибка парсинга происходитgetSubjectAlternativeNames()
public void addSubjectAlternativeName(int type, String name) throws IOException
X509Certificate
должен содержать все или по крайней мере один из указанных subjectAlternativeNames, в зависимости от значения флага matchAllNames (см. setMatchAllSubjectAltNames
). Этот метод позволяет вызывающей стороне добавлять имя к набору подчиненных альтернативных имен. Указанное имя добавляется к любому предыдущему значению для subjectAlternativeNames критерия. Если указанное имя является копией, оно может быть проигнорировано.
Имя обеспечивается в строковом формате. addSubjectAlternativeName(int type, byte [] name)
метод.
Отметьте: для отличительных имен используйте addSubjectAlternativeName (интервал, байт []) вместо этого. На этот метод нельзя положиться, поскольку он может быть не в состоянии соответствовать некоторые сертификаты из-за потери кодирования информации в Строковой форме RFC 2253 некоторых отличительных имен.
type
- тип имени (0-8, как определено в RFC 3280, раздел 4.2.1.7)name
- имя в строковой форме (нет null
)IOException
- если ошибка парсинга происходитpublic void addSubjectAlternativeName(int type, byte[] name) throws IOException
X509Certificate
должен содержать все или по крайней мере один из указанных subjectAlternativeNames, в зависимости от значения флага matchAllNames (см. setMatchAllSubjectAltNames
). Этот метод позволяет вызывающей стороне добавлять имя к набору подчиненных альтернативных имен. Указанное имя добавляется к любому предыдущему значению для subjectAlternativeNames критерия. Если указанное имя является копией, оно может быть проигнорировано.
Имя обеспечивается как байтовый массив. Этот байтовый массив должен содержать DER закодированное имя, как это появилось бы в структуре GeneralName, определенной в RFC 3280 и 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}
Отметьте, что байтовый массив, предоставленный здесь, клонируется, чтобы защитить от последующих модификаций.
type
- тип имени (0-8, как упомянуто выше)name
- байтовый массив, содержащий имя в ASN.1 DER закодированная формаIOException
- если ошибка парсинга происходитpublic void setNameConstraints(byte[] bytes) throws IOException
X509Certificate
должен иметь подчиненные и подчиненные альтернативные имена, которые встречают ограничения указанного имени. Ограничения имени определяются как байтовый массив. Этот байтовый массив должен содержать DER закодированная форма ограничений имени, поскольку они появились бы в структуре NameConstraints, определенной в RFC 3280 и 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}
Отметьте, что байтовый массив, предоставленный здесь, клонируется, чтобы защитить от последующих модификаций.
bytes
- байтовый массив, содержащий ASN.1 DER кодирование расширения NameConstraints, которое будет использоваться для того, чтобы проверить ограничения имени. Только значение расширения включается, не флаг критичности или OID. Может быть null
, когда никакая ограничительная проверка имени не будет выполняться.IOException
- если ошибка парсинга происходитgetNameConstraints()
public void setBasicConstraints(int minMaxPathLen)
X509Certificates
должен включать basicConstraints расширение с pathLen, по крайней мере, этого значения. Если значение-2, только сертификаты объекта конца принимаются. Если значение-1, никакая проверка не делается. Это ограничение полезно, создавая путь сертификации вперед (от цели к доверительной привязке. Если частичный путь был создан, у любого сертификата кандидата должно быть значение maxPathLen, больше чем или равный числу сертификатов в частичном пути.
minMaxPathLen
- значение для основного ограничительного ограниченияIllegalArgumentException
- если значение - меньше чем-2getBasicConstraints()
public void setPolicy(Set<String> certPolicySet) throws IOException
X509Certificate
должен включать по крайней мере одну из указанных политик в ее расширении политик сертификата. Если certPolicySet
пусто, тогда X509Certificate
должен включать, по крайней мере, немного указанной политики в ее расширение политик сертификата. Если certPolicySet
null
, никакая проверка политики не будет выполняться. Отметьте что Set
клонируется, чтобы защитить от последующих модификаций.
certPolicySet
- a Set
из OID политики сертификата в строковом формате (или null
). Каждый OID представляется рядом неотрицательных целых чисел, разделенных периодами.IOException
- если ошибка парсинга происходит на OID, таком как первый компонент, не 0, 1 или 2, или второй компонент больше чем 39.getPolicy()
public void setPathToNames(Collection<List<?>> names) throws IOException
X509Certificate
не должен включать ограничения имени, которые запретили бы создание пути к указанным именам. Этот метод позволяет вызывающей стороне определять, с единственным вызовом метода, полным набором имен который X509Certificates
's ограничения имени должен разрешить. Указанное значение заменяет предыдущее значение для pathToNames критерия.
Это ограничение полезно, создавая путь сертификации вперед (от цели к доверительной привязке. Если бы частичный путь был создан, любой сертификат кандидата не должен включать ограничения имени, которые запретили бы создание пути к любому из имен в частичном пути.
names
параметр (если нет null
) a Collection
с одной записью для каждого имени, которое будет включено в pathToNames критерий. Каждая запись является a List
чья первая запись Integer
(тип имени, 0-8) и чья вторая запись является a String
или байтовый массив (имя, в строке или ASN.1 DER закодированная форма, соответственно). Могут быть многократные имена того же самого типа. Если null
предоставляется как значение для этого параметра, никакая проверка pathToNames не будет выполняться.
Каждое имя в Collection
может быть определен любой как a String
или как ASN.1 закодированный байтовый массив. Для получения дополнительной информации об используемых форматах, см. addPathToName(int type, String name)
и addPathToName(int type, byte [] name)
.
Отметьте: для отличительных имен определите форму байтового массива вместо Строковой формы. См. примечание в addPathToName(int, String)
для получения дополнительной информации.
Отметьте что names
параметр может содержать двойные названия (то же самое имя и назвать тип), но они могут быть удалены из Collection
из имен, возвращенных getPathToNames
метод.
Отметьте, что глубокая копия выполняется на Collection
защищать от последующих модификаций.
names
- a Collection
с одной записью на имя (или null
)IOException
- если ошибка парсинга происходитgetPathToNames()
public void addPathToName(int type, String name) throws IOException
X509Certificate
не должен включать ограничения имени, которые запретили бы создание пути к указанному имени. Этот метод позволяет вызывающей стороне добавлять имя к набору имен который X509Certificates
's ограничения имени должен разрешить. Указанное имя добавляется к любому предыдущему значению для pathToNames критерия. Если имя является копией, оно может быть проигнорировано.
Имя обеспечивается в строковом формате. RFC 822, DNS, и имена URI используют известные строковые форматы для тех типов (подвергающийся ограничениям, включенным в RFC 3280). Имена адреса IPv4 предоставляются, используя отмеченную точкой нотацию четверки. Имена адреса OID представляются как серия неотрицательных целых чисел, разделенных периодами. И имена каталогов (отличительные имена) предоставляются в формате RFC 2253. Никакой стандартный строковый формат не определяется для otherNames, имен X.400, имен стороны EDI, имен адреса IPv6, или никакого другого типа имен. Они должны быть определены, используя addPathToName(int type, byte [] name)
метод.
Отметьте: для отличительных имен используйте addPathToName (интервал, байт []) вместо этого. На этот метод нельзя положиться, поскольку он может быть не в состоянии соответствовать некоторые сертификаты из-за потери кодирования информации в Строковой форме RFC 2253 некоторых отличительных имен.
type
- тип имени (0-8, как определено в RFC 3280, раздел 4.2.1.7)name
- имя в строковой формеIOException
- если ошибка парсинга происходитpublic void addPathToName(int type, byte[] name) throws IOException
X509Certificate
не должен включать ограничения имени, которые запретили бы создание пути к указанному имени. Этот метод позволяет вызывающей стороне добавлять имя к набору имен который X509Certificates
's ограничения имени должен разрешить. Указанное имя добавляется к любому предыдущему значению для pathToNames критерия. Если имя является копией, оно может быть проигнорировано.
Имя обеспечивается как байтовый массив. Этот байтовый массив должен содержать DER закодированное имя, как это появилось бы в структуре GeneralName, определенной в RFC 3280 и X.509. Определение ASN.1 этой структуры появляется в документации для addSubjectAlternativeName(int type, byte [] name)
.
Отметьте, что байтовый массив, предоставленный здесь, клонируется, чтобы защитить от последующих модификаций.
type
- тип имени (0-8, как определено в RFC 3280, раздел 4.2.1.7)name
- байтовый массив, содержащий имя в ASN.1 DER закодированная формаIOException
- если ошибка парсинга происходитpublic X509Certificate getCertificate()
X509Certificate
должно быть равным X509Certificate
переданный к match
метод. Если null
, эта проверка не применяется.X509Certificate
соответствовать (или null
)setCertificate(java.security.cert.X509Certificate)
public BigInteger getSerialNumber()
X509Certificate
. Если null
, любой порядковый номер сертификата сделает.null
)setSerialNumber(java.math.BigInteger)
public X500Principal getIssuer()
X500Principal
. Это отличительное имя должно соответствовать отличительное имя выпускающего в X509Certificate
. Если null
, критерий выпускающего отключается, и любое отличительное имя выпускающего сделает.null
)public String getIssuerAsString()
Возвращает критерий выпускающего как a String
. Это отличительное имя должно соответствовать отличительное имя выпускающего в X509Certificate
. Если null
, критерий выпускающего отключается, и любое отличительное имя выпускающего сделает.
Если возвращенное значение не null
, это - отличительное имя в формате RFC 2253.
null
)public byte[] getIssuerAsBytes() throws IOException
X509Certificate
. Если null
, критерий выпускающего отключается, и любое отличительное имя выпускающего сделает. Если возвращенное значение не null
, это - байтовый массив, содержащий единственный DER закодированное отличительное имя, как определено в X.501. Нотация ASN.1 для этой структуры предоставляется в документации для setIssuer(byte [] issuerDN)
.
Отметьте, что возвращенный байтовый массив клонируется, чтобы защитить от последующих модификаций.
null
)IOException
- если ошибка кодирования происходитpublic X500Principal getSubject()
X500Principal
. Это отличительное имя должно соответствовать подчиненное отличительное имя в X509Certificate
. Если null
, подчиненный критерий отключается, и любое подчиненное отличительное имя сделает.null
)public String getSubjectAsString()
Возвращает подчиненный критерий как a String
. Это отличительное имя должно соответствовать подчиненное отличительное имя в X509Certificate
. Если null
, подчиненный критерий отключается, и любое подчиненное отличительное имя сделает.
Если возвращенное значение не null
, это - отличительное имя в формате RFC 2253.
null
)public byte[] getSubjectAsBytes() throws IOException
X509Certificate
. Если null
, подчиненный критерий отключается, и любое подчиненное отличительное имя сделает. Если возвращенное значение не null
, это - байтовый массив, содержащий единственный DER закодированное отличительное имя, как определено в X.501. Нотация ASN.1 для этой структуры предоставляется в документации для setSubject(byte [] subjectDN)
.
Отметьте, что возвращенный байтовый массив клонируется, чтобы защитить от последующих модификаций.
null
)IOException
- если ошибка кодирования происходитpublic byte[] getSubjectKeyIdentifier()
X509Certificate
должен содержать расширение SubjectKeyIdentifier с указанным значением. Если null
, никакая проверка subjectKeyIdentifier не будет сделана. Отметьте, что возвращенный байтовый массив клонируется, чтобы защитить от последующих модификаций.
null
)setSubjectKeyIdentifier(byte[])
public byte[] getAuthorityKeyIdentifier()
X509Certificate
должен содержать расширение AuthorityKeyIdentifier с указанным значением. Если null
, никакая проверка authorityKeyIdentifier не будет сделана. Отметьте, что возвращенный байтовый массив клонируется, чтобы защитить от последующих модификаций.
null
)setAuthorityKeyIdentifier(byte[])
public Date getCertificateValid()
X509Certificate
. Если null
, никакая проверка certificateValid не будет сделана. Отметьте что Date
возвращенный клонируется, чтобы защитить от последующих модификаций.
Date
проверять (или null
)setCertificateValid(java.util.Date)
public Date getPrivateKeyValid()
X509Certificate
. Если null
, никакая проверка privateKeyValid не будет сделана. Отметьте что Date
возвращенный клонируется, чтобы защитить от последующих модификаций.
Date
проверять (или null
)setPrivateKeyValid(java.util.Date)
public String getSubjectPublicKeyAlgID()
X509Certificate
должен содержать подчиненный открытый ключ с указанным алгоритмом. Если null
, никакая проверка subjectPublicKeyAlgID не будет сделана.null
). OID представляется рядом неотрицательных целых чисел, разделенных периодами.setSubjectPublicKeyAlgID(java.lang.String)
public PublicKey getSubjectPublicKey()
X509Certificate
должен содержать указанный подчиненный открытый ключ. Если null
, никакая проверка subjectPublicKey не будет сделана.null
)setSubjectPublicKey(java.security.PublicKey)
public boolean[] getKeyUsage()
X509Certificate
должен позволить указанные значения keyUsage. Если ноль, никакая проверка keyUsage не будет сделана. Отметьте, что булев возвращенный массив клонируется, чтобы защитить от последующих модификаций.
X509Certificate.getKeyUsage()
. Или null
.setKeyUsage(boolean[])
public Set<String> getExtendedKeyUsage()
X509Certificate
должен позволить указанные ключевые цели в его расширенном ключевом расширении использования. Если keyPurposeSet
возвращенный пусто или null
, никакая проверка extendedKeyUsage не будет сделана. Отметьте что X509Certificate
у этого нет никакого extendedKeyUsage расширения, неявно позволяет все ключевые цели.Set
из ключевых OID цели в строковом формате (или null
)setExtendedKeyUsage(java.util.Set<java.lang.String>)
public boolean getMatchAllSubjectAltNames()
X509Certificate
должен содержать все или по крайней мере один из subjectAlternativeNames, определенных в setSubjectAlternativeNames
или addSubjectAlternativeName
методы. Если true
, X509Certificate
должен содержать все указанные подчиненные альтернативные имена. Если false
, X509Certificate
должен содержать по крайней мере одно из указанных подчиненных альтернативных имен.true
если флаг включается; false
если флаг отключается. Флаг true
по умолчанию.setMatchAllSubjectAltNames(boolean)
public Collection<List<?>> getSubjectAlternativeNames()
X509Certificate
должен содержать все или по крайней мере один из указанных subjectAlternativeNames, в зависимости от значения флага matchAllNames (см. getMatchAllSubjectAltNames
). Если возвращенное значение null
, никакая проверка subjectAlternativeNames не будет выполняться. Если возвращенное значение не null
, это - a Collection
с одной записью для каждого имени, которое будет включено в подчиненную альтернативу, называют критерий. Каждая запись является a List
чья первая запись Integer
(тип имени, 0-8) и чья вторая запись является a String
или байтовый массив (имя, в строке или ASN.1 DER закодированная форма, соответственно). Могут быть многократные имена того же самого типа. Отметьте что Collection
возвращенный может содержать двойные названия (то же самое имя и назвать тип).
Каждое подчиненное альтернативное имя в Collection
может быть определен любой как a String
или как ASN.1 закодированный байтовый массив. Для получения дополнительной информации об используемых форматах, см. addSubjectAlternativeName(int type, String name)
и addSubjectAlternativeName(int type, byte [] name)
.
Отметьте, что глубокая копия выполняется на Collection
защищать от последующих модификаций.
Collection
из имен (или null
)setSubjectAlternativeNames(java.util.Collection<java.util.List<?>>)
public byte[] getNameConstraints()
X509Certificate
должен иметь подчиненные и подчиненные альтернативные имена, которые встречают ограничения указанного имени. Ограничения имени возвращаются как байтовый массив. Этот байтовый массив содержит DER закодированная форма ограничений имени, поскольку они появились бы в структуре NameConstraints, определенной в RFC 3280 и X.509. Нотация ASN.1 для этой структуры предоставляется в документации для setNameConstraints(byte [] bytes)
.
Отметьте, что возвращенный байтовый массив клонируется, чтобы защитить от последующих модификаций.
null
если никакая ограничительная проверка имени не будет выполняться.setNameConstraints(byte[])
public int getBasicConstraints()
X509Certificates
должен включать basicConstraints расширение с pathLen, по крайней мере, этого значения. Если значение-2, только сертификаты объекта конца принимаются. Если значение-1, никакая проверка basicConstraints не делается.setBasicConstraints(int)
public Set<String> getPolicy()
X509Certificate
должен включать по крайней мере одну из указанных политик в ее расширении политик сертификата. Если Set
возвращенный пусто, тогда X509Certificate
должен включать, по крайней мере, немного указанной политики в ее расширение политик сертификата. Если Set
возвращенный null
, никакая проверка политики не будет выполняться.Set
из OID политики сертификата в строковом формате (или null
)setPolicy(java.util.Set<java.lang.String>)
public Collection<List<?>> getPathToNames()
X509Certificate
не должен включать ограничения имени, которые запретили бы создание пути к указанным именам. Если возвращенное значение null
, никакая проверка pathToNames не будет выполняться. Если возвращенное значение не null
, это - a Collection
с одной записью для каждого имени, которое будет включено в pathToNames критерий. Каждая запись является a List
чья первая запись Integer
(тип имени, 0-8) и чья вторая запись является a String
или байтовый массив (имя, в строке или ASN.1 DER закодированная форма, соответственно). Могут быть многократные имена того же самого типа. Отметьте что Collection
возвращенный может содержать двойные названия (то же самое имя и назвать тип).
Каждое имя в Collection
может быть определен любой как a String
или как ASN.1 закодированный байтовый массив. Для получения дополнительной информации об используемых форматах, см. addPathToName(int type, String name)
и addPathToName(int type, byte [] name)
.
Отметьте, что глубокая копия выполняется на Collection
защищать от последующих модификаций.
Collection
из имен (или null
)setPathToNames(java.util.Collection<java.util.List<?>>)
public String toString()
CertSelector
.public boolean match(Certificate cert)
Certificate
должен быть выбран.match
в интерфейсе CertSelector
cert
- Certificate
быть провереннымtrue
если Certificate
должен быть выбран, false
иначе
Для дальнейшей ссылки API и документации разработчика, см. Java Документация SE. Та документация содержит более подробные, предназначенные разработчиком описания, с концептуальными краткими обзорами, определениями сроков, обходных решений, и рабочих примеров кода.
Авторское право © 1993, 2013, Oracle и/или его филиалы. Все права защищены.
Проект сборка-b92