Класс KeyInfoFactory

public abstract class KeyInfoFactory
extends Object

Фабрика для создания объектов KeyInfo с нуля или для разбора объекта KeyInfo из соответствующего XML-представления.

Каждый экземпляр KeyInfoFactory поддерживает определённый тип XML-механизма. Для создания KeyInfoFactory, вызовите один из статических методов getInstance, передав желаемый тип XML-механизма, например:

KeyInfoFactory factory = KeyInfoFactory.getInstance("DOM");

Объекты, создаваемые этой фабрикой, будут основаны на DOM и будут соответствовать требованиям межплатформенной совместимости DOM, как определено в разделе Требования к механизму DOM обзора API. Дополнительную информацию см. в документе Стандартные имена алгоритмов Java Security.

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

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

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

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

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

Доступность из нескольких потоков

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

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

С момента:
1.6

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

Модификатор Конструктор Описание
protected KeyInfoFactory()

Конструктор по умолчанию, для вызова подклассами.

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

Модификатор и тип Метод Описание
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"), как предоставленный указанным поставщиком.

String getMechanismType()

Возвращает тип механизма и представления XML, поддерживаемого этим KeyInfoFactory (например, "DOM").

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 и представления. Дополнительную информацию см. в документе Стандартные имена алгоритмов Java Security.
Возвращает:
новый KeyInfoFactory
Исключения:
NullPointerException - если mechanismType является null
NoSuchMechanismException - если ни один Provider не поддерживает реализацию KeyInfoFactory для указанного механизма
См. также:
Provider

getInstance

public static KeyInfoFactory getInstance(String mechanismType,
                                         Provider provider)

Возвращает KeyInfoFactory, который поддерживает затребованный механизм обработки XML и тип представления (например, "DOM"), предоставленный указанным поставщиком. Указанный объект Provider не обязательно должен быть зарегистрирован в списке поставщиков.

Параметры:
mechanismType - тип механизма обработки XML и представления. Дополнительную информацию см. в документе Стандартные имена алгоритмов Java Security.
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 и представления. Дополнительную информацию см. в документе Стандартные имена алгоритмов Java Security.
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 из указанного открытого ключа.

Параметры:
key - открытый ключ
Возвращает:
объект KeyValue
Исключения:
KeyException - если алгоритм открытого ключа не распознан или не поддерживается этим 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 или пустым.
Возвращает:
a 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 или пустым.
Возвращает:
a PGPData
Исключение:
NullPointerException — если keyPacket равен null
IllegalArgumentException — если keyPacket не имеет правильного формата. Для keyPacket, проверяется формат заголовка пакета и проверяется, что тег относится к типу данных ключа. Содержимое и формат тела пакета не проверяются.
ClassCastException — если other содержит элементы, не являющиеся объектами типа XMLStructure

newRetrievalMethod

public abstract RetrievalMethod newRetrievalMethod(String uri)

Создаёт RetrievalMethod из указанного URI.

Параметры:
uri — URI, идентифицирующий информацию KeyInfo для извлечения.
Возвращает:
a 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 или пустым.
Возвращает:
a 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). Реализации МОГУТ поддерживать дополнительные ключевые слова. Список защищён от копирования, чтобы предотвратить последующие изменения.
Возвращает:
a 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 — серийный номер
Возвращает:
an 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 из механически-специфической структуры XML (например, DOMStructure).

Параметры:
xmlStructure — механически-специфическая XML-структура для разбора keyinfo
Возвращает:
экземпляр KeyInfo
Исключение:
NullPointerException — если xmlStructure равен null
ClassCastException — если тип xmlStructure не подходит для этого фабричного метода
MarshalException — если во время разбора произошла непреодолимая ошибка

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

Spec-Zone .ru
спецификации, руководства, описания, API