Spec-Zone.ru › OpenJDK 24

Класс SealedObject

java.lang.Object
javax.crypto.SealedObject
Все реализованные интерфейсы:
Serializable
public class SealedObject extends Object implements Serializable
Этот класс позволяет программисту создать объект и защитить его конфиденциальность с помощью криптографического алгоритма.

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

Обратите внимание, что объект Cipher должен быть полностью инициализирован с правильным алгоритмом, ключом, схемой заполнения и т.д., прежде чем он будет применён к SealedObject.

Исходный зашифрованный объект может быть восстановлен двумя способами:

  • с помощью метода getObject, принимающего объект Cipher.

    Этот метод требует полностью инициализированного объекта Cipher, инициализированного с использованием точно того же алгоритма, ключа, схемы заполнения и т.д., что и для шифрования объекта.

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

  • с помощью одного из методов getObject, принимающих объект Key.

    В этом подходе метод getObject создаёт объект шифра для соответствующего алгоритма дешифрования и инициализирует его заданным ключом дешифрования и параметрами алгоритма (если таковые имеются), которые были сохранены в зашифрованном объекте.

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

С:
1.4
См. также:
  • Cipher
  • Сериализованная форма

Краткое описание полей

Модификатор и тип Поле Описание
protected byte[] encodedParams
Криптографические параметры, используемые объектом шифрования, закодированы в стандартном формате.

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

SealedObject(Serializable object, Cipher c)
SealedObject(SealedObject so)
Модификатор Конструктор Описание
Создаёт SealedObject из любого Serializable объекта.
protected
Создаёт объект SealedObject из переданного SealedObject.

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

Модификатор и тип Метод Описание
final String getAlgorithm()
Возвращает алгоритм, который был использован для шифрования этого объекта.
final Object getObject(Key key)
Извлекает исходный (инкапсулированный) объект.
final Object getObject(Key key, String provider)
Извлекает исходный (инкапсулированный) объект.
final Object getObject(Cipher c)
Извлекает исходный (инкапсулированный) объект.

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

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

Подробное описание полей

encodedParams

protected byte[] encodedParams
Криптографические параметры, используемые объектом запечатывания Cipher, закодированные в стандартном формате.

То есть, Cipher.getParameters().getEncoded().

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

SealedObject

public SealedObject(Serializable object, Cipher c) throws IOException, IllegalBlockSizeException
Создает объект SealedObject из любого объекта Serializable.

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

Любые параметры алгоритма, которые могут быть использованы в процессе шифрования, сохраняются внутри нового объекта SealedObject.

Параметры:
object - объект, подлежащий запечатыванию; может быть null.
c - шифр, используемый для запечатывания объекта.
Исключения:
NullPointerException - если указанный шифр является null.
IOException - если произошла ошибка во время сериализации
IllegalBlockSizeException - если указанный шифр является блочным шифром, без указания заполнения, и общий размер входных данных (т.е., длина содержимого сериализованного объекта) не кратен размеру блока шифра

SealedObject

protected SealedObject(SealedObject so)
Создает объект SealedObject из переданного объекта SealedObject.
Параметры:
so - объект SealedObject
Исключения:
NullPointerException - если заданный объект запечатывания является null.

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

getAlgorithm

public final String getAlgorithm()
Возвращает алгоритм, который использовался для запечатывания этого объекта.
Возвращает:
алгоритм, который использовался для запечатывания этого объекта.

getObject

public final Object getObject(Key key) throws IOException, ClassNotFoundException, NoSuchAlgorithmException, InvalidKeyException
Извлекает исходный (вложенный) объект.

Этот метод создаёт шифр для алгоритма, который использовался в процессе запечатывания. Если пакет по умолчанию предоставляет реализацию этого алгоритма, используется объект Cipher, содержащий эту реализацию. Если алгоритм недоступен в пакете по умолчанию, производится поиск в других пакетах. Объект Cipher инициализируется для дешифрования, используя предоставленный key и параметры (если таковые имеются), использовавшиеся в процессе запечатывания.

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

Параметры:
key - ключ, используемый для распечатывания объекта.
Возвращает:
исходный объект.
Исключения:
IOException - если произошла ошибка во время десериализации.
ClassNotFoundException - если произошла ошибка во время десериализации.
NoSuchAlgorithmException - если алгоритм для распечатывания объекта недоступен.
InvalidKeyException - если заданный ключ не может быть использован для распечатывания объекта (например, он имеет неправильный алгоритм).
NullPointerException - если key имеет значение null.

getObject

public final Object getObject(Cipher c) throws IOException, ClassNotFoundException, IllegalBlockSizeException, BadPaddingException
Извлекает исходный (вложенный) объект.

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

Параметры:
c - шифр, используемый для распечатывания объекта
Возвращает:
исходный объект.
Исключения:
NullPointerException - если заданный шифр является null.
IOException - если произошла ошибка во время десериализации
ClassNotFoundException - если произошла ошибка во время десериализации
IllegalBlockSizeException - если заданный шифр является блочным шифром, без указания заполнения, и общий размер входных данных не кратен размеру блока шифра
BadPaddingException - если заданный шифр был инициализирован для дешифрования, и заполнение было указано, но входные данные не имеют правильных ожидаемых байтов заполнения

getObject

public final Object getObject(Key key, String provider) throws IOException, ClassNotFoundException, NoSuchAlgorithmException, NoSuchProviderException, InvalidKeyException
Извлекает исходный (вложенный) объект.

Этот метод создаёт шифр для алгоритма, который использовался в процессе запечатывания, используя реализацию этого алгоритма из предоставленного provider. Объект Cipher инициализируется для дешифрования, используя предоставленный key и параметры (если таковые имеются), использовавшиеся в процессе запечатывания.

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

Параметры:
key - ключ, используемый для распечатывания объекта.
provider - имя поставщика алгоритма для распечатывания объекта.
Возвращает:
исходный объект.
Исключения:
IllegalArgumentException - если заданный поставщик является null или пустым.
IOException - если произошла ошибка во время десериализации.
ClassNotFoundException - если произошла ошибка во время десериализации.
NoSuchAlgorithmException - если алгоритм для распечатывания объекта недоступен.
NoSuchProviderException - если заданный поставщик не настроен.
InvalidKeyException - если заданный ключ не может быть использован для распечатывания объекта (например, он имеет неправильный алгоритм).
NullPointerException - если key имеет значение null.

© 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://download.java.net/java/early_access/jdk24/docs/api/java.base/javax/crypto/SealedObject.html

Spec-Zone.ru

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