Spec-Zone .ru
спецификации, руководства, описания, API
|
public class Mac extends Object implements Cloneable
MAC обеспечивает способ проверить целостность информации, переданной или сохраненный в ненадежном носителе, основанном на секретном ключе. Как правило, коды аутентификации сообщений используются между двумя сторонами, которые совместно используют секретный ключ, чтобы проверить информации, переданной между этими сторонами.
Механизм MAC, который основан на криптографических хеш-функциях, упоминается как HMAC. HMAC может использоваться с любой криптографической хеш-функцией, например, MD5 или SHA 1, в комбинации с секретом совместно использованный ключ. HMAC определяется в RFC 2104.
Каждая реализация платформы Java обязана поддерживать следующий стандарт Mac
алгоритмы:
Модификатор | Конструктор и Описание |
---|---|
protected |
Mac(MacSpi macSpi, Provider provider, String algorithm)
Создает объект MAC.
|
Модификатор и Тип | Метод и Описание |
---|---|
Объект |
clone()
Возвращает клона, если реализация провайдера является cloneable.
|
byte[] |
doFinal()
Заканчивает работу MAC.
|
byte[] |
doFinal(byte[] input)
Обрабатывает данный массив байтов и заканчивает работу MAC.
|
void |
doFinal(byte[] output, int outOffset)
Заканчивает работу MAC.
|
Строка |
getAlgorithm()
Возвращает имя алгоритма этого
Mac объект. |
static Mac |
getInstance(String algorithm)
Возвраты a
Mac возразите, что реализует указанный алгоритм MAC. |
static Mac |
getInstance(String algorithm, Provider provider)
Возвраты a
Mac возразите, что реализует указанный алгоритм MAC. |
static Mac |
getInstance(String algorithm, String provider)
Возвраты a
Mac возразите, что реализует указанный алгоритм MAC. |
int |
getMacLength()
Возвращает длину MAC в байтах.
|
Провайдер |
getProvider()
Возвращает провайдера этого
Mac объект. |
void |
init(Key key)
Инициализирует это
Mac объект с данным ключом. |
void |
init(Key key, AlgorithmParameterSpec params)
Инициализирует это
Mac объект с данным ключом и параметрами алгоритма. |
void |
reset()
Сбросы это
Mac объект. |
void |
update(byte input)
Обрабатывает данный байт.
|
void |
update(byte[] input)
Обрабатывает данный массив байтов.
|
void |
update(byte[] input, int offset, int len)
Обрабатывает первое
len байты в input , запуск в offset включительно. |
void |
update(ByteBuffer input)
Процессы
input.remaining() байты в ByteBuffer input , запуск в input.position() . |
public final String getAlgorithm()
Mac
объект. Это - то же самое имя, которое было определено в одном из getInstance
вызовы, которые создали это Mac
объект.
Mac
объект.public static final Mac getInstance(String algorithm) throws NoSuchAlgorithmException
Mac
возразите, что реализует указанный алгоритм MAC. Этот метод пересекает список зарегистрированных поставщиков систем обеспечения безопасности, запускающихся с самого привилегированного Провайдера. Возвращается новый объект Mac инкапсуляция реализации Макспи от первого Провайдера, который поддерживает указанный алгоритм.
Отметьте, что список зарегистрированных провайдеров может быть получен через Security.getProviders()
метод.
algorithm
- стандартное имя требуемого алгоритма MAC. См. раздел Mac в Документации Имени Алгоритма Стандарта Архитектуры Криптографии Java для информации о стандартных именах алгоритма.Mac
объект.NoSuchAlgorithmException
- если никакой Провайдер не поддерживает реализацию Макспи для указанного алгоритма.Provider
public static final Mac getInstance(String algorithm, String provider) throws NoSuchAlgorithmException, NoSuchProviderException
Mac
возразите, что реализует указанный алгоритм MAC. Возвращается новый объект Mac инкапсуляция реализации Макспи от указанного провайдера. Указанный провайдер должен быть зарегистрирован в списке поставщика систем обеспечения безопасности.
Отметьте, что список зарегистрированных провайдеров может быть получен через Security.getProviders()
метод.
algorithm
- стандартное имя требуемого алгоритма MAC. См. раздел Mac в Документации Имени Алгоритма Стандарта Архитектуры Криптографии Java для информации о стандартных именах алгоритма.provider
- имя провайдера.Mac
объект.NoSuchAlgorithmException
- если реализация Макспи для указанного алгоритма не доступна от указанного провайдера.NoSuchProviderException
- если указанный провайдер не регистрируется в списке поставщика систем обеспечения безопасности.IllegalArgumentException
- если provider
нуль или пустой.Provider
public static final Mac getInstance(String algorithm, Provider provider) throws NoSuchAlgorithmException
Mac
возразите, что реализует указанный алгоритм MAC. Возвращается новый объект Mac инкапсуляция реализации Макспи от указанного объекта Провайдера. Отметьте, что указанный объект Провайдера не должен быть зарегистрирован в списке провайдера.
algorithm
- стандартное имя требуемого алгоритма MAC. См. раздел Mac в Документации Имени Алгоритма Стандарта Архитектуры Криптографии Java для информации о стандартных именах алгоритма.provider
- провайдер.Mac
объект.NoSuchAlgorithmException
- если реализация Макспи для указанного алгоритма не доступна от указанного объекта Провайдера.IllegalArgumentException
- если provider
нуль.Provider
public final Provider getProvider()
Mac
объект.Mac
объект.public final int getMacLength()
public final void init(Key key) throws InvalidKeyException
Mac
объект с данным ключом.key
- ключ.InvalidKeyException
- если данный ключ является несоответствующим для того, чтобы инициализировать этот MAC.public final void init(Key key, AlgorithmParameterSpec params) throws InvalidKeyException, InvalidAlgorithmParameterException
Mac
объект с данным ключом и параметрами алгоритма.key
- ключ.params
- параметры алгоритма.InvalidKeyException
- если данный ключ является несоответствующим для того, чтобы инициализировать этот MAC.InvalidAlgorithmParameterException
- если данные параметры алгоритма являются несоответствующими для этого MAC.public final void update(byte input) throws IllegalStateException
input
- входной байт, который будет обработан.IllegalStateException
- если это Mac
не был инициализирован.public final void update(byte[] input) throws IllegalStateException
input
- массив байтов, которые будут обработаны.IllegalStateException
- если это Mac
не был инициализирован.public final void update(byte[] input, int offset, int len) throws IllegalStateException
len
байты в input
, запуск в offset
включительно.input
- входной буфер.offset
- смещение в input
где ввод запускается.len
- число байтов, чтобы обработать.IllegalStateException
- если это Mac
не был инициализирован.public final void update(ByteBuffer input)
input.remaining()
байты в ByteBuffer input
, запуск в input.position()
. По возврату позиция буфера будет равна своему пределу; его предел не будет изменяться.input
- ByteBufferIllegalStateException
- если это Mac
не был инициализирован.public final byte[] doFinal() throws IllegalStateException
Звонок в этот метод сбрасывает это Mac
возразите против состояния, в котором это было когда ранее инициализировано через звонок init(Key)
или init(Key, AlgorithmParameterSpec)
. Таким образом, объект сбрасывается и доступен, чтобы генерировать другой MAC от того же самого ключа, при желании, через новые звонки update
и doFinal
. (Чтобы снова использовать это Mac
объект с различным ключом, это должно быть повторно инициализировано через звонок init(Key)
или init(Key, AlgorithmParameterSpec)
.
IllegalStateException
- если это Mac
не был инициализирован.public final void doFinal(byte[] output, int outOffset) throws ShortBufferException, IllegalStateException
Звонок в этот метод сбрасывает это Mac
возразите против состояния, в котором это было когда ранее инициализировано через звонок init(Key)
или init(Key, AlgorithmParameterSpec)
. Таким образом, объект сбрасывается и доступен, чтобы генерировать другой MAC от того же самого ключа, при желании, через новые звонки update
и doFinal
. (Чтобы снова использовать это Mac
объект с различным ключом, это должно быть повторно инициализировано через звонок init(Key)
или init(Key, AlgorithmParameterSpec)
.
Результат MAC сохранен в output
, запуск в outOffset
включительно.
output
- буфер, где результат MAC сохраненoutOffset
- смещение в output
где MAC сохраненShortBufferException
- если данный буфер вывода является слишком небольшим, чтобы содержать результатIllegalStateException
- если это Mac
не был инициализирован.public final byte[] doFinal(byte[] input) throws IllegalStateException
Звонок в этот метод сбрасывает это Mac
возразите против состояния, в котором это было когда ранее инициализировано через звонок init(Key)
или init(Key, AlgorithmParameterSpec)
. Таким образом, объект сбрасывается и доступен, чтобы генерировать другой MAC от того же самого ключа, при желании, через новые звонки update
и doFinal
. (Чтобы снова использовать это Mac
объект с различным ключом, это должно быть повторно инициализировано через звонок init(Key)
или init(Key, AlgorithmParameterSpec)
.
input
- данные в байтахIllegalStateException
- если это Mac
не был инициализирован.public final void reset()
Mac
объект. Звонок в этот метод сбрасывает это Mac
возразите против состояния, в котором это было когда ранее инициализировано через звонок init(Key)
или init(Key, AlgorithmParameterSpec)
. Таким образом, объект сбрасывается и доступен, чтобы генерировать другой MAC от того же самого ключа, при желании, через новые звонки update
и doFinal
. (Чтобы снова использовать это Mac
объект с различным ключом, это должно быть повторно инициализировано через звонок init(Key)
или init(Key, AlgorithmParameterSpec)
.
public final Object clone() throws CloneNotSupportedException
clone
в class Object
CloneNotSupportedException
- если это вызывают на делегате, который не поддерживает Cloneable
.Cloneable
Для дальнейшей ссылки API и документации разработчика, см. Java Документация SE. Та документация содержит более подробные, предназначенные разработчиком описания, с концептуальными краткими обзорами, определениями сроков, обходных решений, и рабочих примеров кода.
Авторское право © 1993, 2013, Oracle и/или его филиалы. Все права защищены.
Проект сборка-b92