Spec-Zone.ru › OpenJDK 27

Класс 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
Модификатор и тип Метод Описание
protected Object clone()
Создает и возвращает копию этого объекта.
boolean equals(Object obj)
Указывает, является ли другой объект «равным» этому объекту.
protected void finalize()
Устарело, планируется удаление: этот элемент API может быть удален в будущей версии.
Финализация устарела и может быть удалена в одном из будущих выпусков.
final Class<?> getClass()
Возвращает класс времени выполнения этого Object.
int hashCode()
Возвращает хеш-код этого объекта.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
String toString()
Возвращает строковое представление объекта.
final void wait()
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt.
final void wait(long timeoutMillis)
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного промежутка реального времени.
final void wait(long timeoutMillis, int nanos)
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного промежутка реального времени.

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

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, определённый в разделе 11.2 RFC 2440. Для защиты от последующего изменения массив клонируется.
Возвращает:
PGPData
Вызывает исключения:
NullPointerException — если keyId имеет значение null
IllegalArgumentException — если идентификатор ключа имеет неверный формат

newPGPData

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

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в документации Java SE, содержащей более подробные описания для разработчиков, обзоры концепций, определения терминов, обходные решения и рабочие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её аффилированных лиц в США и других странах.
Авторские права © 1993, 2026, 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.

Spec-Zone.ru

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