Spec-Zone.ru › OpenJDK 25

Класс EncryptedPrivateKeyInfo

java.lang.Object
javax.crypto.EncryptedPrivateKeyInfo
Все реализуемые интерфейсы:
DEREncodablePREVIEW
public non-sealed class EncryptedPrivateKeyInfo extends Object implements DEREncodablePREVIEW
Этот класс реализует тип EncryptedPrivateKeyInfo, определённый в PKCS #8.

Его определение ASN.1 выглядит следующим образом:

EncryptedPrivateKeyInfo ::=  SEQUENCE {
    encryptionAlgorithm   AlgorithmIdentifier,
    encryptedData   OCTET STRING }

AlgorithmIdentifier  ::=  SEQUENCE  {
    algorithm              OBJECT IDENTIFIER,
    parameters             ANY DEFINED BY algorithm OPTIONAL  }
С версии:
1.4
См. также:
  • PKCS8EncodedKeySpec

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

Конструктор Описание
EncryptedPrivateKeyInfo(byte[] encoded)
Создаёт EncryptedPrivateKeyInfo из заданного зашифрованного представления PKCS#8 ASN.1.
EncryptedPrivateKeyInfo(String algName, byte[] encryptedData)
Создаёт EncryptedPrivateKeyInfo из имени алгоритма шифрования и зашифрованных данных.
EncryptedPrivateKeyInfo(AlgorithmParameters algParams, byte[] encryptedData)
Создаёт EncryptedPrivateKeyInfo из параметров алгоритма шифрования и зашифрованных данных.

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

Модификатор и тип Метод Описание
static EncryptedPrivateKeyInfo encryptKey(PrivateKey key, char[] password)
Предварительная версия.
Создаёт и шифрует EncryptedPrivateKeyInfo на основе заданного PrivateKey и пароля.
static EncryptedPrivateKeyInfo encryptKey(PrivateKey key, char[] password, String algorithm, AlgorithmParameterSpec params, Provider provider)
Предварительная версия.
Создаёт и шифрует EncryptedPrivateKeyInfo на основе заданного PrivateKey.
static EncryptedPrivateKeyInfo encryptKey(PrivateKey key, Key encKey, String algorithm, AlgorithmParameterSpec params, Provider provider, SecureRandom random)
Предварительная версия.
Создаёт и шифрует EncryptedPrivateKeyInfo на основе заданного PrivateKey, используя encKey и заданные параметры.
String getAlgName()
Возвращает алгоритм шифрования.
AlgorithmParameters getAlgParameters()
Возвращает параметры алгоритма, используемые алгоритмом шифрования.
byte[] getEncoded()
Возвращает представление этого объекта в формате ASN.1.
byte[] getEncryptedData()
Возвращает зашифрованные данные.
PrivateKey getKey(char[] password)
Предварительная версия.
Извлекает из зашифрованных данных вложенный объект PrivateKey и возвращает его.
PrivateKey getKey(Key decryptKey, Provider provider)
Предварительная версия.
Извлекает из зашифрованных данных вложенный объект PrivateKey и возвращает его.
PKCS8EncodedKeySpec getKeySpec(Key decryptKey)
Извлекает из зашифрованных данных вложенный объект PKCS8EncodedKeySpec и возвращает его.
PKCS8EncodedKeySpec getKeySpec(Key decryptKey, String providerName)
Извлекает из зашифрованных данных вложенный объект PKCS8EncodedKeySpec и возвращает его.
PKCS8EncodedKeySpec getKeySpec(Key decryptKey, Provider provider)
Извлекает из зашифрованных данных вложенный объект PKCS8EncodedKeySpec и возвращает его.
PKCS8EncodedKeySpec getKeySpec(Cipher cipher)
Извлекает из зашифрованных данных вложенный объект PKCS8EncodedKeySpec и возвращает его.

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

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

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

EncryptedPrivateKeyInfo

public EncryptedPrivateKeyInfo(byte[] encoded) throws IOException
Создаёт EncryptedPrivateKeyInfo из заданного зашифрованного представления PKCS#8 ASN.1.
Параметры:
encoded — представление этого объекта в формате ASN.1. Содержимое массива копируется для защиты от последующих изменений.
Исключения:
NullPointerException — если encoded равно null.
IOException — если при разборе представления ASN.1 произошла ошибка.

EncryptedPrivateKeyInfo

public EncryptedPrivateKeyInfo(String algName, byte[] encryptedData) throws NoSuchAlgorithmException
Создаёт EncryptedPrivateKeyInfo из имени алгоритма шифрования и зашифрованных данных.

Примечание. В этом конструкторе в качестве значения параметров алгоритма будет использоваться null. Если у алгоритма шифрования есть параметры, значение которых не равно null, следует использовать другой конструктор, например EncryptedPrivateKeyInfo(AlgorithmParameters, byte[]).

Параметры:
algName — имя алгоритма шифрования. Сведения о стандартных именах алгоритмов Cipher см. в документе Стандартные имена алгоритмов безопасности Java.
encryptedData — зашифрованные данные. Содержимое encryptedData копируется при создании этого объекта для защиты от последующих изменений.
Исключения:
NullPointerException — если algName или encryptedData равно null.
IllegalArgumentException — если encryptedData пусто, то есть имеет нулевую длину.
NoSuchAlgorithmException — если указанный algName не поддерживается.
Внешние спецификации
  • Стандартные имена алгоритмов безопасности Java

EncryptedPrivateKeyInfo

public EncryptedPrivateKeyInfo(AlgorithmParameters algParams, byte[] encryptedData) throws NoSuchAlgorithmException
Создаёт EncryptedPrivateKeyInfo из параметров алгоритма шифрования и зашифрованных данных.
Параметры:
algParams — параметры алгоритма шифрования. algParams.getEncoded() должен возвращать байты в кодировке ASN.1 поля parameters компонента AlgorithmIdentifier типа EncryptedPrivateKeyInfo.
encryptedData — зашифрованные данные. Содержимое encryptedData копируется при создании этого объекта для защиты от последующих изменений.
Исключения:
NullPointerException — если algParams или encryptedData равно null.
IllegalArgumentException — если encryptedData пусто, то есть имеет нулевую длину.
NoSuchAlgorithmException — если указанное имя algName параметра algParams не поддерживается.

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

getAlgName

public String getAlgName()
Возвращает алгоритм шифрования.

Примечание. Если доступно соответствие, возвращается стандартное имя вместо имени, указанного в конструкторе. Сведения о стандартных именах алгоритмов Cipher см. в документе «Стандартные имена алгоритмов безопасности Java».

Возвращает:
имя алгоритма шифрования.
Внешние спецификации
  • Стандартные имена алгоритмов безопасности Java

getAlgParameters

public AlgorithmParameters getAlgParameters()
Возвращает параметры алгоритма, используемые алгоритмом шифрования.
Возвращает:
параметры алгоритма.

getEncryptedData

public byte[] getEncryptedData()
Возвращает зашифрованные данные.
Возвращает:
зашифрованные данные. При каждом вызове этого метода возвращается новый массив.

getKeySpec

public PKCS8EncodedKeySpec getKeySpec(Cipher cipher) throws InvalidKeySpecException
Извлекает из зашифрованных данных вложенный объект PKCS8EncodedKeySpec и возвращает его.
Примечание. Чтобы успешно извлечь вложенный объект PKCS8EncodedKeySpec, cipher необходимо инициализировать в режиме Cipher.DECRYPT_MODE или Cipher.UNWRAP_MODE с теми же ключом и параметрами, которые использовались для создания зашифрованных данных.
Параметры:
cipher — инициализированный объект Cipher, который будет использоваться для расшифрования зашифрованных данных.
Возвращает:
объект PKCS8EncodedKeySpec.
Исключения:
NullPointerException — если cipher равно null.
InvalidKeySpecException — если заданный шифр не подходит для зашифрованных данных или зашифрованные данные повреждены и не могут быть расшифрованы.

encryptKey

public static EncryptedPrivateKeyInfo encryptKey(PrivateKey key, char[] password, String algorithm, AlgorithmParameterSpec params, Provider provider)
encryptKey — предварительная версия API платформы Java.
Программы могут использовать encryptKey только при включённых функциях предварительного просмотра.
Функции предварительного просмотра могут быть удалены в будущей версии или стать постоянными функциями платформы Java.
Создаёт и шифрует EncryptedPrivateKeyInfo на основе заданного PrivateKey. Необходимо указать допустимый алгоритм шифрования на основе пароля (PBE) и пароль.

Подробные сведения о формате строки алгоритма PBE приведены в разделе Cipher спецификации стандартных имён алгоритмов безопасности Java.

Примечание по реализации:
Свойство безопасности jdk.epkcs8.defaultAlgorithm определяет алгоритм шифрования по умолчанию, а AlgorithmParameterSpec — значения алгоритмов по умолчанию для поставщика.
Параметры:
key — PrivateKey для шифрования
password — пароль, используемый для шифрования PBE. Этот массив будет клонирован перед использованием.
algorithm — алгоритм шифрования PBE. Если null, будет использоваться алгоритм по умолчанию. Однако значение null не допускается, если params не равно null.
params — AlgorithmParameterSpec, используемый при шифровании. Если null, будет использоваться значение поставщика по умолчанию.
provider — Provider будет использоваться для создания SecretKeyFactory PBE и операций шифрования с помощью Cipher. Если null, будет использоваться список поставщиков по умолчанию.
Возвращает:
объект EncryptedPrivateKeyInfo
Исключения:
IllegalArgumentException — при ошибках инициализации, связанных с аргументами, переданными методу
RuntimeException — при ошибке шифрования
NullPointerException — если ключ или пароль имеют значение null. Если params не равно null, когда algorithm равно null.
С версии:
25

encryptKey

public static EncryptedPrivateKeyInfo encryptKey(PrivateKey key, char[] password)
encryptKey — предварительная версия API платформы Java.
Программы могут использовать encryptKey только при включённых функциях предварительного просмотра.
Функции предварительного просмотра могут быть удалены в будущей версии или стать постоянными функциями платформы Java.
Создаёт и шифрует EncryptedPrivateKeyInfo на основе заданного PrivateKey и пароля. Используются алгоритм и параметры по умолчанию.
Примечание по реализации:
Свойство безопасности jdk.epkcs8.defaultAlgorithm определяет алгоритм шифрования по умолчанию, а AlgorithmParameterSpec — значения алгоритмов по умолчанию для поставщика.
Параметры:
key — PrivateKey для шифрования
password — пароль, используемый для шифрования PBE. Этот массив будет клонирован перед использованием.
Возвращает:
объект EncryptedPrivateKeyInfo
Исключения:
IllegalArgumentException — при ошибках инициализации, связанных с аргументами, переданными методу
RuntimeException — при ошибке шифрования
NullPointerException — если key или password равно null
С версии:
25

encryptKey

public static EncryptedPrivateKeyInfo encryptKey(PrivateKey key, Key encKey, String algorithm, AlgorithmParameterSpec params, Provider provider, SecureRandom random)
encryptKey — предварительная версия API платформы Java.
Программы могут использовать encryptKey только при включённых функциях предварительного просмотра.
Функции предварительного просмотра могут быть удалены в будущей версии или стать постоянными функциями платформы Java.
Создаёт и шифрует EncryptedPrivateKeyInfo на основе заданного PrivateKey, используя encKey и заданные параметры.
Примечание по реализации:
Свойство безопасности jdk.epkcs8.defaultAlgorithm определяет алгоритм шифрования по умолчанию, а AlgorithmParameterSpec — значения алгоритмов по умолчанию для поставщика.
Параметры:
key — PrivateKey для шифрования
encKey — Key на основе пароля (PBE), используемый для шифрования key.
algorithm — алгоритм шифрования PBE. Если null, будет использоваться алгоритм по умолчанию; однако значение null не допускается, если params не равно null.
params — AlgorithmParameterSpec, используемый при шифровании. Если null, будет использоваться список поставщиков по умолчанию.
provider — Provider используется для операции шифрования с помощью Cipher. Если null, будет использоваться список поставщиков по умолчанию.
random — экземпляр SecureRandom, используемый при шифровании. Если null, будет использоваться значение по умолчанию.
Возвращает:
объект EncryptedPrivateKeyInfo
Исключения:
IllegalArgumentException — при ошибках инициализации, связанных с аргументами, переданными методу
RuntimeException — при ошибке шифрования
NullPointerException — если key или encKey имеют значение null. Если params не равно null, algorithm не может иметь значение null.
С версии:
25

getKey

public PrivateKey getKey(char[] password) throws GeneralSecurityException
getKey — предварительная версия API платформы Java.
Программы могут использовать getKey только при включённых функциях предварительного просмотра.
Функции предварительного просмотра могут быть удалены в будущей версии или стать постоянными функциями платформы Java.
Извлекает из зашифрованных данных вложенный объект PrivateKey и возвращает его.
Параметры:
password — пароль, используемый для шифрования PBE. Этот массив будет клонирован перед использованием.
Возвращает:
объект PrivateKey
Исключения:
GeneralSecurityException — если при разборе или расшифровании зашифрованных данных либо создании объекта ключа произошла ошибка.
NullPointerException — если password равно null
С версии:
25

getKey

public PrivateKey getKey(Key decryptKey, Provider provider) throws GeneralSecurityException
getKey — предварительная версия API платформы Java.
Программы могут использовать getKey только при включённых функциях предварительного просмотра.
Функции предварительного просмотра могут быть удалены в будущей версии или стать постоянными функциями платформы Java.
Извлекает из зашифрованных данных вложенный объект PrivateKey и возвращает его.
Параметры:
decryptKey — ключ для расшифрования; он не может иметь значение null
provider — Provider, используемый для расшифрования с помощью Cipher и создания PrivateKey. Значение null приводит к использованию конфигурации поставщика по умолчанию.
Возвращает:
объект PrivateKey
Исключения:
GeneralSecurityException — если при разборе или расшифровании зашифрованных данных либо создании объекта ключа произошла ошибка.
NullPointerException — если decryptKey равно null
С версии:
25

getKeySpec

public PKCS8EncodedKeySpec getKeySpec(Key decryptKey) throws NoSuchAlgorithmException, InvalidKeyException
Извлекает из зашифрованных данных вложенный объект PKCS8EncodedKeySpec и возвращает его.
Параметры:
decryptKey — ключ, используемый для расшифрования зашифрованных данных.
Возвращает:
объект PKCS8EncodedKeySpec.
Исключения:
NullPointerException — если decryptKey равно null.
NoSuchAlgorithmException — если не удалось найти подходящий шифр для расшифрования зашифрованных данных.
InvalidKeyException — если decryptKey нельзя использовать для расшифрования зашифрованных данных или результат расшифрования не является допустимым PKCS8KeySpec.
С версии:
1.5

getKeySpec

public PKCS8EncodedKeySpec getKeySpec(Key decryptKey, String providerName) throws NoSuchProviderException, NoSuchAlgorithmException, InvalidKeyException
Извлекает из зашифрованных данных вложенный объект PKCS8EncodedKeySpec и возвращает его.
Параметры:
decryptKey — ключ, используемый для расшифрования зашифрованных данных.
providerName — имя поставщика, реализация шифра которого будет использоваться.
Возвращает:
объект PKCS8EncodedKeySpec.
Исключения:
NullPointerException — если decryptKey или providerName равно null.
NoSuchProviderException — если поставщик providerName не зарегистрирован.
NoSuchAlgorithmException — если не удалось найти подходящий шифр для расшифрования зашифрованных данных.
InvalidKeyException — если decryptKey нельзя использовать для расшифрования зашифрованных данных или результат расшифрования не является допустимым PKCS8KeySpec.
С версии:
1.5

getKeySpec

public PKCS8EncodedKeySpec getKeySpec(Key decryptKey, Provider provider) throws NoSuchAlgorithmException, InvalidKeyException
Извлекает из зашифрованных данных вложенный объект PKCS8EncodedKeySpec и возвращает его.
Параметры:
decryptKey — ключ, используемый для расшифрования зашифрованных данных.
provider — имя поставщика, реализация шифра которого будет использоваться.
Возвращает:
объект PKCS8EncodedKeySpec.
Исключения:
NullPointerException — если decryptKey или provider равно null.
NoSuchAlgorithmException — если не удалось найти подходящий шифр для расшифрования зашифрованных данных в provider.
InvalidKeyException — если decryptKey нельзя использовать для расшифрования зашифрованных данных или результат расшифрования не является допустимым PKCS8KeySpec.
С версии:
1.5

getEncoded

public byte[] getEncoded() throws IOException
Возвращает представление этого объекта в формате ASN.1.
Возвращает:
представление ASN.1. При каждом вызове этого метода возвращается новый массив.
Исключения:
IOException — если при создании представления ASN.1 произошла ошибка.

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в разделе Документация Java SE, содержащем более подробные описания для разработчиков, концептуальные обзоры, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её аффилированных лиц в США и других странах.
Авторские права © 1993, 2025, 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.
https://docs.oracle.com/en/java/javase/25/docs/api/java.base/javax/crypto/EncryptedPrivateKeyInfo.html

Spec-Zone.ru

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