Spec-Zone.ru › OpenJDK 17

Класс 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 для списка стандартных типов механизмов.

Реализации 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 в Java Security Standard Algorithm Names Specification.
Возвращает:
новый 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 в Java Security Standard Algorithm Names Specification.
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 в Java Security Standard Algorithm Names Specification.
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 - список Transforms. Список защищён от последующих изменений. Может быть 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, 2021, 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/17/docs/api/java.xml.crypto/javax/xml/crypto/dsig/keyinfo/KeyInfoFactory.html

Spec-Zone.ru

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