Spec-Zone.ru › OpenJDK 27

Класс KeyPairGenerator

java.lang.Object
java.security.KeyPairGeneratorSpi
java.security.KeyPairGenerator
public abstract class KeyPairGenerator extends KeyPairGeneratorSpi
Класс KeyPairGenerator используется для создания пар открытых и закрытых ключей. Генераторы пар ключей создаются с помощью фабричных методов getInstance (статических методов, возвращающих экземпляры заданного класса).

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

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

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

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

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

  • Инициализация, специфичная для алгоритма

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

Если клиент явно не инициализирует KeyPairGenerator (вызовом метода initialize), каждый поставщик должен предоставить и документировать инициализацию по умолчанию. Сведения о значениях KeyPairGenerator по умолчанию, используемых поставщиками JDK, см. в разделах «Ограничения на размер ключа» документа Поставщики JDK. Обратите внимание, что значения по умолчанию могут различаться у разных поставщиков. Кроме того, значение по умолчанию для поставщика может измениться в будущей версии. Поэтому рекомендуется явно инициализировать KeyPairGenerator, а не полагаться на значения по умолчанию, зависящие от поставщика.

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

Каждая реализация платформы Java должна поддерживать следующие стандартные алгоритмы KeyPairGenerator. Для алгоритма «EC» реализации должны поддерживать указанные в скобках эллиптические кривые. Для остальных алгоритмов реализации должны поддерживать указанные в скобках размеры ключей.

  • DiffieHellman (1024, 2048, 3072, 4096)
  • DSA (1024, 2048)
  • EC (secp256r1, secp384r1)
  • RSA (1024, 2048, 3072, 4096)
  • RSASSA-PSS (2048, 3072, 4096)
  • X25519
Эти алгоритмы описаны в разделе KeyPairGenerator спецификации стандартных имен алгоритмов безопасности Java. Сведения о поддерживаемых вашей реализацией дополнительных алгоритмах см. в документации к выпуску.
Начиная с:
1.1
Внешние спецификации
  • Стандартные имена алгоритмов безопасности Java
См. также:
  • AlgorithmParameterSpec

Краткое описание конструкторов

KeyPairGenerator(String algorithm)
Модификатор Конструктор Описание
protected
Создает объект KeyPairGenerator для указанного алгоритма.

Краткое описание методов

Модификатор и тип Метод Описание
KeyPair generateKeyPair()
Создает пару ключей.
final KeyPair genKeyPair()
Создает пару ключей.
String getAlgorithm()
Возвращает стандартное имя алгоритма для этого генератора пар ключей.
static KeyPairGenerator getInstance(String algorithm)
Возвращает объект KeyPairGenerator, создающий пары открытых и закрытых ключей для указанного алгоритма.
static KeyPairGenerator getInstance(String algorithm, String provider)
Возвращает объект KeyPairGenerator, создающий пары открытых и закрытых ключей для указанного алгоритма.
static KeyPairGenerator getInstance(String algorithm, Provider provider)
Возвращает объект KeyPairGenerator, создающий пары открытых и закрытых ключей для указанного алгоритма.
final Provider getProvider()
Возвращает поставщика этого объекта генератора пар ключей.
void initialize(int keysize)
Инициализирует генератор пар ключей для заданного размера ключа, используя набор параметров по умолчанию и реализацию SecureRandom поставщика с наивысшим приоритетом среди установленных поставщиков в качестве источника случайных чисел.
void initialize(int keysize, SecureRandom random)
Инициализирует генератор пар ключей для заданного размера ключа с указанным источником случайных чисел (и набором параметров по умолчанию).
void initialize(AlgorithmParameterSpec params)
Инициализирует генератор пар ключей с указанным набором параметров и реализацией SecureRandom поставщика с наивысшим приоритетом среди установленных поставщиков в качестве источника случайных чисел.
void initialize(AlgorithmParameterSpec params, SecureRandom random)
Инициализирует генератор пар ключей с указанным набором параметров и источником случайных чисел.

Методы, объявленные в классе Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Модификатор и тип Метод Описание
protected Object clone()
Создает и возвращает копию этого объекта.
boolean equals(Object obj)
Проверяет, «равен ли» этот объект другому объекту.
protected void finalize()
Устарело и будет удалено: этот элемент API подлежит удалению в будущей версии.
Финализация устарела и будет удалена в одном из будущих выпусков.
final Class<?> getClass()
Возвращает класс времени выполнения этого объекта Object.
int hashCode()
Возвращает хеш-код этого объекта.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
String toString()
Возвращает строковое представление объекта.
final void wait()
Приостанавливает выполнение текущего потока до его пробуждения, обычно в результате вызова notify или interrupt.
final void wait(long timeoutMillis)
Приостанавливает выполнение текущего потока до его пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного промежутка реального времени.
final void wait(long timeoutMillis, int nanos)
Приостанавливает выполнение текущего потока до его пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного промежутка реального времени.

Подробное описание конструкторов

KeyPairGenerator

protected KeyPairGenerator(String algorithm)
Создает объект KeyPairGenerator для указанного алгоритма.
Параметры:
algorithm — стандартное строковое имя алгоритма. Сведения о стандартных именах алгоритмов см. в разделе KeyPairGenerator спецификации стандартных имен алгоритмов безопасности Java.
Внешние спецификации
  • Стандартные имена алгоритмов безопасности Java

Подробное описание методов

getAlgorithm

public String getAlgorithm()
Возвращает стандартное имя алгоритма для этого генератора пар ключей. Сведения о стандартных именах алгоритмов см. в разделе KeyPairGenerator спецификации стандартных имен алгоритмов безопасности Java.
Возвращает:
стандартное строковое имя алгоритма.
Внешние спецификации
  • Стандартные имена алгоритмов безопасности Java

getInstance

public static KeyPairGenerator getInstance(String algorithm) throws NoSuchAlgorithmException
Возвращает объект KeyPairGenerator, создающий пары открытых и закрытых ключей для указанного алгоритма.

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

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

Примечание по реализации:
Реализация JDK Reference дополнительно использует свойство jdk.security.provider.preferred Security, чтобы определить предпочтительный порядок поставщиков для указанного алгоритма. Этот порядок может отличаться от порядка поставщиков, возвращаемого методом Security.getProviders().
Параметры:
algorithm — стандартное строковое имя алгоритма. Сведения о стандартных именах алгоритмов см. в разделе KeyPairGenerator спецификации стандартных имен алгоритмов безопасности Java.
Возвращает:
новый объект KeyPairGenerator
Исключения:
NoSuchAlgorithmException — если ни один Provider не поддерживает реализацию KeyPairGeneratorSpi для указанного алгоритма
NullPointerException — если algorithm равен null
Внешние спецификации
  • Стандартные имена алгоритмов безопасности Java
См. также:
  • Provider

getInstance

public static KeyPairGenerator getInstance(String algorithm, String provider) throws NoSuchAlgorithmException, NoSuchProviderException
Возвращает объект KeyPairGenerator, создающий пары открытых и закрытых ключей для указанного алгоритма.

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

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

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

getInstance

public static KeyPairGenerator getInstance(String algorithm, Provider provider) throws NoSuchAlgorithmException
Возвращает объект KeyPairGenerator, создающий пары открытых и закрытых ключей для указанного алгоритма.

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

Параметры:
algorithm — стандартное строковое имя алгоритма. Сведения о стандартных именах алгоритмов см. в разделе KeyPairGenerator спецификации стандартных имен алгоритмов безопасности Java.
provider — поставщик.
Возвращает:
новый объект KeyPairGenerator
Исключения:
IllegalArgumentException — если указанный поставщик равен null
NoSuchAlgorithmException — если указанный объект Provider не предоставляет реализацию KeyPairGeneratorSpi для указанного алгоритма
NullPointerException — если algorithm равен null
Начиная с:
1.4
Внешние спецификации
  • Стандартные имена алгоритмов безопасности Java
См. также:
  • 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
Возвращает:
созданную пару ключей

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в документации Java SE, содержащей более подробные описания для разработчиков, обзоры концепций, определения терминов, обходные решения и рабочие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторские права © 1993, 2026, Oracle и/или ее аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 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.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API