Spec-Zone.ru › OpenJDK 27

Класс SignatureSpi

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

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

Начиная с:
1.2
См. также:
  • 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)
Проверяет переданную подпись в указанном массиве байтов, начиная с указанного смещения.

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

equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Модификатор и тип Метод Описание
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()
Заставляет текущий поток ждать пробуждения, обычно посредством уведомления или прерывания.
final void wait(long timeoutMillis)
Заставляет текущий поток ждать пробуждения, обычно посредством уведомления или прерывания, либо до истечения заданного периода реального времени.
final void wait(long timeoutMillis, int nanos)
Заставляет текущий поток ждать пробуждения, обычно посредством уведомления или прерывания, либо до истечения заданного периода реального времени.

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

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

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по 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