Spec-Zone.ru › OpenJDK 8

Класс KeyFactory

  • java.lang.Object
    • java.security.KeyFactory

public class KeyFactory
extends Object

Заводы ключей используются для преобразования ключей (непрозрачных криптографических ключей типа Key) в спецификации ключей (прозрачные представления базового материала ключа), и наоборот.

Заводы ключей являются двунаправленными. То есть, они позволяют создавать непрозражный объект ключа из заданной спецификации ключа (материала ключа) или извлекать базовый материал ключа объекта ключа в подходящем формате.

Для одного и того же ключа может существовать несколько совместимых спецификаций ключей. Например, открытый ключ DSA может быть задан с использованием DSAPublicKeySpec или X509EncodedKeySpec. Завод ключей может использоваться для преобразования между совместимыми спецификациями ключей.

Следующий пример демонстрирует использование завода ключей для создания открытого ключа DSA из его кодирования. Предположим, Алиса получила цифровую подпись от Боба. Боб также отправил ей свой открытый ключ (в закодированном формате) для проверки подписи. Алиса выполняет следующие действия:

X509EncodedKeySpec bobPubKeySpec = new X509EncodedKeySpec(bobEncodedPubKey);
 KeyFactory keyFactory = KeyFactory.getInstance("DSA");
 PublicKey bobPubKey = keyFactory.generatePublic(bobPubKeySpec);
 Signature sig = Signature.getInstance("DSA");
 sig.initVerify(bobPubKey);
 sig.update(data);
 sig.verify(signature);

Каждая реализация Java-платформы обязана поддерживать следующие стандартные KeyFactory алгоритмы:

  • DiffieHellman
  • DSA
  • RSA
Эти алгоритмы описаны в разделе KeyFactory документации по стандартным именам алгоритмов Java Cryptography Architecture. Обратитесь к документации выпуска вашей реализации, чтобы узнать о поддержке других алгоритмов.
Since:
1.2
See Also:
Key, PublicKey, PrivateKey, KeySpec, DSAPublicKeySpec, X509EncodedKeySpec

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

Модификатор Конструктор и описание
protected KeyFactory(KeyFactorySpi keyFacSpi, Provider provider, String algorithm)

Создаёт объект KeyFactory.

Методы

Модификатор и тип Метод и описание
PrivateKey generatePrivate(KeySpec keySpec)

Генерирует объект закрытого ключа из предоставленной спецификации ключа (материала ключа).

PublicKey generatePublic(KeySpec keySpec)

Генерирует объект открытого ключа из предоставленной спецификации ключа (материала ключа).

String getAlgorithm()

Получает имя алгоритма, связанного с этим KeyFactory.

static KeyFactory getInstance(String algorithm)

Возвращает объект KeyFactory, который преобразует открытые/закрытые ключи указанного алгоритма.

static KeyFactory getInstance(String algorithm, Provider provider)

Возвращает объект KeyFactory, который преобразует открытые/закрытые ключи указанного алгоритма.

static KeyFactory getInstance(String algorithm, String provider)

Возвращает объект KeyFactory, который преобразует открытые/закрытые ключи указанного алгоритма.

<T extends KeySpec>
T
getKeySpec(Key key, Class<T> keySpec)

Возвращает спецификацию (материал ключа) данного объекта ключа.

Provider getProvider()

Возвращает поставщика этого объекта завода ключей.

Key translateKey(Key key)

Преобразует объект ключа, чей поставщик может быть неизвестен или потенциально недоверен, в соответствующий объект ключа этого завода ключей.

Методы, унаследованные от класса java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

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

KeyFactory

protected KeyFactory(KeyFactorySpi keyFacSpi,
                     Provider provider,
                     String algorithm)

Создаёт объект KeyFactory.

Parameters:
keyFacSpi - делегат
provider - поставщик
algorithm - имя алгоритма, связанное с этим KeyFactory

Методы

getInstance

public static KeyFactory getInstance(String algorithm)
                              throws NoSuchAlgorithmException

Возвращает объект KeyFactory, который преобразует открытые/закрытые ключи указанного алгоритма.

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

Обратите внимание, что список зарегистрированных поставщиков можно получить с помощью метода Security.getProviders().

Parameters:
algorithm - имя запрашиваемого алгоритма ключа. Сведения о стандартных именах алгоритмов см. в разделе KeyFactory документации по стандартным именам алгоритмов Java Cryptography Architecture
Returns:
новый объект KeyFactory.
Throws:
NoSuchAlgorithmException - если ни один поставщик не поддерживает реализацию KeyFactorySpi для указанного алгоритма.
See Also:
Provider

getInstance

public static KeyFactory getInstance(String algorithm,
                                     String provider)
                              throws NoSuchAlgorithmException,
                                     NoSuchProviderException

Возвращает объект KeyFactory, который преобразует открытые/закрытые ключи указанного алгоритма.

Возвращается новый объект KeyFactory, инкапсулирующий реализацию KeyFactorySpi от указанного поставщика. Указанный поставщик должен быть зарегистрирован в списке поставщиков безопасности.

Обратите внимание, что список зарегистрированных поставщиков можно получить с помощью метода Security.getProviders().

Parameters:
algorithm - имя запрашиваемого алгоритма ключа. Сведения о стандартных именах алгоритмов см. в разделе KeyFactory документации по стандартным именам алгоритмов Java Cryptography Architecture
provider - имя поставщика.
Returns:
новый объект KeyFactory.
Throws:
NoSuchAlgorithmException - если реализация KeyFactorySpi для указанного алгоритма недоступна от указанного поставщика.
NoSuchProviderException - если указанный поставщик не зарегистрирован в списке поставщиков безопасности.
IllegalArgumentException - если имя поставщика null или пустое.
See Also:
Provider

getInstance

public static KeyFactory getInstance(String algorithm,
                                     Provider provider)
                              throws NoSuchAlgorithmException

Возвращает объект KeyFactory, который преобразует открытые/закрытые ключи указанного алгоритма.

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

Parameters:
algorithm - имя запрашиваемого алгоритма ключа. Сведения о стандартных именах алгоритмов см. в разделе KeyFactory документации по стандартным именам алгоритмов Java Cryptography Architecture
provider - поставщик.
Returns:
новый объект KeyFactory.
Throws:
NoSuchAlgorithmException - если реализация KeyFactorySpi для указанного алгоритма недоступна от указанного объекта Provider.
IllegalArgumentException - если указанный поставщик null.
Since:
1.4
See Also:
Provider

getProvider

public final Provider getProvider()

Возвращает поставщика этого объекта завода ключей.

Returns:
поставщик этого объекта завода ключей

getAlgorithm

public final String getAlgorithm()

Получает имя алгоритма, связанного с этим KeyFactory.

Returns:
имя алгоритма, связанного с этим KeyFactory

generatePublic

public final PublicKey generatePublic(KeySpec keySpec)
                               throws InvalidKeySpecException

Генерирует объект открытого ключа из предоставленной спецификации ключа (материала ключа).

Parameters:
keySpec - спецификация (материал ключа) открытого ключа.
Returns:
открытый ключ.
Throws:
InvalidKeySpecException - если предоставленная спецификация ключа не подходит для создания открытого ключа этим заводом ключей.

generatePrivate

public final PrivateKey generatePrivate(KeySpec keySpec)
                                 throws InvalidKeySpecException

Генерирует объект закрытого ключа из предоставленной спецификации ключа (материала ключа).

Parameters:
keySpec - спецификация (материал ключа) закрытого ключа.
Returns:
закрытый ключ.
Throws:
InvalidKeySpecException - если предоставленная спецификация ключа не подходит для создания закрытого ключа этим заводом ключей.

getKeySpec

public final <T extends KeySpec> T getKeySpec(Key key,
                                              Class<T> keySpec)
                                       throws InvalidKeySpecException

Возвращает спецификацию (материал ключа) данного объекта ключа. keySpec идентифицирует класс спецификации, в котором должен быть возвращен материал ключа. Например, он может быть DSAPublicKeySpec.class, чтобы указать, что материал ключа должен быть возвращён в экземпляре класса DSAPublicKeySpec.

Type Parameters:
T - тип спецификации ключа, который должен быть возвращён
Parameters:
key - ключ.
keySpec - класс спецификации, в котором должен быть возвращен материал ключа.
Returns:
базовая спецификация ключа (материал ключа) в экземпляре запрошенного класса спецификации.
Throws:
InvalidKeySpecException - если запрошенная спецификация ключа не подходит для данного ключа или данный ключ не может быть обработан (например, у данного ключа неизвестный алгоритм или формат).

translateKey

public final Key translateKey(Key key)
                       throws InvalidKeyException

Преобразует объект ключа, чей поставщик может быть неизвестен или потенциально недоверен, в соответствующий объект ключа этого завода ключей.

Parameters:
key - ключ, чей поставщик неизвестен или потенциально недоверен.
Returns:
преобразованный ключ.
Throws:
InvalidKeyException - если данный ключ не может быть обработан этим заводом ключей.

© 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