Класс KeyInfoFactory
public abstract class KeyInfoFactory extends Object
KeyInfo с нуля или для разбора объекта KeyInfo из соответствующего XML-представления. Каждый экземпляр KeyInfoFactory поддерживает определенный тип XML-механизма. Для создания KeyInfoFactory, вызовите один из статических методов getInstance, передав желаемый тип XML-механизма, например:
KeyInfoFactory factory = KeyInfoFactory.getInstance("DOM");
Создаваемые этой фабрикой объекты основаны на DOM и соответствуют требованиям межплатформенной совместимости DOM, как определено в Требованиях к механизму DOM. Список стандартных типов механизмов см. в разделе KeyInfoFactory в Спецификации Java Security Standard Algorithm Names.
Реализации KeyInfoFactory регистрируются и загружаются с помощью механизма Provider. Например, поставщик услуг, поддерживающий механизм DOM, будет указан в подклассе Provider как:
put("KeyInfoFactory.DOM", "org.example.DOMKeyInfoFactory");
Также, создаваемые этой фабрикой XMLStructure могут содержать состояние, специфичное для KeyInfo, и не предназначены для повторного использования.
Реализация ДОЛЖНА, как минимум, поддерживать тип механизма по умолчанию: DOM.
Обратите внимание, что вызывающий должен использовать тот же экземпляр KeyInfoFactory для создания XMLStructure конкретного объекта KeyInfo. Поведение неопределено, если XMLStructure из разных поставщиков или разных типов механизмов используются вместе.
Доступ из нескольких потоков
Статические методы этого класса гарантированно потокобезопасны. Несколько потоков могут одновременно вызывать статические методы, определенные в этом классе, без негативных последствий.
Однако это не относится к методам, не являющимся статическими, определённым в этом классе. Если не указано иным образом в документации конкретного поставщика, потоки, которым необходимо одновременный доступ к одному экземпляру KeyInfoFactory, должны синхронизироваться между собой и обеспечить необходимую блокировку. Несколько потоков, каждый из которых манипулирует разными экземплярами KeyInfoFactory, синхронизироваться не обязаны.
- Since:
- 1.6
Краткое описание конструкторов
| Модификатор | Конструктор | Описание |
|---|---|---|
protected |
Конструктор по умолчанию для вызова подклассами. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
static KeyInfoFactory |
getInstance() |
Возвращает KeyInfoFactory, который поддерживает механизм обработки XML по умолчанию и тип представления ("DOM"). |
static KeyInfoFactory |
getInstance |
Возвращает KeyInfoFactory, который поддерживает указанный механизм обработки XML и тип представления (например, "DOM"). |
static KeyInfoFactory |
getInstance |
Возвращает KeyInfoFactory, который поддерживает запрошенный механизм обработки XML и тип представления (например, "DOM"), предоставляемый указанным поставщиком. |
static KeyInfoFactory |
getInstance |
Возвращает KeyInfoFactory, который поддерживает запрошенный механизм обработки XML и тип представления (например, "DOM"), предоставляемый указанным поставщиком. |
final String |
getMechanismType() |
Возвращает тип механизма обработки XML и поддерживаемого представления (например, "DOM") для этого KeyInfoFactory. |
final Provider |
getProvider() |
Возвращает поставщика этого KeyInfoFactory. |
abstract URIDereferencer |
getURIDereferencer() |
Возвращает ссылку на URIDereferencer, используемый по умолчанию для разыменования URI в объектах RetrievalMethod. |
abstract boolean |
isFeatureSupported |
Указывает, поддерживается ли указанная функция. |
abstract KeyInfo |
newKeyInfo |
Создает KeyInfo, содержащий указанный список типов информации о ключах. |
abstract KeyInfo |
newKeyInfo |
Создаёт KeyInfo, содержащий указанный список типов информации о ключах и необязательный идентификатор. |
| ... |
Подробное описание конструкторов
KeyInfoFactory
protected KeyInfoFactory()
Подробное описание методов
getInstance
public static KeyInfoFactory getInstance(String mechanismType)
KeyInfoFactory, который поддерживает указанный механизм обработки XML и тип представления (например, "DOM"). Этот метод использует стандартный механизм поиска поставщика JCA для поиска и создания реализации KeyInfoFactory требуемого типа механизма. Он перебирает список зарегистрированных средств безопасности Provider, начиная с наиболее предпочтительного Provider. Возвращается новый объект KeyInfoFactory из первого Provider, который поддерживает указанный механизм.
Обратите внимание, что список зарегистрированных поставщиков можно получить с помощью метода Security.getProviders().
- Описание реализации:
- Реализация JDK дополнительно использует свойство
jdk.security.provider.preferredSecurityдля определения предпочтительного порядка поставщиков для указанного алгоритма. Это может отличаться от порядка поставщиков, возвращаемого методомSecurity.getProviders(). - Параметры:
-
mechanismType- тип механизма обработки XML и представления. Список стандартных типов механизмов см. в разделеKeyInfoFactoryв Спецификации Java Security Standard Algorithm Names. - Возвращает:
- новый
KeyInfoFactory - Исключения:
-
NullPointerException- еслиmechanismTypeявляетсяnull -
NoSuchMechanismException- если ни одинProviderне поддерживает реализациюKeyInfoFactoryдля указанного механизма - См. также:
getInstance
public static KeyInfoFactory getInstance(String mechanismType, Provider provider)
KeyInfoFactory, который поддерживает запрошенный механизм обработки XML и тип представления (например, "DOM"), предоставленный указанным поставщиком. Обратите внимание, что указанный объект Provider не обязательно должен быть зарегистрирован в списке поставщиков.- Параметры:
-
mechanismType- тип механизма обработки XML и представления. Список стандартных типов механизмов см. в разделеKeyInfoFactoryв Спецификации Java Security Standard Algorithm Names. -
provider- объектProvider - Возвращает:
- новый
KeyInfoFactory - Исключения:
-
NullPointerException- еслиmechanismTypeилиproviderявляютсяnull -
NoSuchMechanismException- если реализацияKeyInfoFactoryдля указанного механизма недоступна от указанного объектаProvider - См. также:
getInstance
public static KeyInfoFactory getInstance(String mechanismType, String provider) throws NoSuchProviderException
KeyInfoFactory, который поддерживает запрошенный механизм обработки XML и тип представления (например, "DOM"), предоставленный указанным поставщиком. Указанный поставщик должен быть зарегистрирован в списке поставщиков безопасности. Обратите внимание, что список зарегистрированных поставщиков можно получить с помощью метода Security.getProviders().
- Параметры:
-
mechanismType- тип механизма обработки XML и представления. Список стандартных типов механизмов см. в разделеKeyInfoFactoryв Спецификации Java Security Standard Algorithm Names. -
provider- строковое имя поставщика - Возвращает:
- новый
KeyInfoFactory - Исключения:
-
NoSuchProviderException- если указанный поставщик не зарегистрирован в списке поставщиков безопасности -
NullPointerException- еслиmechanismTypeилиproviderявляютсяnull -
NoSuchMechanismException- если реализацияKeyInfoFactoryдля указанного механизма недоступна от указанного поставщика - См. также:
getInstance
public static KeyInfoFactory getInstance()
KeyInfoFactory, который поддерживает значения по умолчанию для механизма обработки XML и представления ("DOM"). Этот метод использует стандартный механизм поиска поставщиков JCA для поиска и создания реализации KeyInfoFactory типа механизма по умолчанию. Он перебирает список зарегистрированных средств безопасности Provider, начиная с наиболее предпочтительного Provider. Возвращается новый объект KeyInfoFactory от первого Provider, который поддерживает механизм DOM.
Обратите внимание, что список зарегистрированных поставщиков можно получить с помощью метода Security.getProviders().
- Описание реализации:
- Реализация JDK дополнительно использует свойство
jdk.security.provider.preferredSecurityдля определения предпочтительного порядка поставщиков для указанного алгоритма. Это может отличаться от порядка поставщиков, возвращаемого методомSecurity.getProviders(). - Возвращает:
- новый
KeyInfoFactory - Исключения:
-
NoSuchMechanismException- если ни одинProviderне поддерживает реализациюKeyInfoFactoryдля механизма DOM - См. также:
getMechanismType
public final String getMechanismType()
KeyInfoFactory (например, "DOM")- Возвращает:
- тип механизма обработки XML, поддерживаемый этим объектом
KeyInfoFactory
getProvider
public final Provider getProvider()
KeyInfoFactory.- Возвращает:
- поставщик этого объекта
KeyInfoFactory
newKeyInfo
public abstract KeyInfo newKeyInfo(List<? extends XMLStructure> content)
KeyInfo, содержащий указанный список типов информации о ключе.- Параметры:
-
content- список одного или нескольких объектовXMLStructure, представляющих типы информации о ключе. Список защищен от последующих изменений. - Возвращает:
- объект
KeyInfo - Исключения:
-
NullPointerException- еслиcontentпусто -
IllegalArgumentException- еслиcontentпустой -
ClassCastException- еслиcontentсодержит какие-либо элементы, не являющиеся объектамиXMLStructure
newKeyInfo
public abstract KeyInfo newKeyInfo(List<? extends XMLStructure> content, String id)
KeyInfo, содержащий указанный список типов информации о ключе и необязательный идентификатор. Параметр id представляет значение атрибута XML ID и полезен для ссылки на KeyInfo из других XML-структур.- Параметры:
-
content- список одного или нескольких объектовXMLStructure, представляющих типы информации о ключе. Список защищен от последующих изменений. -
id- значение атрибута XMLID(может бытьnull) - Возвращает:
- объект
KeyInfo - Исключения:
-
NullPointerException- еслиcontentпусто -
IllegalArgumentException- еслиcontentпустой -
ClassCastException- еслиcontentсодержит какие-либо элементы, не являющиеся объектамиXMLStructure
newKeyName
public abstract KeyName newKeyName(String name)
KeyName из указанного имени.- Параметры:
-
name- имя, идентифицирующее ключ - Возвращает:
- объект
KeyName - Исключения:
-
NullPointerException- еслиnameпусто
newKeyValue
public abstract KeyValue newKeyValue(PublicKey key) throws KeyException
KeyValue из указанного открытого ключа.- Parameters:
-
key- открытый ключ - Returns:
KeyValue- Throws:
-
KeyException- если алгоритмkeyне распознаётся или не поддерживается этимKeyInfoFactory -
NullPointerException- еслиkeyявляетсяnull
newPGPData
public abstract PGPData newPGPData(byte[] keyId)
PGPData из указанного идентификатора PGP открытого ключа.- Parameters:
-
keyId- идентификатор PGP открытого ключа, как определено в RFC 2440, раздел 11.2. Массив клонируется для защиты от последующих изменений. - Returns:
PGPData- Throws:
-
NullPointerException- еслиkeyIdявляетсяnull -
IllegalArgumentException- если идентификатор ключа имеет неправильный формат
newPGPData
public abstract PGPData newPGPData(byte[] keyId, byte[] keyPacket, List<? extends XMLStructure> other)
PGPData из указанного идентификатора PGP открытого ключа, и необязательного пакета с данными ключа и списка внешних элементов.- Parameters:
-
keyId- идентификатор PGP открытого ключа, как определено в RFC 2440, раздел 11.2. Массив клонируется для защиты от последующих изменений. -
keyPacket- пакет PGP с данными ключа, как определено в RFC 2440, раздел 5.5. Массив клонируется для защиты от последующих изменений. Может бытьnull. -
other- списокXMLStructure, представляющий элементы из внешнего пространства имён. Список защищено копируется для предотвращения последующих изменений. Может бытьnullили пустым. - Returns:
PGPData- Throws:
-
NullPointerException- еслиkeyIdявляетсяnull -
IllegalArgumentException- если пакетkeyIdилиkeyPacketимеют неправильный формат. ДляkeyPacket, проверяется формат заголовка пакета и проверяется, что тег является типом пакета с данными ключа. Содержимое и формат тела пакета не проверяются. -
ClassCastException- еслиotherсодержит записи, не являющиеся объектами типаXMLStructure
newPGPData
public abstract PGPData newPGPData(byte[] keyPacket, List<? extends XMLStructure> other)
PGPData из указанного пакета PGP с данными ключа и необязательного списка внешних элементов.- Parameters:
-
keyPacket- пакет PGP с данными ключа, как определено в RFC 2440, раздел 5.5. Массив клонируется для защиты от последующих изменений. -
other- списокXMLStructure, представляющий элементы из внешнего пространства имён. Список защищено копируется для предотвращения последующих изменений. Может бытьnullили пустым. - Returns:
PGPData- Throws:
-
NullPointerException- еслиkeyPacketявляетсяnull -
IllegalArgumentException- еслиkeyPacketимеет неправильный формат. ДляkeyPacket, проверяется формат заголовка пакета и проверяется, что тег является типом пакета с данными ключа. Содержимое и формат тела пакета не проверяются. -
ClassCastException- еслиotherсодержит записи, не являющиеся объектами типаXMLStructure
newRetrievalMethod
public abstract RetrievalMethod newRetrievalMethod(String uri)
RetrievalMethod из указанного URI.- Parameters:
-
uri- URI, идентифицирующий информациюKeyInfoдля извлечения - Returns:
RetrievalMethod- Throws:
-
NullPointerException- еслиuriявляетсяnull -
IllegalArgumentException- еслиuriне соответствует RFC 2396
newRetrievalMethod
public abstract RetrievalMethod newRetrievalMethod(String uri, String type, List<? extends Transform> transforms)
RetrievalMethod из указанных параметров.- Parameters:
-
uri- URI, идентифицирующий информациюKeyInfoдля извлечения -
type- URI, идентифицирующий тип информацииKeyInfoдля извлечения (может бытьnull) -
transforms- списокTransform. Список защищено копируется для предотвращения последующих изменений. Может бытьnullили пустым. - Returns:
RetrievalMethod- Throws:
-
NullPointerException- еслиuriявляетсяnull -
IllegalArgumentException- еслиuriне соответствует RFC 2396 -
ClassCastException- еслиtransformsсодержит записи, не являющиеся объектами типаTransform
newX509Data
public abstract X509Data newX509Data(List<?> content)
X509Data, содержащий указанный список X.509 содержимого.- Parameters:
-
content- список одного или нескольких типов X.509 содержимого. Допустимые типы:String(имена субъектов),byte[](идентификаторы ключей субъектов),X509Certificate,X509CRLилиXMLStructure(X509IssuerSerialобъекты или элементы из внешнего пространства имён). Имена субъектов — это имена в формате строки RFC 2253. Реализации ДОЛЖНЫ поддерживать ключевые слова типов атрибутов, определённые в RFC 2253 (CN, L, ST, O, OU, C, STREET, DC и UID). Реализации МОГУТ поддерживать дополнительные ключевые слова. Список защищено копируется для предотвращения последующих изменений. - Returns:
X509Data- Throws:
-
NullPointerException- еслиcontentявляетсяnull -
IllegalArgumentException- еслиcontentпуст, или имя субъекта не соответствует RFC 2253, или одно из ключевых слов типа атрибута не распознаётся. -
ClassCastException- еслиcontentсодержит записи, не являющиеся одним из допустимых типов, упомянутых выше
newX509IssuerSerial
public abstract X509IssuerSerial newX509IssuerSerial(String issuerName, BigInteger serialNumber)
X509IssuerSerial из указанного имени издателя X.500 и номера серии.- Parameters:
-
issuerName- имя издателя в формате строки RFC 2253. Реализации ДОЛЖНЫ поддерживать ключевые слова типов атрибутов, определённые в RFC 2253 (CN, L, ST, O, OU, C, STREET, DC и UID). Реализации МОГУТ поддерживать дополнительные ключевые слова. -
serialNumber- номер серии - Returns:
X509IssuerSerial- Throws:
-
NullPointerException- еслиissuerNameилиserialNumberне являютсяnull -
IllegalArgumentException- если имя издателя не соответствует RFC 2253, или одно из ключевых слов типа атрибута не распознаётся.
isFeatureSupported
public abstract boolean isFeatureSupported(String feature)
- Parameters:
-
feature- имя функции (абсолютный URI) - Returns:
-
true, если указанная функция поддерживается,falseв противном случае - Throws:
-
NullPointerException- еслиfeatureявляетсяnull
getURIDereferencer
public abstract URIDereferencer getURIDereferencer()
URIDereferencer, который по умолчанию используется для разбора URI в объектах RetrievalMethod.- Returns:
- ссылка на дефолтный
URIDereferencer
unmarshalKeyInfo
public abstract KeyInfo unmarshalKeyInfo(XMLStructure xmlStructure) throws MarshalException
KeyInfo из механизм-специфичного XMLStructure (например, DOMStructure) экземпляра.- Параметры:
-
xmlStructure— механизм-специфичная структура XML, из которой необходимо распаковать информацию о ключе - Возвращает:
- экземпляр
KeyInfo - Исключения:
-
NullPointerException— еслиxmlStructureявляетсяnull -
ClassCastException— если типxmlStructureне подходит для этого фабричного метода -
MarshalException— если во время распаковки произошла непреодолимая ошибка
© 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://download.java.net/java/early_access/jdk24/docs/api/java.xml.crypto/javax/xml/crypto/dsig/keyinfo/KeyInfoFactory.html