Класс 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, 2023, 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/21/docs/api/java.base/java/security/SignatureSpi.html
engineSetParameter.