Spec-Zone.ru › OpenJDK 8

Класс подписи

  • java.lang.Object
    • java.security.SignatureSpi
      • java.security.Signature

public abstract class Signature
extends SignatureSpi

Класс Signature используется для предоставления приложениям функциональности алгоритма цифровой подписи. Цифровые подписи используются для аутентификации и обеспечения целостности цифровых данных.

Алгоритм подписи может быть, среди прочих, стандартом NIST DSA, используя DSA и SHA-256. Алгоритм DSA, использующий алгоритм дайджеста сообщений SHA-256, может быть указан как SHA256withDSA. В случае RSA алгоритм подписи может быть указан, например, как SHA256withRSA. Имя алгоритма должно быть указано, так как по умолчанию его нет.

Объект Signature можно использовать для генерации и проверки цифровых подписей.

Существует три фазы использования объекта Signature для подписи данных или проверки подписи:

  1. Инициализация с помощью
    • открытого ключа, который инициализирует подпись для проверки (см. initVerify), или
    • закрытого ключа (и необязательно генератора случайных чисел Secure Random), который инициализирует подпись для подписи (см. initSign(PrivateKey) и initSign(PrivateKey, SecureRandom)).
  2. Обновление

    В зависимости от типа инициализации, это обновит байты, которые будут подписаны или проверены. См. методы update.

  3. Подпись или проверка подписи на всех обновленных байтах. См. методы sign и метод verify.

Обратите внимание, что этот класс является абстрактным и расширяет SignatureSpi по историческим причинам. Разработчики приложений должны учитывать только методы, определенные в этом Signature классе; все методы суперкласса предназначены для поставщиков криптографических услуг, которые хотят предоставить собственные реализации алгоритмов цифровой подписи.

Каждая реализация платформы Java должна поддерживать следующие стандартные Signature алгоритмы:

  • SHA1withDSA
  • SHA1withRSA
  • SHA256withRSA
Эти алгоритмы описаны в разделе Signature документации стандартных имен алгоритмов архитектуры Java Cryptography. Обратитесь к документации выпуска вашей реализации, чтобы узнать, какие другие алгоритмы поддерживаются.

Поля

Модификатор и тип Поле и описание
protected static int SIGN

Возможные значения state, указывающие, что этот объект подписи был инициализирован для подписи.

protected int state

Текущее состояние этого объекта подписи.

protected static int UNINITIALIZED

Возможные значения state, указывающие, что этот объект подписи еще не был инициализирован.

protected static int VERIFY

Возможные значения state, указывающие, что этот объект подписи был инициализирован для проверки.

Поля, унаследованные от класса java.security.SignatureSpi

appRandom

Краткое описание конструкторов

Модификатор Конструктор и описание
protected Signature(String algorithm)

Создает объект Signature для указанного алгоритма.

Краткое описание методов

Модификатор и тип Метод и описание
Object clone()

Возвращает клон, если реализация клонируема.

String getAlgorithm()

Возвращает имя алгоритма для этого объекта подписи.

static Signature getInstance(String algorithm)

Возвращает объект Signature, реализующий указанный алгоритм подписи.

static Signature getInstance(String algorithm, Provider provider)

Возвращает объект Signature, реализующий указанный алгоритм подписи.

static Signature getInstance(String algorithm, String provider)

Возвращает объект Signature, реализующий указанный алгоритм подписи.

Object getParameter(String param)

Устарело.

AlgorithmParameters getParameters()

Возвращает параметры, используемые с этим объектом подписи.

Provider getProvider()

Возвращает поставщика этого объекта подписи.

void initSign(PrivateKey privateKey)

Инициализирует этот объект для подписи.

void initSign(PrivateKey privateKey, SecureRandom random)

Инициализирует этот объект для подписи.

void initVerify(Certificate certificate)

Инициализирует этот объект для проверки, используя открытый ключ из заданного сертификата.

void initVerify(PublicKey publicKey)

Инициализирует этот объект для проверки.

void setParameter(AlgorithmParameterSpec params)

Инициализирует этот объект подписи набором параметров.

void setParameter(String param, Object value)

Устарело.

Используйте setParameter.

byte[] sign()

Возвращает байты подписи всех обновленных данных.

int sign(byte[] outbuf, int offset, int len)

Завершает операцию подписи и сохраняет полученные байты подписи в предоставленном буфере outbuf, начиная с offset.

String toString()

Возвращает строковое представление этого объекта подписи, предоставляя информацию, которая включает состояние объекта и имя используемого алгоритма.

void update(byte b)

Обновляет данные, подлежащие подписи или проверке, с помощью байта.

void update(byte[] data)

Обновляет данные, подлежащие подписи или проверке, используя указанный массив байтов.

void update(byte[] data, int off, int len)

Обновляет данные, подлежащие подписи или проверке, используя указанный массив байтов, начиная с указанного смещения.

void update(ByteBuffer data)

Обновляет данные, подлежащие подписи или проверке, используя указанный ByteBuffer.

boolean verify(byte[] signature)

Проверяет переданную подпись.

boolean verify(byte[] signature, int offset, int length)

Проверяет переданную подпись в указанном массиве байтов, начиная с указанного смещения.

Методы, унаследованные от класса java.security.SignatureSpi

engineGetParameter, engineGetParameters, engineInitSign, engineInitSign, engineInitVerify, engineSetParameter, engineSetParameter, engineSign, engineSign, engineUpdate, engineUpdate, engineUpdate, engineVerify, engineVerify

Методы, унаследованные от класса java.lang.Object

equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait

Поля

НЕИНИЦИАЛИЗИРОВАННЫЙ

protected static final int UNINITIALIZED

Возможная state величина, обозначающая, что этот объект подписи ещё не был инициализирован.

См. также:
Значения постоянных полей

ПОДПИСЬ

protected static final int SIGN

Возможная state величина, обозначающая, что этот объект подписи был инициализирован для подписи.

См. также:
Значения постоянных полей

ПРОВЕРКА

protected static final int VERIFY

Возможная state величина, обозначающая, что этот объект подписи был инициализирован для проверки.

См. также:
Значения постоянных полей

состояние

protected int state

Текущее состояние этого объекта подписи.

Конструкторы

Signature

protected Signature(String algorithm)

Создаёт объект Signature для указанного алгоритма.

Параметры:
algorithm - стандартное строковое имя алгоритма. См. раздел "Подпись" в документации по стандартным именам алгоритмов Java Cryptography Architecture для получения информации о стандартных именах алгоритмов.

Методы

getInstance

public static Signature getInstance(String algorithm)
                             throws NoSuchAlgorithmException

Возвращает объект Signature, реализующий указанный алгоритм подписи.

Этот метод проходит по списку зарегистрированных поставщиков безопасности, начиная с самого предпочтительного. Возвращается новый объект Signature, инкапсулирующий реализацию SignatureSpi от первого поставщика, который поддерживает указанный алгоритм.

Обратите внимание, что список зарегистрированных поставщиков можно получить с помощью метода Security.getProviders().

Параметры:
algorithm - стандартное имя запрашиваемого алгоритма. См. раздел "Подпись" в документации по стандартным именам алгоритмов Java Cryptography Architecture для получения информации о стандартных именах алгоритмов.
Возвращает:
новый объект Signature.
Исключения:
NoSuchAlgorithmException - если ни один поставщик не поддерживает реализацию Signature для указанного алгоритма.
См. также:
Provider

getInstance

public static Signature getInstance(String algorithm,
                                    String provider)
                             throws NoSuchAlgorithmException,
                                    NoSuchProviderException

Возвращает объект Signature, реализующий указанный алгоритм подписи.

Возвращается новый объект Signature, инкапсулирующий реализацию SignatureSpi от указанного поставщика. Указанный поставщик должен быть зарегистрирован в списке поставщиков безопасности.

Обратите внимание, что список зарегистрированных поставщиков можно получить с помощью метода Security.getProviders().

Параметры:
algorithm - имя запрашиваемого алгоритма. См. раздел "Подпись" в документации по стандартным именам алгоритмов Java Cryptography Architecture для получения информации о стандартных именах алгоритмов.
provider - имя поставщика.
Возвращает:
новый объект Signature.
Исключения:
NoSuchAlgorithmException - если реализация SignatureSpi для указанного алгоритма недоступна от указанного поставщика.
NoSuchProviderException - если указанный поставщик не зарегистрирован в списке поставщиков безопасности.
IllegalArgumentException - если имя поставщика null или пустое.
См. также:
Provider

getInstance

public static Signature getInstance(String algorithm,
                                    Provider provider)
                             throws NoSuchAlgorithmException

Возвращает объект Signature, реализующий указанный алгоритм подписи.

Возвращается новый объект Signature, инкапсулирующий реализацию SignatureSpi от указанного объекта Provider. Обратите внимание, что указанный объект Provider не обязательно должен быть зарегистрирован в списке поставщиков.

Параметры:
algorithm - имя запрашиваемого алгоритма. См. раздел "Подпись" в документации по стандартным именам алгоритмов Java Cryptography Architecture для получения информации о стандартных именах алгоритмов.
provider - поставщик.
Возвращает:
новый объект Signature.
Исключения:
NoSuchAlgorithmException - если реализация SignatureSpi для указанного алгоритма недоступна от указанного объекта Provider.
IllegalArgumentException - если поставщик null.
С тех пор:
1.4
См. также:
Provider

getProvider

public final Provider getProvider()

Возвращает поставщика этого объекта подписи.

Возвращает:
поставщик этого объекта подписи

initVerify

public final void initVerify(PublicKey publicKey)
                      throws InvalidKeyException

Инициализирует этот объект для проверки. Если этот метод вызывается снова с другим аргументом, он аннулирует действие этого вызова.

Параметры:
publicKey - открытый ключ субъекта, чья подпись будет проверяться.
Исключения:
InvalidKeyException - если ключ некорректен.

initVerify

public final void initVerify(Certificate certificate)
                      throws InvalidKeyException

Инициализирует этот объект для проверки, используя открытый ключ из данного сертификата.

Если сертификат типа X.509 и имеет поле расширения key usage, отмеченное как критическое, и значение поля расширения key usage подразумевает, что открытый ключ в сертификате и соответствующий ему закрытый ключ не должны использоваться для цифровых подписей, выбрасывается InvalidKeyException.

Параметры:
certificate - сертификат субъекта, чья подпись будет проверяться.
Исключения:
InvalidKeyException - если открытый ключ в сертификате закодирован неправильно или не содержит необходимой информации, или не может быть использован для целей цифровой подписи.
С тех пор:
1.3

initSign

public final void initSign(PrivateKey privateKey)
                    throws InvalidKeyException

Инициализирует этот объект для подписи. Если этот метод вызывается снова с другим аргументом, он аннулирует действие этого вызова.

Параметры:
privateKey - закрытый ключ субъекта, чья подпись будет генерироваться.
Исключения:
InvalidKeyException - если ключ некорректен.

initSign

public final void initSign(PrivateKey privateKey,
                           SecureRandom random)
                    throws InvalidKeyException

Инициализирует этот объект для подписи. Если этот метод вызывается снова с другим аргументом, он аннулирует действие этого вызова.

Параметры:
privateKey - закрытый ключ субъекта, чья подпись будет генерироваться.
random - источник случайности для этой подписи.
Исключения:
InvalidKeyException - если ключ некорректен.

sign

public final byte[] sign()
                  throws SignatureException

Возвращает байты подписи всей обновлённой данных. Формат подписи зависит от используемого алгоритма подписи.

Вызов этого метода сбрасывает этот объект подписи в состояние, в котором он находился перед предыдущей инициализацией для подписи с помощью initSign(PrivateKey). То есть, объект сбрасывается и доступен для генерации другой подписи от того же подписывающего субъекта, при необходимости, с помощью новых вызовов update и sign.

Возвращает:
байты подписи результата операции подписи.
Исключения:
SignatureException - если этот объект подписи не инициализирован должным образом или если этот алгоритм подписи не может обработать предоставленные входные данные.

sign

public final int sign(byte[] outbuf,
                      int offset,
                      int len)
               throws SignatureException

Завершает операцию подписи и сохраняет полученные байты подписи в предоставленном буфере outbuf, начиная с позиции offset.

Формат подписи зависит от используемого алгоритма подписи.

Этот объект подписи сбрасывается в своё начальное состояние (состояние после вызова одного из методов initSign) и может быть повторно использован для генерации дальнейших подписей с тем же закрытым ключом.

Параметры:
outbuf - буфер для результата подписи.
offset - смещение в outbuf, где хранится подпись.
len - количество байтов в outbuf, выделенных для подписи.
Возвращает:
количество байтов, помещенных в outbuf.
Исключения:
SignatureException - если этот объект подписи не инициализирован должным образом, если этот алгоритм подписи не может обработать предоставленные входные данные или если len меньше фактической длины подписи.
С тех пор:
1.2

verify

public final boolean verify(byte[] signature)
                     throws SignatureException

Проверяет переданную подпись.

Вызов этого метода сбрасывает этот объект подписи в состояние, в котором он находился перед предыдущей инициализацией для проверки с помощью вызова initVerify(PublicKey). То есть, объект сбрасывается и доступен для проверки другой подписи от субъекта, открытый ключ которого был указан в вызове initVerify.

Параметры:
signature - байты подписи для проверки.
Возвращает:
true, если подпись проверена, false — если нет.
Исключения:
SignatureException - если этот объект подписи не инициализирован должным образом, переданная подпись закодирована неправильно или имеет неправильный тип, если этот алгоритм подписи не может обработать предоставленные входные данные и т.д.

verify

public final boolean verify(byte[] signature,
                            int offset,
                            int length)
                     throws SignatureException

Проверяет переданную подпись в указанном массиве байтов, начиная с указанного смещения.

Вызов этого метода сбрасывает этот объект подписи в состояние, в котором он находился перед предыдущей инициализацией для проверки с помощью вызова initVerify(PublicKey). То есть, объект сбрасывается и доступен для проверки другой подписи от субъекта, открытый ключ которого был указан в вызове initVerify.

Параметры:
signature - байты подписи для проверки.
offset - смещение для начала в массиве байтов.
length - количество байтов для использования, начиная со смещения.
Возвращает:
true, если подпись была проверена, false — если нет.
Выбрасывает:
SignatureException - если объект подписи не инициализирован должным образом, переданная подпись закодирована неправильно или имеет неправильный тип, если алгоритм подписи не может обработать предоставленные входные данные и т. п.
IllegalArgumentException - если массив байтов signature null, или offset или length меньше 0, или сумма offset и length больше длины массива байтов signature.
С:
1.4

update

public final void update(byte b)
                  throws SignatureException

Обновляет данные для подписи или проверки с помощью байта.

Параметры:
b - байт для использования при обновлении.
Выбрасывает:
SignatureException - если объект подписи не инициализирован должным образом.

update

public final void update(byte[] data)
                  throws SignatureException

Обновляет данные для подписи или проверки, используя указанный массив байтов.

Параметры:
data - массив байтов для использования при обновлении.
Выбрасывает:
SignatureException - если объект подписи не инициализирован должным образом.

update

public final void update(byte[] data,
                         int off,
                         int len)
                  throws SignatureException

Обновляет данные для подписи или проверки, используя указанный массив байтов, начиная с указанного смещения.

Параметры:
data - массив байтов.
off - смещение для начала в массиве байтов.
len - количество байтов для использования, начиная со смещения.
Выбрасывает:
SignatureException - если объект подписи не инициализирован должным образом.

update

public final void update(ByteBuffer data)
                  throws SignatureException

Обновляет данные для подписи или проверки, используя указанный ByteBuffer. Обрабатывает data.remaining() байтов, начиная с data.position(). После возврата позиция буфера будет равна его пределу; его предел не изменится.

Параметры:
data - ByteBuffer
Выбрасывает:
SignatureException - если объект подписи не инициализирован должным образом.
С:
1.5

getAlgorithm

public final String getAlgorithm()

Возвращает имя алгоритма для данного объекта подписи.

Возвращает:
имя алгоритма для данного объекта подписи.

toString

public String toString()

Возвращает строковое представление объекта подписи, содержащее информацию о состоянии объекта и имени используемого алгоритма.

Переопределяет:
toString в классе Object
Возвращает:
строковое представление объекта подписи.

setParameter

@Deprecated
public final void setParameter(String param,
                                           Object value)
                                    throws InvalidParameterException

Устарело. Используйте setParameter.

Устанавливает указанный параметр алгоритма в указанное значение. Этот метод предоставляет общий механизм для установки различных параметров этого объекта. Параметр может быть любым настраиваемым параметром алгоритма, таким как размер параметра или источник случайных битов для генерации подписи (при необходимости), или указание выполнять или не выполнять определённое, но необязательное вычисление. Желательно использовать единую схему именования параметров, специфичных для алгоритма, но она не определена в данный момент.

Параметры:
param - строковый идентификатор параметра.
value - значение параметра.
Выбрасывает:
InvalidParameterException - если param является недопустимым параметром для данного алгоритма шифрования, параметр уже установлен и не может быть повторно установлен, возникает исключение безопасности и т. п.
См. также:
getParameter(java.lang.String)

setParameter

public final void setParameter(AlgorithmParameterSpec params)
                        throws InvalidAlgorithmParameterException

Инициализирует этот движок подписи указанным набором параметров.

Параметры:
params - параметры
Выбрасывает:
InvalidAlgorithmParameterException - если заданные параметры неприемлемы для данного движка подписи
См. также:
getParameters()

getParameters

public final AlgorithmParameters getParameters()

Возвращает параметры, используемые с этим объектом подписи.

Если эта подпись была ранее инициализирована с параметрами (вызовом метода setParameter), этот метод возвращает те же параметры. Если эта подпись не была инициализирована с параметрами, этот метод может вернуть комбинацию значений параметров по умолчанию и сгенерированных случайным образом, если реализация подписи поддерживает это и может успешно их сгенерировать. В противном случае возвращается null.

Возвращает:
используемые параметры подписи, или null
С:
1.4
См. также:
setParameter(AlgorithmParameterSpec)

getParameter

@Deprecated
public final Object getParameter(String param)
                                      throws InvalidParameterException

Устарело.

Возвращает значение указанного параметра алгоритма. Этот метод предоставляет общий механизм для получения различных параметров этого объекта. Параметр может быть любым настраиваемым параметром алгоритма, таким как размер параметра, или источник случайных битов для генерации подписи (если применимо), или указание выполнить или не выполнять определённое, но необязательное вычисление. Желательно использовать единую схему именования параметров, специфичных для алгоритма, но она не определена в данный момент.

Параметры:
param - строковое имя параметра.
Возвращает:
объект, представляющий значение параметра, или null , если его нет.
Выбрасывает:
InvalidParameterException - если param является недопустимым параметром для этого движка, или при попытке получить этот параметр возникает другое исключение.
См. также:
setParameter(String, Object)

clone

public Object clone()
             throws CloneNotSupportedException

Возвращает копию, если реализация поддерживает клонирование.

Переопределяет:
clone в классе SignatureSpi
Возвращает:
копию, если реализация поддерживает клонирование.
Выбрасывает:
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.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API