Класс 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() | Этот метод переопределяется поставщиками для возвращения параметров, используемых с этим движком подписи. |
protected abstract void | engineInitSign(PrivateKey privateKey) | Инициализирует этот объект подписи указанным закрытым ключом для операций подписи. |
protected void | engineInitSign(PrivateKey privateKey,
SecureRandom random) | Инициализирует этот объект подписи указанным закрытым ключом и источником случайных чисел для операций подписи. |
protected abstract void | engineInitVerify(PublicKey publicKey) | Инициализирует этот объект подписи указанным открытым ключом для операций проверки. |
protected abstract void | engineSetParameter(String param,
Object value) | Устаревшее. Заменено на engineSetParameter. |
protected void | engineSetParameter(AlgorithmParameterSpec params) | Этот метод переопределяется поставщиками для инициализации этого движка подписи заданным набором параметров. |
protected abstract byte[] | engineSign() | Возвращает байты подписи всех обновленных данных до текущего момента. |
protected int | engineSign(byte[] outbuf,
int offset,
int len) | Завершает операцию подписи и сохраняет полученные байты подписи в предоставленном буфере |
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 Инициализирует этот объект подписи с указанным открытым ключом для операций проверки.
- Параметры:
-
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)
Обновляет данные для подписи или проверки с использованием указанного объекта 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является недопустимым параметром для данного движка алгоритма подписи, параметр уже установлен и не может быть установлен повторно, возникает исключение безопасности и так далее.
engineSetParameter
protected void engineSetParameter(AlgorithmParameterSpec params)
throws InvalidAlgorithmParameterException Этот метод переопределяется поставщиками для инициализации движка подписи с заданным набором параметров.
- Параметры:
-
params- параметры - Исключения:
-
UnsupportedOperationException- если этот метод не переопределен поставщиком -
InvalidAlgorithmParameterException- если этот метод переопределен поставщиком, и заданные параметры неподходящие для этого движка подписи
engineGetParameters
protected AlgorithmParameters engineGetParameters()
Этот метод переопределяется поставщиками для возвращения параметров, используемых с этим движком подписи.
Если этот движок подписи был ранее инициализирован с параметрами (вызовом engineSetParameter метода), этот метод возвращает те же параметры. Если этот движок подписи не был инициализирован с параметрами, этот метод может вернуть сочетание значений параметров по умолчанию и случайным образом сгенерированных значений, если базовая реализация подписи поддерживает это и может успешно сгенерировать их. В противном случае возвращается 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. - См. также:
Cloneable
© 1993, 2020, 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/11/docs/api/java.base/java/security/SignatureSpi.html