Класс KeyFactorySpi
public abstract class KeyFactorySpi extends Object
KeyFactory. Все абстрактные методы в этом классе должны быть реализованы каждым поставщиком криптографических сервисов, желающим предоставить реализацию фабрики ключей для определенного алгоритма. Фабрики ключей используются для преобразования ключей (непрозрачных криптографических ключей типа Key) в спецификации ключей (прозрачные представления базового ключевого материала), и наоборот.
Фабрики ключей двунаправленные. То есть они позволяют создать объект непрозрачного ключа из заданной спецификации ключа (ключевого материала) или получить базовый ключевой материал объекта ключа в подходящем формате.
Для одного и того же ключа может существовать несколько совместимых спецификаций ключа. Например, открытый ключ DSA может быть задан с использованием DSAPublicKeySpec или X509EncodedKeySpec. Фабрика ключей может использоваться для преобразования между совместимыми спецификациями ключей.
Поставщик должен документировать все спецификации ключей, поддерживаемые его фабрикой ключей.
- Since:
- 1.2
- See Also:
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
KeyFactorySpi() |
Конструктор для вызова подклассами. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
protected abstract PrivateKey |
engineGeneratePrivate |
Генерирует объект закрытого ключа из предоставленной спецификации ключа (ключевого материала). |
protected abstract PublicKey |
engineGeneratePublic |
Генерирует объект открытого ключа из предоставленной спецификации ключа (ключевого материала). |
protected abstract <T extends KeySpec> |
engineGetKeySpec |
Возвращает спецификацию (ключевой материал) данного объекта ключа. |
protected abstract Key |
engineTranslateKey |
Преобразует объект ключа, чей поставщик может быть неизвестен или потенциально недоверен, в соответствующий объект ключа этой фабрики ключей. |
Подробное описание конструкторов
KeyFactorySpi
public KeyFactorySpi()
Подробное описание методов
engineGeneratePublic
protected abstract PublicKey engineGeneratePublic(KeySpec keySpec) throws InvalidKeySpecException
- Параметры:
-
keySpec- спецификация (ключевой материал) открытого ключа. - Возвращает:
- открытый ключ.
- Исключения:
-
InvalidKeySpecException- если заданная спецификация ключа не подходит для этой фабрики ключей для создания открытого ключа.
engineGeneratePrivate
protected abstract PrivateKey engineGeneratePrivate(KeySpec keySpec) throws InvalidKeySpecException
- Параметры:
-
keySpec- спецификация (ключевой материал) закрытого ключа. - Возвращает:
- закрытый ключ.
- Исключения:
-
InvalidKeySpecException- если заданная спецификация ключа не подходит для этой фабрики ключей для создания закрытого ключа.
engineGetKeySpec
protected abstract <T extends KeySpec> T engineGetKeySpec(Key key, Class<T> keySpec) throws InvalidKeySpecException
keySpec идентифицирует класс спецификации, в котором должен быть возвращен ключевой материал. Например, это может быть DSAPublicKeySpec.class, чтобы указать, что ключевой материал должен быть возвращен в экземпляре класса DSAPublicKeySpec.- Параметры типа:
-
T- тип спецификации ключа, который должен быть возвращен - Параметры:
-
key- ключ. -
keySpec- класс спецификации, в котором должен быть возвращен ключевой материал. - Возвращает:
- базовую спецификацию ключа (ключевой материал) в экземпляре запрошенного класса спецификации.
- Исключения:
-
InvalidKeySpecException- если запрошенная спецификация ключа не подходит для данного ключа или с данным ключом невозможно работать (например, у данного ключа есть нераспознаваемый формат).
engineTranslateKey
protected abstract Key engineTranslateKey(Key key) throws InvalidKeyException
- Параметры:
-
key- ключ, чей поставщик неизвестен или недоверен. - Возвращает:
- преобразованный ключ.
- Исключения:
-
InvalidKeyException- если данный ключ не может быть обработан этой фабрикой ключей.
© 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.base/java/security/KeyFactorySpi.html