Класс SignatureSpi
- Прямые известные подклассы:
Signature
public abstract class SignatureSpi extends Object
Signature, который используется для предоставления функциональности алгоритма цифровой подписи. Цифровые подписи используются для аутентификации и обеспечения целостности цифровых данных. Все абстрактные методы в этом классе должны быть реализованы каждым поставщиком криптографических сервисов, желающим предоставить реализацию определенного алгоритма подписи.
- С тех пор:
- 1.2
- См. также:
Краткое описание полей
| Модификатор и тип | Поле | Описание |
|---|---|---|
protected SecureRandom |
appRandom |
Источник случайных чисел, заданный приложением. |
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
SignatureSpi() |
Конструктор для вызова подклассами. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
Object |
clone() |
Возвращает клон, если реализация поддерживает клонирование. |
protected abstract Object |
engineGetParameter |
Устарело. |
protected AlgorithmParameters |
engineGetParameters() |
Этот метод переопределяется поставщиками для возвращения параметров, используемых с этим движком подписи. |
protected abstract void |
engineInitSign |
Инициализирует этот объект подписи с заданным закрытым ключом для операций подписи. |
protected void |
engineInitSign |
Инициализирует этот объект подписи с заданным закрытым ключом и источником случайных чисел для операций подписи. |
protected abstract void |
engineInitVerify |
Инициализирует этот объект подписи с заданным открытым ключом для операций проверки. |
protected abstract void |
engineSetParameter |
Устарело. |
protected void |
engineSetParameter |
Этот метод переопределяется поставщиками для инициализации этого движка подписи заданным набором параметров. |
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
- Параметры:
-
publicKey- открытый ключ идентичности, чья подпись будет проверена. - Исключения:
-
InvalidKeyException- если ключ закодирован некорректно, отсутствуют параметры и т.п.
engineInitSign
protected abstract void engineInitSign(PrivateKey privateKey) throws InvalidKeyException
- Параметры:
-
privateKey- закрытый ключ идентичности, чья подпись будет сгенерирована. - Исключения:
-
InvalidKeyException- если ключ закодирован некорректно, отсутствуют параметры и т.п.
engineInitSign
protected void engineInitSign(PrivateKey privateKey, SecureRandom random) throws InvalidKeyException
Этот конкретный метод был добавлен в этот ранее определённый абстрактный класс. (Для обратной совместимости он не может быть абстрактным.)
- Параметры:
-
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является недопустимым параметром для данного алгоритма двигателя подписи, параметр уже установлен и не может быть установлен повторно, возникает исключение безопасности и т.д.
engineSetParameter
protected void engineSetParameter(AlgorithmParameterSpec params) throws InvalidAlgorithmParameterException
Этот метод переопределяется поставщиками для инициализации этого двигателя подписи указанным набором параметров.
- Параметры:
-
params- параметры - Исключения:
-
UnsupportedOperationException- если этот метод не переопределен поставщиком -
InvalidAlgorithmParameterException- если этот метод переопределен поставщиком и указанные параметры не подходят для этого двигателя подписи
engineGetParameters
protected AlgorithmParameters engineGetParameters()
Этот метод переопределяется поставщиками для возврата параметров, используемых с этим двигателем подписи.
Если этот движок подписи был инициализирован параметрами (вызовом engineSetParameter(AlgorithmParameterSpec) или engineSetParameter(String, Object)) и базовая реализация подписи поддерживает возврат параметров в виде AlgorithmParameters, этот метод возвращает те же параметры. Если параметры не были установлены, этот метод может вернуть комбинацию значений параметров по умолчанию и случайно сгенерированных значений, если базовая реализация подписи поддерживает это и может успешно их сгенерировать. В противном случае возвращается null.
- Возвращает:
- используемые параметры этого двигателя подписи или
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, 2021, 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/17/docs/api/java.base/java/security/SignatureSpi.html
engineSetParameter.