Spec-Zone.ru › OpenJDK 8

Класс KeyPairGenerator

  • java.lang.Object
    • java.security.KeyPairGeneratorSpi
      • java.security.KeyPairGenerator

public abstract class KeyPairGenerator
extends KeyPairGeneratorSpi

Класс KeyPairGenerator используется для генерации пар открытых и закрытых ключей. Генераторы пар ключей создаются с помощью getInstance фабричных методов (статических методов, возвращающих экземпляры заданного класса).

Генератор пар ключей для определенного алгоритма создаёт пару открытого/закрытого ключа, которую можно использовать с этим алгоритмом. Он также ассоциирует параметры, специфичные для алгоритма, с каждым из сгенерированных ключей.

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

  • Инициализация, не зависящая от алгоритма

    Все генераторы пар ключей используют понятия размера ключа и источника случайных чисел. Размер ключа интерпретируется по-разному для разных алгоритмов (например, в случае алгоритма DSA размер ключа соответствует длине модуля). В этом классе KeyPairGenerator есть метод initialize, который принимает эти два универсальных типа аргументов. Также есть метод, принимающий только аргумент keysize, и использующий реализацию SecureRandom наиболее приоритетного установленного провайдера в качестве источника случайных чисел. (Если ни один из установленных провайдеров не предоставляет реализацию SecureRandom, используется системный источник случайных чисел.)

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

    Если алгоритмом является алгоритм DSA, а размер ключа (размер модуля) равен 512, 768 или 1024, то провайдер Sun использует набор предварительно вычисленных значений для параметров p, q, и g. Если размер модуля не равен одному из вышеупомянутых значений, провайдер Sun создаёт новый набор параметров. Другие провайдеры могут иметь предварительно вычисленные наборы параметров для большего числа размеров модуля, чем те, что указаны выше. Некоторые вообще могут не иметь списка предварительно вычисленных параметров и всегда создавать новые наборы параметров.

  • Инициализация, зависящая от алгоритма

    В ситуациях, когда уже существует набор параметров, специфичных для алгоритма (например, так называемые параметры сообщества в DSA), существуют два метода initialize, имеющие аргумент AlgorithmParameterSpec. Один из них также имеет аргумент SecureRandom, в то время как другой использует реализацию SecureRandom наиболее приоритетного установленного провайдера в качестве источника случайных чисел. (Если ни один из установленных провайдеров не предоставляет реализацию SecureRandom, используется системный источник случайных чисел.)

В случае, если клиент не инициализирует явно KeyPairGenerator (через вызов initialize метода), каждый провайдер должен предоставить (и задокументировать) значения по умолчанию для инициализации. Например, провайдер Sun использует значение по умолчанию для размера модуля (размера ключа) в 1024 бита.

Обратите внимание, что этот класс является абстрактным и расширяет KeyPairGeneratorSpi по историческим причинам. Разработчики приложений должны обращать внимание только на методы, определённые в этом KeyPairGenerator классе; все методы в суперклассе предназначены для поставщиков криптографических сервисов, которые хотят предоставить свои собственные реализации генераторов пар ключей.

Каждая реализация платформы Java обязана поддерживать следующие стандартные KeyPairGenerator алгоритмы и размеры ключей (в скобках):

  • DiffieHellman (1024)
  • DSA (1024)
  • RSA (1024, 2048)
Эти алгоритмы описаны в разделе KeyPairGenerator документации по стандартным именам алгоритмов Java Cryptography Architecture. Обратитесь к документации на релизе вашей реализации, чтобы узнать, какие другие алгоритмы поддерживаются.
См. также:
AlgorithmParameterSpec

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

Модификатор Конструктор и описание
protected KeyPairGenerator(String algorithm)

Создаёт объект KeyPairGenerator для указанного алгоритма.

Методы

Модификатор и тип Метод и описание
KeyPair generateKeyPair()

Генерирует пару ключей.

KeyPair genKeyPair()

Генерирует пару ключей.

String getAlgorithm()

Возвращает стандартное имя алгоритма для данного генератора пар ключей.

static KeyPairGenerator getInstance(String algorithm)

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

static KeyPairGenerator getInstance(String algorithm, Provider provider)

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

static KeyPairGenerator getInstance(String algorithm, String provider)

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

Provider getProvider()

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

void initialize(AlgorithmParameterSpec params)

Инициализирует генератор пар ключей с помощью указанного набора параметров и реализации SecureRandom наиболее приоритетного установленного провайдера в качестве источника случайных чисел.

void initialize(AlgorithmParameterSpec params, SecureRandom random)

Инициализирует генератор пар ключей с заданным набором параметров и источником случайных чисел.

void initialize(int keysize)

Инициализирует генератор пар ключей для определенного размера ключа с использованием набора параметров по умолчанию и реализации SecureRandom наиболее приоритетного установленного провайдера в качестве источника случайных чисел.

void initialize(int keysize, SecureRandom random)

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

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

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

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

KeyPairGenerator

protected KeyPairGenerator(String algorithm)

Создаёт объект KeyPairGenerator для указанного алгоритма.

Параметры:
algorithm - стандартное строковое имя алгоритма. См. раздел KeyPairGenerator в документации Java Cryptography Architecture по стандартным именам алгоритмов для получения информации о стандартных именах алгоритмов.

Методы

getAlgorithm

public String getAlgorithm()

Возвращает стандартное имя алгоритма для этого генератора пар ключей. См. раздел KeyPairGenerator в документации Java Cryptography Architecture по стандартным именам алгоритмов для получения информации о стандартных именах алгоритмов.

Возвращает:
стандартное строковое имя алгоритма.

getInstance

public static KeyPairGenerator getInstance(String algorithm)
                                    throws NoSuchAlgorithmException

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

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

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

Параметры:
algorithm - стандартное строковое имя алгоритма. См. раздел KeyPairGenerator в документации Java Cryptography Architecture по стандартным именам алгоритмов для получения информации о стандартных именах алгоритмов.
Возвращает:
новый объект KeyPairGenerator.
Исключения:
NoSuchAlgorithmException - если ни один поставщик не поддерживает реализацию KeyPairGeneratorSpi для указанного алгоритма.
См. также:
Provider

getInstance

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

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

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

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

Параметры:
algorithm - стандартное строковое имя алгоритма. См. раздел KeyPairGenerator в документации Java Cryptography Architecture по стандартным именам алгоритмов для получения информации о стандартных именах алгоритмов.
provider - строковое имя поставщика.
Возвращает:
новый объект KeyPairGenerator.
Исключения:
NoSuchAlgorithmException - если реализация KeyPairGeneratorSpi для указанного алгоритма недоступна от указанного поставщика.
NoSuchProviderException - если указанный поставщик не зарегистрирован в списке поставщиков безопасности.
IllegalArgumentException - если имя поставщика null или пустое.
См. также:
Provider

getInstance

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

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

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

Параметры:
algorithm - стандартное строковое имя алгоритма. См. раздел KeyPairGenerator в документации Java Cryptography Architecture по стандартным именам алгоритмов для получения информации о стандартных именах алгоритмов.
provider - поставщик.
Возвращает:
новый объект KeyPairGenerator.
Исключения:
NoSuchAlgorithmException - если реализация KeyPairGeneratorSpi для указанного алгоритма недоступна от указанного объекта Provider.
IllegalArgumentException - если указанный поставщик null.
С:
1.4
См. также:
Provider

getProvider

public final Provider getProvider()

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

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

initialize

public void initialize(int keysize)

Инициализирует генератор пар ключей для определённого размера ключа, используя набор параметров по умолчанию и реализацию SecureRandom поставщика с наивысшим приоритетом, установленного в качестве источника случайности. (Если ни один из установленных поставщиков не предоставляет реализацию SecureRandom, используется системный источник случайности.)

Параметры:
keysize - размер ключа. Это метрика, специфичная для алгоритма, такая как длина модуля, указанная в количестве бит.
Исключения:
InvalidParameterException - если keysize не поддерживается этим объектом KeyPairGenerator.

initialize

public void initialize(int keysize,
                       SecureRandom random)

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

Указано в:
initialize в классе KeyPairGeneratorSpi
Параметры:
keysize - размер ключа. Это метрика, специфичная для алгоритма, такая как длина модуля, указанная в количестве бит.
random - источник случайности.
Исключения:
InvalidParameterException - если keysize не поддерживается этим объектом KeyPairGenerator.
С:
1.2

initialize

public void initialize(AlgorithmParameterSpec params)
                throws InvalidAlgorithmParameterException

Инициализирует генератор пар ключей, используя заданный набор параметров и реализацию SecureRandom поставщика с наивысшим приоритетом, установленного в качестве источника случайности. (Если ни один из установленных поставщиков не предоставляет реализацию SecureRandom, используется системный источник случайности).

Этот конкретный метод добавлен в этот ранее определённый абстрактный класс. Этот метод вызывает метод KeyPairGeneratorSpi initialize, передавая ему params и источник случайности (полученный от поставщика с наивысшим приоритетом или системный, если ни один из установленных поставщиков не предоставляет его). Этот метод initialize всегда выбрасывает UnsupportedOperationException, если он не переопределён поставщиком.

Параметры:
params - набор параметров, используемых для генерации ключей.
Исключения:
InvalidAlgorithmParameterException - если заданные параметры неподходят для этого генератора пар ключей.
С:
1.2

initialize

public void initialize(AlgorithmParameterSpec params,
                       SecureRandom random)
                throws InvalidAlgorithmParameterException

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

Этот конкретный метод добавлен в этот ранее определённый абстрактный класс. Этот метод вызывает метод KeyPairGeneratorSpi initialize, передавая ему params и random. Этот метод initialize всегда выбрасывает UnsupportedOperationException, если он не переопределён поставщиком.

Переопределяет:
initialize в классе KeyPairGeneratorSpi
Параметры:
params - набор параметров, используемых для генерации ключей.
random - источник случайности.
Исключения:
InvalidAlgorithmParameterException - если заданные параметры неподходят для этого генератора пар ключей.
С:
1.2

genKeyPair

public final KeyPair genKeyPair()

Генерирует пару ключей.

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

Этот метод будет генерировать новую пару ключей каждый раз при вызове.

Этот метод функционально эквивалентен generateKeyPair.

Возвращает:
сгенерированную пару ключей
С:
1.2

generateKeyPair

public KeyPair generateKeyPair()

Генерирует пару ключей.

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

Этот метод будет генерировать новую пару ключей каждый раз при вызове.

Этот метод функционально эквивалентен genKeyPair.

Указано в:
generateKeyPair в классе KeyPairGeneratorSpi
Возвращает:
сгенерированную пару ключей

© 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