Spec-Zone.ru › OpenJDK 24

Класс SignatureSpi

java.lang.Object
java.security.SignatureSpi
Direct Known Subclasses:
Signature
public abstract class SignatureSpi extends Object
Этот класс определяет интерфейс поставщика сервиса (SPI) для класса Signature, который используется для предоставления функциональности алгоритма цифровой подписи. Цифровые подписи используются для аутентификации и обеспечения целостности цифровых данных.

Все абстрактные методы в этом классе должны быть реализованы каждым поставщиком криптографических сервисов, желающим предоставить реализацию конкретного алгоритма подписи.

Since:
1.2
See Also:
  • Signature

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

Модификатор и тип Поле Описание
protected SecureRandom appRandom
Источник случайных чисел, указанный приложением.

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

Конструктор Описание
SignatureSpi()
Конструктор для вызова подклассами.

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

Модификатор и тип Метод Описание
Object clone()
Возвращает клон, если реализация поддерживает клонирование.
protected abstract Object engineGetParameter(String param)
Устаревший.
protected AlgorithmParameters engineGetParameters()
Возвращает параметры, используемые с этим объектом Signature.
protected abstract void engineInitSign(PrivateKey privateKey)
Инициализирует этот объект Signature заданным закрытым ключом для операций подписи.
protected void engineInitSign(PrivateKey privateKey, SecureRandom random)
Инициализирует этот объект Signature заданным закрытым ключом и источником случайных чисел для операций подписи.
protected abstract void engineInitVerify(PublicKey publicKey)
Инициализирует этот объект Signature заданным открытым ключом для операций проверки.
protected abstract void engineSetParameter(String param, Object value)
Устаревший.
Заменён на engineSetParameter.
protected void engineSetParameter(AlgorithmParameterSpec params)
Инициализирует этот объект Signature заданными значениями параметров.
protected abstract byte[] engineSign()
Возвращает байты подписи всех обновлённых до сих пор данных.
protected int engineSign(byte[] outbuf, int offset, int len)
Завершает операцию подписи и сохраняет полученные байты подписи в предоставленном буфере outbuf, начиная с позиции offset.
protected abstract void engineUpdate(byte b)
Обновляет данные для подписи или проверки, используя указанный байт.
protected abstract void engineUpdate(byte[] b, int off, int len)
Обновляет данные для подписи или проверки, используя указанный массив байтов, начиная с указанного смещения.
protected void engineUpdate(ByteBuffer input)
Обновляет данные для подписи или проверки, используя указанный ByteBuffer.
protected abstract boolean engineVerify(byte[] sigBytes)
Проверяет переданную подпись.
protected boolean engineVerify(byte[] sigBytes, int offset, int length)
Проверяет переданную подпись в указанном массиве байтов, начиная с указанного смещения.

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

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

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

appRandom

protected SecureRandom appRandom
Источник случайных чисел, заданный приложением.

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

SignatureSpi

public SignatureSpi()
Конструктор для вызова подклассами.

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

engineInitVerify

protected abstract void engineInitVerify(PublicKey publicKey) throws InvalidKeyException
Инициализирует этот объект Signature заданным открытым ключом для операций проверки подписи.
Параметры:
publicKey - открытый ключ идентификатора, чья подпись будет проверяться.
Исключения:
InvalidKeyException - если ключ закодирован неправильно, отсутствуют параметры и т. д.

engineInitSign

protected abstract void engineInitSign(PrivateKey privateKey) throws InvalidKeyException
Инициализирует этот объект Signature заданным закрытым ключом для операций подписи.
Параметры:
privateKey - закрытый ключ идентификатора, чья подпись будет сгенерирована.
Исключения:
InvalidKeyException - если ключ закодирован неправильно, отсутствуют параметры и т. д.

engineInitSign

protected void engineInitSign(PrivateKey privateKey, SecureRandom random) throws InvalidKeyException
Инициализирует этот объект Signature заданным закрытым ключом и источником случайных чисел для операций подписи.

Этот конкретный метод был добавлен в этот ранее определённый абстрактный класс. (Для обратной совместимости он не может быть абстрактным.)

Параметры:
privateKey - закрытый ключ идентификатора, чья подпись будет сгенерирована.
random - источник случайных чисел
Исключения:
InvalidKeyException - если ключ закодирован неправильно, отсутствуют параметры и т. д.

engineUpdate

protected abstract void engineUpdate(byte b) throws SignatureException
Обновляет данные для подписи или проверки с использованием указанного байта.
Параметры:
b - байт для обновления.
Исключения:
SignatureException - если движок не инициализирован должным образом.

engineUpdate

protected abstract void engineUpdate(byte[] b, int off, int len) throws SignatureException
Обновляет данные для подписи или проверки, используя указанный массив байтов, начиная с указанного смещения.
Параметры:
b - массив байтов
off - смещение для начала в массиве байтов
len - количество байтов для использования, начиная со смещения
Исключения:
SignatureException - если движок не инициализирован должным образом

engineUpdate

protected void engineUpdate(ByteBuffer input)
Обновляет данные для подписи или проверки, используя указанный ByteBuffer. Обрабатывает data.remaining() байты, начиная со смещения data.position(). По завершении метод установит позицию буфера равной его пределу; его предел не изменится.
Параметры:
input - ByteBuffer
С:
1.5

engineSign

protected abstract byte[] engineSign() throws SignatureException
Возвращает байты подписи всех данных, обновлённых до этого момента. Формат подписи зависит от используемого алгоритма подписи.
Возвращает:
байты подписи результата операции подписи.
Исключения:
SignatureException - если движок не инициализирован должным образом или если данный алгоритм подписи не может обработать предоставленные входные данные.

engineSign

protected int engineSign(byte[] outbuf, int offset, int len) throws SignatureException
Завершает операцию подписи и сохраняет полученные байты подписи в предоставленном буфере outbuf, начиная со смещения offset. Формат подписи зависит от используемого алгоритма подписи.

Реализация подписи сбрасывается в начальное состояние (состояние, в котором она была после вызова одного из методов engineInitSign) и может быть повторно использована для генерации дополнительных подписей с тем же закрытым ключом. Этот метод должен быть абстрактным, но мы оставляем его конкретным для бинарной совместимости. Знающие провайдеры должны переопределить этот метод.

Параметры:
outbuf - буфер для результата подписи.
offset - смещение в outbuf, где хранится подпись.
len - количество байтов в outbuf, выделенных для подписи. Как эта реализация по умолчанию, так и провайдер SUN не возвращают частичные дайджесты. Если значение этого параметра меньше фактической длины подписи, этот метод бросит исключение SignatureException. Этот параметр игнорируется, если его значение больше или равно фактической длине подписи.
Возвращает:
количество байтов, помещённых в outbuf
Исключения:
SignatureException - если движок не инициализирован должным образом, если этот алгоритм подписи не может обработать предоставленные входные данные или если len меньше фактической длины подписи.
С:
1.2

engineVerify

protected abstract boolean engineVerify(byte[] sigBytes) throws SignatureException
Проверяет предоставленную подпись.
Параметры:
sigBytes - байты подписи для проверки.
Возвращает:
true, если подпись была проверена, false - если нет.
Исключения:
SignatureException - если движок не инициализирован должным образом, предоставленная подпись закодирована неправильно или имеет неправильный тип, если этот алгоритм подписи не может обработать предоставленные входные данные и т. д.

engineVerify

protected boolean engineVerify(byte[] sigBytes, int offset, int length) throws SignatureException
Проверяет предоставленную подпись в указанном массиве байтов, начиная с указанного смещения.

Примечание: Подклассы должны переопределить реализацию по умолчанию.

Параметры:
sigBytes - байты подписи для проверки.
offset - смещение для начала в массиве байтов.
length - количество байтов для использования, начиная со смещения.
Возвращает:
true, если подпись была проверена, false - если нет.
Исключения:
SignatureException - если движок не инициализирован должным образом, предоставленная подпись закодирована неправильно или имеет неправильный тип, если этот алгоритм подписи не может обработать предоставленные входные данные и т. д.
С:
1.4

engineSetParameter

@Deprecated protected abstract void engineSetParameter(String param, Object value) throws InvalidParameterException
Устарело.
Заменено на engineSetParameter.
Устанавливает указанный параметр алгоритма в указанное значение. Этот метод предоставляет общий механизм, посредством которого можно задать различные параметры этого объекта. Параметр может быть любым устанавливаемым параметром алгоритма, например, размером параметра или источником случайных битов для генерации подписи (если это применимо), или указанием на выполнение определённого, но необязательного вычисления. Желательно, но не обязательно, использование единообразной схемы именования параметров, специфичной для каждого алгоритма.
Параметры:
param - строковый идентификатор параметра.
value - значение параметра.
Исключения:
InvalidParameterException - если param является недопустимым параметром для этого объекта Signature, параметр уже задан и не может быть задан повторно, возникает исключение безопасности и т. д.

engineSetParameter

protected void engineSetParameter(AlgorithmParameterSpec params) throws InvalidAlgorithmParameterException
Инициализирует этот объект Signature заданными параметрами.
Параметры:
params - параметры
Исключения:
UnsupportedOperationException - если этот метод не переопределён провайдером
InvalidAlgorithmParameterException - если этот метод переопределён провайдером, и заданные параметры неподходящи для этого объекта Signature

engineGetParameters

protected AlgorithmParameters engineGetParameters()
Возвращает параметры, используемые с этим объектом Signature.

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

Однако, если алгоритм подписи не поддерживает возвращение параметров как AlgorithmParameters, всегда возвращается null.

Возвращает:
параметры, используемые с этим объектом Signature, или null
Исключения:
UnsupportedOperationException - если этот метод не переопределён провайдером
С:
1.4

engineGetParameter

@Deprecated protected abstract Object engineGetParameter(String param) throws InvalidParameterException
Устарело.
Получает значение указанного параметра алгоритма. Этот метод предоставляет универсальный механизм, с помощью которого можно получить различные параметры этого объекта. Параметр может быть любым настраиваемым параметром алгоритма, например, размером параметра или источником случайных битов для генерации подписи (если это уместно), или указанием на выполнение специфического, но необязательного вычисления. Желательно использовать унифицированную схему именования параметров, специфичную для каждого алгоритма, но в настоящее время она не определена.
Параметры:
param - строковое имя параметра.
Возвращает:
объект, представляющий значение параметра, или null, если его нет.
Выбрасывает:
InvalidParameterException - если param является недопустимым параметром для этого движка, или при возникновении другой ошибки при попытке получить этот параметр.

clone

public Object clone() throws CloneNotSupportedException
Возвращает копию, если реализация поддерживает клонирование.
Переопределяет:
clone в классе Object
Возвращает:
копию, если реализация поддерживает клонирование.
Выбрасывает:
CloneNotSupportedException - если этот метод вызывается на реализации, которая не поддерживает Cloneable.
См. также:
  • Cloneable

© 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/java/security/SignatureSpi.html

Spec-Zone.ru

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