Класс 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
- Внешние спецификации
Краткое описание конструкторов
| Модификатор | Конструктор | Описание |
|---|---|---|
protected |
Конструктор по умолчанию, предназначенный для вызова подклассами. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
static KeyInfoFactory |
getInstance() |
Возвращает KeyInfoFactory, поддерживающий механизм обработки XML и тип представления по умолчанию («DOM»). |
static KeyInfoFactory |
getInstance |
Возвращает KeyInfoFactory, поддерживающий указанный механизм обработки XML и тип представления (например, «DOM»). |
static KeyInfoFactory |
getInstance |
Возвращает KeyInfoFactory, поддерживающий запрошенный механизм обработки XML и тип представления (например, «DOM»), предоставленные указанным поставщиком. |
static KeyInfoFactory |
getInstance |
Возвращает KeyInfoFactory, поддерживающий запрошенный механизм обработки XML и тип представления (например, «DOM»), предоставленные указанным поставщиком. |
final String |
getMechanismType() |
Возвращает тип механизма обработки XML и представления, поддерживаемый этим KeyInfoFactory (например, «DOM»). |
final Provider |
getProvider() |
Возвращает поставщика этого KeyInfoFactory. |
abstract URIDereferencer |
getURIDereferencer() |
Возвращает ссылку на URIDereferencer, который по умолчанию используется для разыменования URI в объектах RetrievalMethod. |
abstract boolean |
isFeatureSupported |
Указывает, поддерживается ли указанная функция. |
abstract KeyInfo |
newKeyInfo |
Создает KeyInfo, содержащий указанный список типов информации о ключах. |
abstract KeyInfo |
newKeyInfo |
Создает KeyInfo, содержащий указанный список типов информации о ключах и необязательный идентификатор. |
abstract KeyName |
newKeyName |
Создает KeyName из указанного имени. |
abstract KeyValue |
newKeyValue |
Создает KeyValue из указанного открытого ключа. |
abstract PGPData |
newPGPData |
Создает PGPData из указанного идентификатора открытого ключа PGP. |
abstract PGPData |
newPGPData |
Создает PGPData из указанного идентификатора открытого ключа PGP и необязательного пакета ключевого материала и списка внешних элементов. |
abstract PGPData |
newPGPData |
Создает PGPData из указанного пакета ключевого материала PGP и необязательного списка внешних элементов. |
abstract RetrievalMethod |
newRetrievalMethod |
Создает RetrievalMethod из указанного URI. |
abstract RetrievalMethod |
newRetrievalMethod |
Создает RetrievalMethod из указанных параметров. |
abstract X509Data |
newX509Data |
Создает X509Data, содержащий указанный список данных X.509. |
abstract X509IssuerSerial |
newX509IssuerSerial |
Создает X509IssuerSerial из указанного различительного имени издателя X.500 и серийного номера. |
abstract KeyInfo |
unmarshalKeyInfo |
Десериализует новый экземпляр KeyInfo из зависящего от механизма экземпляра XMLStructure (например, DOMStructure). |
Методы, объявленные в классе Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait | Модификатор и тип | Метод | Описание |
|---|---|---|
protected Object |
clone() |
Создает и возвращает копию этого объекта. |
boolean |
equals |
Указывает, является ли другой объект «равным» этому объекту. |
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 |
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного промежутка реального времени. |
final void |
wait |
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова 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.preferredSecurity, чтобы определить предпочтительный порядок поставщиков для указанного алгоритма. Он может отличаться от порядка поставщиков, возвращаемых методомSecurity.getProviders(). - Параметры:
-
mechanismType— тип механизма обработки XML и представления. Список стандартных типов механизмов см. в разделеKeyInfoFactoryспецификации стандартных имён алгоритмов безопасности Java. - Возвращает:
- новый
KeyInfoFactory - Вызывает исключения:
-
NullPointerException— еслиmechanismTypeимеет значениеnull -
NoSuchMechanismException— если ни одинProviderне поддерживает реализациюKeyInfoFactoryдля указанного механизма - Внешние спецификации
- См. также:
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 - Внешние спецификации
- См. также:
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для указанного механизма недоступна у указанного поставщика - Внешние спецификации
- См. также:
getInstance
public static KeyInfoFactory getInstance()
KeyInfoFactory, поддерживающий механизм обработки XML и тип представления по умолчанию ("DOM"). Этот метод использует стандартный механизм поиска поставщиков JCA для нахождения и создания экземпляра реализации KeyInfoFactory типа механизма по умолчанию. Он проходит по списку зарегистрированных поставщиков безопасности Provider, начиная с наиболее предпочтительного Provider. Возвращается новый объект KeyInfoFactory от первого Provider, поддерживающего механизм DOM.
Обратите внимание, что список зарегистрированных поставщиков можно получить с помощью метода Security.getProviders().
- Примечание по реализации:
- Реализация JDK Reference Implementation также использует свойство
jdk.security.provider.preferredSecurity, чтобы определить предпочтительный порядок поставщиков для указанного алгоритма. Он может отличаться от порядка поставщиков, возвращаемых методомSecurity.getProviders(). - Возвращает:
- новый
KeyInfoFactory - Вызывает исключения:
-
NoSuchMechanismException— если ни одинProviderне поддерживает реализациюKeyInfoFactoryдля механизма DOM - См. также:
getMechanismType
public final String getMechanismType()
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— значение XMLID(может быть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— если во время демаршалинга возникает неисправимая ошибка
© 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.