Класс KeyFactorySpi
public abstract class KeyFactorySpi extends Object
KeyFactory. Все абстрактные методы в этом классе должны быть реализованы каждым поставщиком криптографических сервисов, желающим предоставить реализацию фабрики ключей для определенного алгоритма. Фабрики ключей используются для преобразования ключей (непрозрачных криптографических ключей типа Key) в спецификации ключей (прозрачные представления базового ключа), и наоборот.
Фабрики ключей являются двунаправленными. То есть, они позволяют создать объект непрозрачного ключа из заданной спецификации ключа (материала ключа) или извлечь базовый материал ключа объекта ключа в подходящем формате.
Для одного и того же ключа может существовать несколько совместимых спецификаций ключа. Например, открытый ключ DSA может быть указан, используя DSAPublicKeySpec или X509EncodedKeySpec. Фабрика ключей может использоваться для преобразования между совместимыми спецификациями ключей.
Поставщик должен документировать все спецификации ключей, поддерживаемые его фабрикой ключей.
- Since:
- 1.2
- См. также:
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
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, 2023, 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/21/docs/api/java.base/java/security/KeyFactorySpi.html