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