Spec-Zone .ru
спецификации, руководства, описания, API
|
public abstract class KeyAgreementSpi extends Object
KeyAgreement
class. Все абстрактные методы в этом class должны быть реализованы каждым провайдером криптографических служб, который хочет предоставить реализацию определенного алгоритма согласования ключей. Ключи, включенные в установление совместно используемого секрета, создаются одним из ключевых генераторов (KeyPairGenerator
или KeyGenerator
), a KeyFactory
, или в результате от промежуточной фазы протокола согласования ключей (engineDoPhase
).
Для каждого из корреспондентов в ключевом обмене, engineDoPhase
потребности, которые вызовут. Например, если ключевой обмен с одной другой стороной, engineDoPhase
потребности, которые вызовут однажды, с lastPhase
отметьте набор к true
. Если ключевой обмен с двумя другими сторонами, engineDoPhase
потребности, которые вызовут дважды, в первый раз устанавливая lastPhase
флаг к false
, и во второй раз, устанавливающий это в true
. Может быть любое число сторон, включенных в ключевой обмен.
KeyGenerator
, SecretKey
Конструктор и Описание |
---|
KeyAgreementSpi() |
Модификатор и Тип | Метод и Описание |
---|---|
protected abstract Key |
engineDoPhase(Key key, boolean lastPhase)
Выполняет следующую фазу этого согласования ключей с данным ключом, который был получен от одной из других сторон, включенных в это согласование ключей.
|
protected abstract byte[] |
engineGenerateSecret()
Генерирует совместно используемый секрет и возвращает это в новом буфере.
|
protected abstract int |
engineGenerateSecret(byte[] sharedSecret, int offset)
Генерирует совместно используемый секрет, и помещает это в буфер
sharedSecret , начало в offset включительно. |
protected abstract SecretKey |
engineGenerateSecret(String algorithm)
Создает совместно используемый секрет и возвращает это как объект секретного ключа требуемого типа алгоритма.
|
protected abstract void |
engineInit(Key key, AlgorithmParameterSpec params, SecureRandom random)
Инициализирует это согласование ключей с данным ключом, набором параметров алгоритма, и источником случайности.
|
protected abstract void |
engineInit(Key key, SecureRandom random)
Инициализирует это согласование ключей с данным ключом и источником случайности.
|
protected abstract void engineInit(Key key, SecureRandom random) throws InvalidKeyException
Если алгоритм согласования ключей требует случайных байтов, это получает их от данного источника случайности, random
. Однако, если базовая реализация алгоритма не требует никаких случайных байтов, random
игнорируется.
key
- частная информация стороны. Например, в случае согласования ключей Diffie-Hellman, это было бы собственным закрытым ключом стороны Diffie-Hellman.random
- источник случайностиInvalidKeyException
- если данный ключ является несоответствующим для этого согласования ключей, например, имеет неправильный тип или имеет несовместимый тип алгоритма.protected abstract void engineInit(Key key, AlgorithmParameterSpec params, SecureRandom random) throws InvalidKeyException, InvalidAlgorithmParameterException
key
- частная информация стороны. Например, в случае согласования ключей Diffie-Hellman, это было бы собственным закрытым ключом стороны Diffie-Hellman.params
- параметры согласования ключейrandom
- источник случайностиInvalidKeyException
- если данный ключ является несоответствующим для этого согласования ключей, например, имеет неправильный тип или имеет несовместимый тип алгоритма.InvalidAlgorithmParameterException
- если данные параметры являются несоответствующими для этого согласования ключей.protected abstract Key engineDoPhase(Key key, boolean lastPhase) throws InvalidKeyException, IllegalStateException
key
- ключ для этой фазы. Например, в случае Diffie-Hellman между 2 сторонами, это было бы открытым ключом другой стороны Diffie-Hellman.lastPhase
- флаг, который указывает, является ли это последней фазой этого согласования ключей.InvalidKeyException
- если данный ключ является несоответствующим для этой фазы.IllegalStateException
- если это согласование ключей не было инициализировано.protected abstract byte[] engineGenerateSecret() throws IllegalStateException
Этот метод сбрасывает это KeyAgreementSpi
объект, так, чтобы это могло быть снова использовано для дальнейших согласований ключей. Если это согласование ключей не повторно инициализируется с одним из engineInit
методы, та же самая частная информация и параметры алгоритма будут использоваться для последующих согласований ключей.
IllegalStateException
- если это согласование ключей еще не было завершеноprotected abstract int engineGenerateSecret(byte[] sharedSecret, int offset) throws IllegalStateException, ShortBufferException
sharedSecret
, начало в offset
включительно. Если sharedSecret
буфер является слишком маленьким, чтобы содержать результат, a ShortBufferException
бросается. В этом случае этот вызов должен быть повторен с большим буфером вывода.
Этот метод сбрасывает это KeyAgreementSpi
объект, так, чтобы это могло быть снова использовано для дальнейших согласований ключей. Если это согласование ключей не повторно инициализируется с одним из engineInit
методы, та же самая частная информация и параметры алгоритма будут использоваться для последующих согласований ключей.
sharedSecret
- буфер для совместно используемого секретаoffset
- смещение в sharedSecret
где совместно используемый секрет будет сохраненsharedSecret
IllegalStateException
- если это согласование ключей еще не было завершеноShortBufferException
- если данный буфер вывода является слишком небольшим, чтобы содержать секретprotected abstract SecretKey engineGenerateSecret(String algorithm) throws IllegalStateException, NoSuchAlgorithmException, InvalidKeyException
Этот метод сбрасывает это KeyAgreementSpi
объект, так, чтобы это могло быть снова использовано для дальнейших согласований ключей. Если это согласование ключей не повторно инициализируется с одним из engineInit
методы, та же самая частная информация и параметры алгоритма будут использоваться для последующих согласований ключей.
algorithm
- требуемый алгоритм секретного ключаIllegalStateException
- если это согласование ключей еще не было завершеноNoSuchAlgorithmException
- если требуемый алгоритм секретного ключа не доступенInvalidKeyException
- если совместно используемый материал секретного ключа не может использоваться, чтобы генерировать секретный ключ требуемого типа алгоритма (например, ключевой материал слишком короток),
Для дальнейшей ссылки API и документации разработчика, см. Java Документация SE. Та документация содержит более подробные, предназначенные разработчиком описания, с концептуальными краткими обзорами, определениями сроков, обходных решений, и рабочих примеров кода.
Авторское право © 1993, 2013, Oracle и/или его филиалы. Все права защищены.
Проект сборка-b92