Класс MacSpi
java.lang.Object
javax.crypto.MacSpi
public abstract class MacSpi extends Object
Этот класс определяет интерфейс поставщика служб (SPI) для класса
Mac. Все абстрактные методы этого класса должны быть реализованы каждым поставщиком криптографических служб, который хочет предоставить реализацию определённого алгоритма MAC. Реализации могут реализовать интерфейс Cloneable.
- С версии:
- 1.4
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
MacSpi() |
Конструктор для вызова из подклассов. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
Object |
clone() |
Возвращает клон, если реализация поддерживает клонирование. |
protected abstract byte[] |
engineDoFinal() |
Завершает вычисление MAC и сбрасывает MAC для дальнейшего использования, сохраняя секретный ключ, с которым был инициализирован MAC. |
protected abstract int |
engineGetMacLength() |
Возвращает длину MAC в байтах. |
protected abstract void |
engineInit |
Инициализирует MAC указанным (секретным) ключом и параметрами алгоритма. |
protected abstract void |
engineReset() |
Сбрасывает MAC для дальнейшего использования, сохраняя секретный ключ, с которым был инициализирован MAC. |
protected abstract void |
engineUpdate |
Обрабатывает указанный байт. |
protected abstract void |
engineUpdate |
Обрабатывает первые len байт в input, начиная с offset включительно. |
protected void |
engineUpdate |
Обрабатывает input.remaining() байт в ByteBuffer input, начиная с input.position(). |
Подробное описание конструкторов
MacSpi
public MacSpi()
Конструктор для вызова из подклассов.
Подробное описание методов
engineGetMacLength
protected abstract int engineGetMacLength()
Возвращает длину MAC в байтах.
- Возвращает:
- длину MAC в байтах.
engineInit
protected abstract void engineInit(Key key, AlgorithmParameterSpec params) throws InvalidKeyException, InvalidAlgorithmParameterException
Инициализирует MAC указанным (секретным) ключом и параметрами алгоритма.
- Параметры:
-
key— (секретный) ключ. -
params— параметры алгоритма. - Исключения:
-
InvalidKeyException— если указанный ключ не подходит для инициализации этого MAC. -
InvalidAlgorithmParameterException— если указанные параметры алгоритма не подходят для этого MAC.
engineUpdate
protected abstract void engineUpdate(byte input)
Обрабатывает указанный байт.
- Параметры:
-
input— входной байт для обработки.
engineUpdate
protected abstract void engineUpdate(byte[] input, int offset, int len)
Обрабатывает первые
len байт в input, начиная с offset включительно.- Параметры:
-
input— входной буфер. -
offset— смещение вinput, с которого начинаются входные данные. -
len— количество байт для обработки.
engineUpdate
protected void engineUpdate(ByteBuffer input)
Обрабатывает
input.remaining() байт в ByteBuffer input, начиная с input.position(). По завершении позиция буфера будет равна его пределу; предел не изменится. Подклассам следует переопределить этот метод, если они могут обрабатывать ByteBuffer эффективнее, чем массивы байтов.
- Параметры:
-
input— ByteBuffer - Исключения:
-
NullPointerException— еслиinputимеет значение null - С версии:
- 1.5
engineDoFinal
protected abstract byte[] engineDoFinal()
Завершает вычисление MAC и сбрасывает MAC для дальнейшего использования, сохраняя секретный ключ, с которым был инициализирован MAC.
- Возвращает:
- результат MAC.
engineReset
protected abstract void engineReset()
Сбрасывает MAC для дальнейшего использования, сохраняя секретный ключ, с которым был инициализирован MAC.
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://docs.oracle.com/en/java/javase/25/docs/api/java.base/javax/crypto/MacSpi.html