Класс SignatureSpi
- java.lang.Object
-
- java.security.SignatureSpi
- Прямые известные подклассы:
- Signature
public abstract class SignatureSpi extends Object
Этот класс определяет интерфейс поставщика сервисов (SPI) для класса Signature, который используется для предоставления функциональности алгоритма цифровой подписи. Цифровые подписи используются для аутентификации и обеспечения целостности цифровых данных. .
Все абстрактные методы в этом классе должны быть реализованы каждым поставщиком криптографических сервисов, желающим предоставить реализацию определенного алгоритма подписи.
- См. также:
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 void |
engineSetParameter(AlgorithmParameterSpec params) Этот метод переопределяется поставщиками для инициализации этого движка подписи с указанным набором параметров. |
protected abstract void |
engineSetParameter(String param,
Object value) Устаревший. Заменён на |
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 — если нет.
- С момента:
- 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.