Класс 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
- См. также:
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
EncryptedPrivateKeyInfo |
Создаёт EncryptedPrivateKeyInfo из заданного зашифрованного представления PKCS#8 ASN.1. |
EncryptedPrivateKeyInfo |
Создаёт EncryptedPrivateKeyInfo из имени алгоритма шифрования и зашифрованных данных. |
EncryptedPrivateKeyInfo |
Создаёт EncryptedPrivateKeyInfo из параметров алгоритма шифрования и зашифрованных данных. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
static EncryptedPrivateKeyInfo |
encryptKey |
Предварительная версия. Создаёт и шифрует EncryptedPrivateKeyInfo на основе заданного PrivateKey и пароля. |
static EncryptedPrivateKeyInfo |
encryptKey |
Предварительная версия. Создаёт и шифрует EncryptedPrivateKeyInfo на основе заданного PrivateKey. |
static EncryptedPrivateKeyInfo |
encryptKey |
Предварительная версия. Создаёт и шифрует EncryptedPrivateKeyInfo на основе заданного PrivateKey, используя encKey и заданные параметры. |
String |
getAlgName() |
Возвращает алгоритм шифрования. |
AlgorithmParameters |
getAlgParameters() |
Возвращает параметры алгоритма, используемые алгоритмом шифрования. |
byte[] |
getEncoded() |
Возвращает представление этого объекта в формате ASN.1. |
byte[] |
getEncryptedData() |
Возвращает зашифрованные данные. |
PrivateKey |
getKey |
Предварительная версия. Извлекает из зашифрованных данных вложенный объект PrivateKey и возвращает его. |
PrivateKey |
getKey |
Предварительная версия. Извлекает из зашифрованных данных вложенный объект PrivateKey и возвращает его. |
PKCS8EncodedKeySpec |
getKeySpec |
Извлекает из зашифрованных данных вложенный объект PKCS8EncodedKeySpec и возвращает его. |
PKCS8EncodedKeySpec |
getKeySpec |
Извлекает из зашифрованных данных вложенный объект PKCS8EncodedKeySpec и возвращает его. |
PKCS8EncodedKeySpec |
getKeySpec |
Извлекает из зашифрованных данных вложенный объект PKCS8EncodedKeySpec и возвращает его. |
PKCS8EncodedKeySpec |
getKeySpec |
Извлекает из зашифрованных данных вложенный объект PKCS8EncodedKeySpec и возвращает его. |
Подробное описание конструкторов
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 не поддерживается. - Внешние спецификации
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».
- Возвращает:
- имя алгоритма шифрования.
- Внешние спецификации
getAlgParameters
public AlgorithmParameters getAlgParameters()
- Возвращает:
- параметры алгоритма.
getEncryptedData
public byte[] getEncryptedData()
- Возвращает:
- зашифрованные данные. При каждом вызове этого метода возвращается новый массив.
getKeySpec
public PKCS8EncodedKeySpec getKeySpec(Cipher cipher) throws InvalidKeySpecException
Примечание. Чтобы успешно извлечь вложенный объект 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. 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будет использоваться для созданияSecretKeyFactoryPBE и операций шифрования с помощью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 только при включённых функциях предварительного просмотра.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 только при включённых функциях предварительного просмотра.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 только при включённых функциях предварительного просмотра.PrivateKey и возвращает его.- Параметры:
-
password— пароль, используемый для шифрования PBE. Этот массив будет клонирован перед использованием. - Возвращает:
- объект
PrivateKey - Исключения:
-
GeneralSecurityException— если при разборе или расшифровании зашифрованных данных либо создании объекта ключа произошла ошибка. -
NullPointerException— еслиpasswordравно null - С версии:
- 25
getKey
public PrivateKey getKey(Key decryptKey, Provider provider) throws GeneralSecurityException
getKey — предварительная версия API платформы Java. getKey только при включённых функциях предварительного просмотра.PrivateKey и возвращает его.- Параметры:
-
decryptKey— ключ для расшифрования; он не может иметь значениеnull -
provider—Provider, используемый для расшифрования с помощью Cipher и созданияPrivateKey. Значениеnullприводит к использованию конфигурации поставщика по умолчанию. - Возвращает:
- объект
PrivateKey - Исключения:
-
GeneralSecurityException— если при разборе или расшифровании зашифрованных данных либо создании объекта ключа произошла ошибка. -
NullPointerException— еслиdecryptKeyравно null - С версии:
- 25
getKeySpec
public PKCS8EncodedKeySpec getKeySpec(Key decryptKey) throws NoSuchAlgorithmException, InvalidKeyException
- Параметры:
-
decryptKey— ключ, используемый для расшифрования зашифрованных данных. - Возвращает:
- объект PKCS8EncodedKeySpec.
- Исключения:
-
NullPointerException— еслиdecryptKeyравноnull. -
NoSuchAlgorithmException— если не удалось найти подходящий шифр для расшифрования зашифрованных данных. -
InvalidKeyException— еслиdecryptKeyнельзя использовать для расшифрования зашифрованных данных или результат расшифрования не является допустимым PKCS8KeySpec. - С версии:
- 1.5
getKeySpec
public PKCS8EncodedKeySpec getKeySpec(Key decryptKey, String providerName) throws NoSuchProviderException, NoSuchAlgorithmException, InvalidKeyException
- Параметры:
-
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
- Параметры:
-
decryptKey— ключ, используемый для расшифрования зашифрованных данных. -
provider— имя поставщика, реализация шифра которого будет использоваться. - Возвращает:
- объект PKCS8EncodedKeySpec.
- Исключения:
-
NullPointerException— еслиdecryptKeyилиproviderравноnull. -
NoSuchAlgorithmException— если не удалось найти подходящий шифр для расшифрования зашифрованных данных вprovider. -
InvalidKeyException— еслиdecryptKeyнельзя использовать для расшифрования зашифрованных данных или результат расшифрования не является допустимым PKCS8KeySpec. - С версии:
- 1.5
getEncoded
public byte[] getEncoded() throws IOException
- Возвращает:
- представление ASN.1. При каждом вызове этого метода возвращается новый массив.
- Исключения:
-
IOException— если при создании представления ASN.1 произошла ошибка.
© 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
encryptKeyтолько при включённых функциях предварительного просмотра.