Spec-Zone.ru › OpenJDK 24

Класс KeyInfoFactory

java.lang.Object
javax.xml.crypto.dsig.keyinfo.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

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

KeyInfoFactory()
Модификатор Конструктор Описание
protected
Конструктор по умолчанию для вызова подклассами.

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

Модификатор и тип Метод Описание
static KeyInfoFactory getInstance()
Возвращает KeyInfoFactory, который поддерживает механизм обработки XML по умолчанию и тип представления ("DOM").
static KeyInfoFactory getInstance(String mechanismType)
Возвращает KeyInfoFactory, который поддерживает указанный механизм обработки XML и тип представления (например, "DOM").
static KeyInfoFactory getInstance(String mechanismType, String provider)
Возвращает KeyInfoFactory, который поддерживает запрошенный механизм обработки XML и тип представления (например, "DOM"), предоставляемый указанным поставщиком.
static KeyInfoFactory getInstance(String mechanismType, Provider provider)
Возвращает KeyInfoFactory, который поддерживает запрошенный механизм обработки XML и тип представления (например, "DOM"), предоставляемый указанным поставщиком.
final String getMechanismType()
Возвращает тип механизма обработки XML и поддерживаемого представления (например, "DOM") для этого KeyInfoFactory.
final Provider getProvider()
Возвращает поставщика этого KeyInfoFactory.
abstract URIDereferencer getURIDereferencer()
Возвращает ссылку на URIDereferencer, используемый по умолчанию для разыменования URI в объектах RetrievalMethod.
abstract boolean isFeatureSupported(String feature)
Указывает, поддерживается ли указанная функция.
abstract KeyInfo newKeyInfo(List<? extends XMLStructure> content)
Создает KeyInfo, содержащий указанный список типов информации о ключах.
abstract KeyInfo newKeyInfo(List<? extends XMLStructure> content, String id)
Создаёт KeyInfo, содержащий указанный список типов информации о ключах и необязательный идентификатор.
...

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

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

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

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.preferred Security для определения предпочтительного порядка поставщиков для указанного алгоритма. Это может отличаться от порядка поставщиков, возвращаемого методом Security.getProviders().
Параметры:
mechanismType - тип механизма обработки XML и представления. Список стандартных типов механизмов см. в разделе KeyInfoFactory в Спецификации Java Security Standard Algorithm Names.
Возвращает:
новый KeyInfoFactory
Исключения:
NullPointerException - если mechanismType является null
NoSuchMechanismException - если ни один Provider не поддерживает реализацию KeyInfoFactory для указанного механизма
См. также:
  • Provider

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
См. также:
  • 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 для указанного механизма недоступна от указанного поставщика
См. также:
  • Provider

getInstance

public static KeyInfoFactory getInstance()
Возвращает объект KeyInfoFactory, который поддерживает значения по умолчанию для механизма обработки XML и представления ("DOM").

Этот метод использует стандартный механизм поиска поставщиков JCA для поиска и создания реализации KeyInfoFactory типа механизма по умолчанию. Он перебирает список зарегистрированных средств безопасности Provider, начиная с наиболее предпочтительного Provider. Возвращается новый объект KeyInfoFactory от первого Provider, который поддерживает механизм DOM.

Обратите внимание, что список зарегистрированных поставщиков можно получить с помощью метода Security.getProviders().

Описание реализации:
Реализация JDK дополнительно использует свойство jdk.security.provider.preferred Security для определения предпочтительного порядка поставщиков для указанного алгоритма. Это может отличаться от порядка поставщиков, возвращаемого методом Security.getProviders().
Возвращает:
новый KeyInfoFactory
Исключения:
NoSuchMechanismException - если ни один Provider не поддерживает реализацию KeyInfoFactory для механизма DOM
См. также:
  • Provider

getMechanismType

public final String getMechanismType()
Возвращает тип механизма обработки XML и представления, поддерживаемого этим объектом 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 - значение атрибута XML ID (может быть 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
END_OF_DOCUMENT_MARKER

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

Spec-Zone.ru

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