Spec-Zone.ru › OpenJDK 21

Класс 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. Список стандартных типов механизмов см. в разделе KeyInfoFactory спецификации Стандартных имён алгоритмов Java Security.

Реализации 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 и поддерживаемого этим 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).

Методы, унаследованные от класса 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 является 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 из указанного открытого ключа.
Parameters:
key - открытый ключ
Returns:
a 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:
a 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:
a 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:
a 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:
a 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:
a 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:
a 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:
an 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) экземпляра.
Parameters:
xmlStructure - механически-специфичная структура XML, из которой десериализовать keyinfo
Returns:
the KeyInfo
Throws:
NullPointerException - если xmlStructure null
ClassCastException - если тип xmlStructure не подходит для этой фабрики
MarshalException - если во время десериализации произошла невосстановимая ошибка

© 1993, 2023, 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/21/docs/api/java.xml.crypto/javax/xml/crypto/dsig/keyinfo/KeyInfoFactory.html

Spec-Zone.ru

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