Spec-Zone.ru › OpenJDK 25

Класс 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.

Реализации KeyInfoFactory регистрируются и загружаются с помощью механизма Provider. Например, поставщик услуг, поддерживающий механизм DOM, указывается в подклассе Provider следующим образом:

    put("KeyInfoFactory.DOM", "org.example.DOMKeyInfoFactory");

Кроме того, объекты XMLStructure, создаваемые этой фабрикой, могут содержать состояние, специфичное для KeyInfo, и не предназначены для повторного использования.

Реализация ДОЛЖНА как минимум поддерживать тип механизма по умолчанию: DOM.

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

Параллельный доступ

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

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

Начиная с:
1.6
Внешние спецификации
  • Стандартные имена алгоритмов безопасности Java

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

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 и представления, поддерживаемый этим KeyInfoFactory (например, «DOM»).
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, содержащий указанный список типов ключевой информации и необязательный идентификатор.
abstract KeyName newKeyName(String name)
Создаёт KeyName из указанного имени.
abstract KeyValue newKeyValue(PublicKey key)
Создаёт KeyValue из указанного открытого ключа.
abstract PGPData newPGPData(byte[] keyId)
Создаёт PGPData из указанного идентификатора открытого ключа PGP.
abstract PGPData newPGPData(byte[] keyId, byte[] keyPacket, List<? extends XMLStructure> other)
Создаёт PGPData из указанного идентификатора открытого ключа PGP, необязательного пакета ключевого материала и списка внешних элементов.
abstract PGPData newPGPData(byte[] keyPacket, List<? extends XMLStructure> other)
Создаёт PGPData из указанного пакета ключевого материала PGP и необязательного списка внешних элементов.
abstract RetrievalMethod newRetrievalMethod(String uri)
Создаёт RetrievalMethod из указанного URI.
abstract RetrievalMethod newRetrievalMethod(String uri, String type, List<? extends Transform> transforms)
Создаёт RetrievalMethod из указанных параметров.
abstract X509Data newX509Data(List<?> content)
Создаёт X509Data, содержащий указанный список содержимого X.509.
abstract X509IssuerSerial newX509IssuerSerial(String issuerName, BigInteger serialNumber)
Создаёт X509IssuerSerial из указанного различительного имени издателя X.500 и серийного номера.
abstract KeyInfo unmarshalKeyInfo(XMLStructure xmlStructure)
Демаршализует новый экземпляр KeyInfo из экземпляра XMLStructure, специфичного для механизма (например, DOMStructure).

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

getInstance

public static KeyInfoFactory getInstance(String mechanismType, Provider provider)
Возвращает KeyInfoFactory, поддерживающий запрошенный механизм обработки XML и тип представления (например, "DOM"), предоставляемый указанным поставщиком. Обратите внимание, что указанный объект Provider не обязательно должен быть зарегистрирован в списке поставщиков.
Параметры:
mechanismType — тип механизма обработки XML и представления. Список стандартных типов механизмов см. в разделе KeyInfoFactory спецификации Стандартные имена алгоритмов безопасности Java.
provider — объект Provider
Возвращает:
новый KeyInfoFactory
Вызывает:
NullPointerException — если mechanismType или provider имеют значение null
NoSuchMechanismException — если реализация KeyInfoFactory для указанного механизма недоступна у указанного объекта Provider
Внешние спецификации
  • Стандартные имена алгоритмов безопасности Java
См. также:
  • Provider

getInstance

public static KeyInfoFactory getInstance(String mechanismType, String provider) throws NoSuchProviderException
Возвращает KeyInfoFactory, поддерживающий запрошенный механизм обработки XML и тип представления (например, "DOM"), предоставляемый указанным поставщиком. Указанный поставщик должен быть зарегистрирован в списке поставщиков безопасности.

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

Параметры:
mechanismType — тип механизма обработки XML и представления. Список стандартных типов механизмов см. в разделе KeyInfoFactory спецификации Стандартные имена алгоритмов безопасности Java.
provider — строковое имя поставщика
Возвращает:
новый KeyInfoFactory
Вызывает:
NoSuchProviderException — если указанный поставщик не зарегистрирован в списке поставщиков безопасности
NullPointerException — если mechanismType или provider имеют значение null
NoSuchMechanismException — если реализация KeyInfoFactory для указанного механизма недоступна у указанного поставщика
Внешние спецификации
  • Стандартные имена алгоритмов безопасности Java
См. также:
  • Provider

getInstance

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

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

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

Примечание по реализации:
Реализация JDK Reference Implementation дополнительно использует свойство 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 имеет значение null
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 имеет значение null
IllegalArgumentException — если content пуст
ClassCastException — если content содержит записи, тип которых отличается от XMLStructure

newKeyName

public abstract KeyName newKeyName(String name)
Создает KeyName из указанного имени.
Параметры:
name — имя, идентифицирующее ключ
Возвращает:
KeyName
Вызывает:
NullPointerException — если name имеет значение null

newKeyValue

public abstract KeyValue newKeyValue(PublicKey key) throws KeyException
Создает KeyValue из указанного открытого ключа.
Параметры:
key — открытый ключ
Возвращает:
KeyValue
Вызывает:
KeyException — если алгоритм key не распознан или не поддерживается этой KeyInfoFactory
NullPointerException — если key имеет значение null

newPGPData

public abstract PGPData newPGPData(byte[] keyId)
Создает PGPData из указанного идентификатора открытого ключа PGP.
Параметры:
keyId — идентификатор открытого ключа PGP, определенный в RFC 2440, раздел 11.2. Массив копируется для защиты от последующего изменения.
Возвращает:
PGPData
Вызывает:
NullPointerException — если keyId имеет значение null
IllegalArgumentException — если идентификатор ключа имеет неправильный формат

newPGPData

public abstract PGPData newPGPData(byte[] keyId, byte[] keyPacket, List<? extends XMLStructure> other)
Создает PGPData из указанного идентификатора открытого ключа PGP, необязательного пакета с материалом ключа и списка внешних элементов.
Параметры:
keyId — идентификатор открытого ключа PGP, определенный в RFC 2440, раздел 11.2. Массив копируется для защиты от последующего изменения.
keyPacket — пакет с материалом ключа PGP, определенный в RFC 2440, раздел 5.5. Массив копируется для защиты от последующего изменения. Может иметь значение null.
other — список объектов XMLStructure, представляющих элементы из внешнего пространства имен. Список копируется для защиты от последующего изменения. Может иметь значение null или быть пустым.
Возвращает:
PGPData
Вызывает:
NullPointerException — если keyId имеет значение null
IllegalArgumentException — если keyId или keyPacket имеет неправильный формат. Для keyPacket проверяется формат заголовка пакета и подтверждается, что его тег соответствует типу материала ключа. Содержимое и формат тела пакета не проверяются.
ClassCastException — если other содержит записи, тип которых отличается от XMLStructure

newPGPData

public abstract PGPData newPGPData(byte[] keyPacket, List<? extends XMLStructure> other)
Создает PGPData из указанного пакета с материалом ключа PGP и необязательного списка внешних элементов.
Параметры:
keyPacket — пакет с материалом ключа PGP, определенный в RFC 2440, раздел 5.5. Массив копируется для защиты от последующего изменения.
other — список объектов XMLStructure, представляющих элементы из внешнего пространства имен. Список копируется для защиты от последующего изменения. Может иметь значение null или быть пустым.
Возвращает:
PGPData
Вызывает:
NullPointerException — если keyPacket имеет значение null
IllegalArgumentException — если keyPacket имеет неправильный формат. Для keyPacket проверяется формат заголовка пакета и подтверждается, что его тег соответствует типу материала ключа. Содержимое и формат тела пакета не проверяются.
ClassCastException — если other содержит записи, тип которых отличается от XMLStructure

newRetrievalMethod

public abstract RetrievalMethod newRetrievalMethod(String uri)
Создает RetrievalMethod из указанного URI.
Параметры:
uri — URI, идентифицирующий извлекаемые сведения о KeyInfo
Возвращает:
RetrievalMethod
Вызывает:
NullPointerException — если uri имеет значение null
IllegalArgumentException — если uri не соответствует RFC 2396

newRetrievalMethod

public abstract RetrievalMethod newRetrievalMethod(String uri, String type, List<? extends Transform> transforms)
Создает RetrievalMethod из указанных параметров.
Параметры:
uri — URI, идентифицирующий извлекаемые сведения о KeyInfo
type — URI, идентифицирующий тип извлекаемых сведений о KeyInfo (может иметь значение null)
transforms — список объектов Transform. Список копируется для защиты от последующего изменения. Может иметь значение null или быть пустым.
Возвращает:
RetrievalMethod
Вызывает:
NullPointerException — если uri имеет значение null
IllegalArgumentException — если uri не соответствует RFC 2396
ClassCastException — если transforms содержит записи, тип которых отличается от Transform

newX509Data

public abstract X509Data newX509Data(List<?> content)
Создает X509Data, содержащий указанный список данных X.509.
Параметры:
content — список из одного или нескольких типов данных X.509. Допустимые типы: String (имена субъектов), byte[] (идентификаторы ключей субъектов), X509Certificate, X509CRL или XMLStructure (объекты X509IssuerSerial или элементы из внешнего пространства имен). Имена субъектов представляют собой различительные имена в строковом формате RFC 2253. Реализации ДОЛЖНЫ поддерживать ключевые слова типов атрибутов, определенные в RFC 2253 (CN, L, ST, O, OU, C, STREET, DC и UID). Реализации МОГУТ поддерживать дополнительные ключевые слова. Список копируется для защиты от последующего изменения.
Возвращает:
X509Data
Вызывает:
NullPointerException — если content имеет значение null
IllegalArgumentException — если content пуст, имя субъекта не соответствует RFC 2253 или одно из ключевых слов типов атрибутов не распознано.
ClassCastException — если content содержит записи, тип которых не входит в список допустимых типов, указанных выше

newX509IssuerSerial

public abstract X509IssuerSerial newX509IssuerSerial(String issuerName, BigInteger serialNumber)
Создает X509IssuerSerial из указанного различительного имени издателя X.500 и серийного номера.
Параметры:
issuerName — различительное имя издателя в строковом формате RFC 2253. Реализации ДОЛЖНЫ поддерживать ключевые слова типов атрибутов, определенные в RFC 2253 (CN, L, ST, O, OU, C, STREET, DC и UID). Реализации МОГУТ поддерживать дополнительные ключевые слова.
serialNumber — серийный номер
Возвращает:
X509IssuerSerial
Вызывает:
NullPointerException — если issuerName или serialNumber имеют значение null
IllegalArgumentException — если имя издателя не соответствует RFC 2253 или одно из ключевых слов типов атрибутов не распознано.

isFeatureSupported

public abstract boolean isFeatureSupported(String feature)
Указывает, поддерживается ли указанная функция.
Параметры:
feature — имя функции (в виде абсолютного URI)
Возвращает:
true, если указанная функция поддерживается, иначе false
Вызывает:
NullPointerException — если feature имеет значение null

getURIDereferencer

public abstract URIDereferencer getURIDereferencer()
Возвращает ссылку на URIDereferencer, используемый по умолчанию для разыменования URI в объектах RetrievalMethod.
Возвращает:
ссылку на URIDereferencer, используемый по умолчанию

unmarshalKeyInfo

public abstract KeyInfo unmarshalKeyInfo(XMLStructure xmlStructure) throws MarshalException
Десериализует новый экземпляр KeyInfo из зависящего от механизма экземпляра XMLStructure (например, DOMStructure).
Параметры:
xmlStructure — зависящая от механизма структура XML, из которой десериализуются сведения о ключе
Возвращает:
KeyInfo
Вызывает:
NullPointerException — если xmlStructure имеет значение null
ClassCastException — если тип xmlStructure не подходит для этой фабрики
MarshalException — если во время десериализации возникает неисправимая ошибка

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в документации Java SE, содержащей более подробные описания для разработчиков, обзоры концепций, определения терминов, обходные решения и рабочие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторские права © 1993, 2025, Oracle и/или ее аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/25/docs/api/java.xml.crypto/javax/xml/crypto/dsig/keyinfo/KeyInfoFactory.html

Spec-Zone.ru

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