Spec-Zone.ru › OpenJDK 8

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

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

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

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

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

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

Доступ к нескольким потокам

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

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

Since:
1.6

Конструкторы

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

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

Методы

Модификатор и тип Метод и описание
static KeyInfoFactory getInstance()

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

static KeyInfoFactory getInstance(String mechanismType)

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

static KeyInfoFactory getInstance(String mechanismType, Provider provider)

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

static KeyInfoFactory getInstance(String mechanismType, String 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 content)

Создаёт KeyInfo, содержащий указанный список типов информации о ключах.

abstract KeyInfo newKeyInfo(List 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 other)

Создаёт PGPData по указанному идентификатору открытого ключа PGP, а также необязательному пакету ключей и списку внешних элементов.

abstract PGPData newPGPData(byte[] keyPacket, List other)

Создаёт PGPData по указанному пакету материала ключа PGP и необязательному списку внешних элементов.

abstract RetrievalMethod newRetrievalMethod(String uri)

Создаёт RetrievalMethod по указанному URI.

abstract RetrievalMethod newRetrievalMethod(String uri, String type, List 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().

Параметры:
mechanismType - тип механизма обработки XML и представления. Список стандартных типов механизмов см. в разделе «Поставщики служб» в обзоре API.
Возвращает:
новый KeyInfoFactory
Исключения:
NullPointerException - если mechanismType является null
NoSuchMechanismException - если ни один Provider не поддерживает реализацию KeyInfoFactory для указанного механизма
См. также:
Provider

getInstance

public static KeyInfoFactory getInstance(String mechanismType,
                                         Provider provider)

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

Параметры:
mechanismType - тип механизма обработки XML и представления. Список стандартных типов механизмов см. в разделе «Поставщики служб» в обзоре API.
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 и представления. Список стандартных типов механизмов см. в разделе «Поставщики служб» в обзоре API.
provider - строковое имя поставщика
Возвращает:
новый KeyInfoFactory
Исключения:
NoSuchProviderException - если указанный поставщик не зарегистрирован в списке поставщиков безопасности
NullPointerException - если mechanismType или provider являются null
NoSuchMechanismException - если реализация KeyInfoFactory для указанного механизма недоступна от указанного поставщика
См. также:
Provider

getInstance

public static KeyInfoFactory getInstance()

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

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

Обратите внимание, что список зарегистрированных поставщиков можно получить с помощью метода 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 content)

Создаёт KeyInfo, содержащий указанный список типов информации о ключе.

Параметры:
content - список одного или нескольких XMLStructure, представляющих типы информации о ключе. Список защищён от последующих изменений.
Возвращает:
KeyInfo
Исключения:
NullPointerException - если content является null
IllegalArgumentException - если content пуст
ClassCastException - если content содержит какие-либо записи, которые не являются типа XMLStructure

newKeyInfo

public abstract KeyInfo newKeyInfo(List 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 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 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 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 из механизм-специфичной XMLStructure (например, DOMStructure) экземпляра.

Параметры:
xmlStructure — механизм-специфичная XML-структура, из которой десериализовать keyinfo
Возвращает:
the 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.

Spec-Zone.ru

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