Класс SignatureSpi
- Direct Known Subclasses:
Signature
public abstract class SignatureSpi extends Object
Signature, который используется для предоставления функциональности алгоритма цифровой подписи. Цифровые подписи используются для аутентификации и обеспечения целостности цифровых данных. Все абстрактные методы в этом классе должны быть реализованы каждым поставщиком криптографических сервисов, желающим предоставить реализацию конкретного алгоритма подписи.
- Since:
- 1.2
- See Also:
Краткое описание полей
| Модификатор и тип | Поле | Описание |
|---|---|---|
protected SecureRandom |
appRandom |
Источник случайных чисел, указанный приложением. |
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
SignatureSpi() |
Конструктор для вызова подклассами. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
Object |
clone() |
Возвращает клон, если реализация поддерживает клонирование. |
protected abstract Object |
engineGetParameter |
Устаревший. |
protected AlgorithmParameters |
engineGetParameters() |
Возвращает параметры, используемые с этим объектом Signature. |
protected abstract void |
engineInitSign |
Инициализирует этот объект Signature заданным закрытым ключом для операций подписи. |
protected void |
engineInitSign |
Инициализирует этот объект Signature заданным закрытым ключом и источником случайных чисел для операций подписи. |
protected abstract void |
engineInitVerify |
Инициализирует этот объект Signature заданным открытым ключом для операций проверки. |
protected abstract void |
engineSetParameter |
Устаревший. |
protected void |
engineSetParameter |
Инициализирует этот объект Signature заданными значениями параметров. |
protected abstract byte[] |
engineSign() |
Возвращает байты подписи всех обновлённых до сих пор данных. |
protected int |
engineSign |
Завершает операцию подписи и сохраняет полученные байты подписи в предоставленном буфере outbuf, начиная с позиции offset. |
protected abstract void |
engineUpdate |
Обновляет данные для подписи или проверки, используя указанный байт. |
protected abstract void |
engineUpdate |
Обновляет данные для подписи или проверки, используя указанный массив байтов, начиная с указанного смещения. |
protected void |
engineUpdate |
Обновляет данные для подписи или проверки, используя указанный ByteBuffer. |
protected abstract boolean |
engineVerify |
Проверяет переданную подпись. |
protected boolean |
engineVerify |
Проверяет переданную подпись в указанном массиве байтов, начиная с указанного смещения. |
Подробное описание полей
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)
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. - См. также:
© 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
engineSetParameter.