Spec-Zone .ru
спецификации, руководства, описания, API
|
public class KeyAgreement extends Object
Ключи, включенные в установление совместно используемого секрета, создаются одним из ключевых генераторов (KeyPairGenerator
или KeyGenerator
), a KeyFactory
, или в результате от промежуточной фазы протокола согласования ключей.
Для каждого из корреспондентов в ключевом обмене, doPhase
потребности, которые вызовут. Например, если этот ключевой обмен с одной другой стороной, doPhase
потребности, которые вызовут однажды, с lastPhase
отметьте набор к true
. Если этот ключевой обмен с двумя другими сторонами, doPhase
потребности, которые вызовут дважды, в первый раз устанавливая lastPhase
флаг к false
, и во второй раз, устанавливающий это в true
. Может быть любое число сторон, включенных в ключевой обмен.
Каждая реализация платформы Java обязана поддерживать следующий стандарт KeyAgreement
алгоритм:
KeyGenerator
, SecretKey
Модификатор | Конструктор и Описание |
---|---|
protected |
KeyAgreement(KeyAgreementSpi keyAgreeSpi, Provider provider, String algorithm)
Создает объект KeyAgreement.
|
Модификатор и Тип | Метод и Описание |
---|---|
Ключ |
doPhase(Key key, boolean lastPhase)
Выполняет следующую фазу этого согласования ключей с данным ключом, который был получен от одной из других сторон, включенных в это согласование ключей.
|
byte[] |
generateSecret()
Генерирует совместно используемый секрет и возвращает это в новом буфере.
|
int |
generateSecret(byte[] sharedSecret, int offset)
Генерирует совместно используемый секрет, и помещает это в буфер
sharedSecret , начало в offset включительно. |
SecretKey |
generateSecret(String algorithm)
Создает совместно используемый секрет и возвращает это как a
SecretKey объект указанного алгоритма. |
Строка |
getAlgorithm()
Возвращает имя алгоритма этого
KeyAgreement объект. |
static KeyAgreement |
getInstance(String algorithm)
Возвраты a
KeyAgreement возразите, что реализует указанный алгоритм согласования ключей. |
static KeyAgreement |
getInstance(String algorithm, Provider provider)
Возвраты a
KeyAgreement возразите, что реализует указанный алгоритм согласования ключей. |
static KeyAgreement |
getInstance(String algorithm, String provider)
Возвраты a
KeyAgreement возразите, что реализует указанный алгоритм согласования ключей. |
Провайдер |
getProvider()
Возвращает провайдера этого
KeyAgreement объект. |
void |
init(Key key)
Инициализирует это согласование ключей с данным ключом, который обязан содержать все параметры алгоритма, требуемые для этого согласования ключей.
|
void |
init(Key key, AlgorithmParameterSpec params)
Инициализирует это согласование ключей с данным ключом и набором параметров алгоритма.
|
void |
init(Key key, AlgorithmParameterSpec params, SecureRandom random)
Инициализирует это согласование ключей с данным ключом, набором параметров алгоритма, и источником случайности.
|
void |
init(Key key, SecureRandom random)
Инициализирует это согласование ключей с данным ключом и источником случайности.
|
protected KeyAgreement(KeyAgreementSpi keyAgreeSpi, Provider provider, String algorithm)
keyAgreeSpi
- делегатprovider
- провайдерalgorithm
- алгоритмpublic final String getAlgorithm()
KeyAgreement
объект. Это - то же самое имя, которое было определено в одном из getInstance
вызовы, которые создали это KeyAgreement
объект.
KeyAgreement
объект.public static final KeyAgreement getInstance(String algorithm) throws NoSuchAlgorithmException
KeyAgreement
возразите, что реализует указанный алгоритм согласования ключей. Этот метод пересекает список зарегистрированных поставщиков систем обеспечения безопасности, запускающихся с самого привилегированного Провайдера. Возвращается новый объект KeyAgreement инкапсуляция реализации KeyAgreementSpi от первого Провайдера, который поддерживает указанный алгоритм.
Отметьте, что список зарегистрированных провайдеров может быть получен через Security.getProviders()
метод.
algorithm
- стандартное имя требуемого алгоритма согласования ключей. См. раздел KeyAgreement в Документации Имени Алгоритма Стандарта Архитектуры Криптографии Java для информации о стандартных именах алгоритма.KeyAgreement
объект.NullPointerException
- если указанный алгоритм является нулем.NoSuchAlgorithmException
- если никакой Провайдер не поддерживает реализацию KeyAgreementSpi для указанного алгоритма.Provider
public static final KeyAgreement getInstance(String algorithm, String provider) throws NoSuchAlgorithmException, NoSuchProviderException
KeyAgreement
возразите, что реализует указанный алгоритм согласования ключей. Возвращается новый объект KeyAgreement инкапсуляция реализации KeyAgreementSpi от указанного провайдера. Указанный провайдер должен быть зарегистрирован в списке поставщика систем обеспечения безопасности.
Отметьте, что список зарегистрированных провайдеров может быть получен через Security.getProviders()
метод.
algorithm
- стандартное имя требуемого алгоритма согласования ключей. См. раздел KeyAgreement в Документации Имени Алгоритма Стандарта Архитектуры Криптографии Java для информации о стандартных именах алгоритма.provider
- имя провайдера.KeyAgreement
объект.NullPointerException
- если указанный алгоритм является нулем.NoSuchAlgorithmException
- если реализация KeyAgreementSpi для указанного алгоритма не доступна от указанного провайдера.NoSuchProviderException
- если указанный провайдер не регистрируется в списке поставщика систем обеспечения безопасности.IllegalArgumentException
- если provider
нуль или пустой.Provider
public static final KeyAgreement getInstance(String algorithm, Provider provider) throws NoSuchAlgorithmException
KeyAgreement
возразите, что реализует указанный алгоритм согласования ключей. Возвращается новый объект KeyAgreement инкапсуляция реализации KeyAgreementSpi от указанного объекта Провайдера. Отметьте, что указанный объект Провайдера не должен быть зарегистрирован в списке провайдера.
algorithm
- стандартное имя требуемого алгоритма согласования ключей. См. раздел KeyAgreement в Документации Имени Алгоритма Стандарта Архитектуры Криптографии Java для информации о стандартных именах алгоритма.provider
- провайдер.KeyAgreement
объект.NullPointerException
- если указанный алгоритм является нулем.NoSuchAlgorithmException
- если реализация KeyAgreementSpi для указанного алгоритма не доступна от указанного объекта Провайдера.IllegalArgumentException
- если provider
нуль.Provider
public final Provider getProvider()
KeyAgreement
объект.KeyAgreement
объектpublic final void init(Key key) throws InvalidKeyException
Если это согласование ключей потребует каких-либо случайных байтов, то это получит их использующий
реализация самого высокого приоритета установленный провайдер как источник случайности. (Если ни один из установленных провайдеров не предоставит реализацию SecureRandom, то обеспеченный системой источник случайности будет использоваться.)SecureRandom
key
- частная информация стороны. Например, в случае согласования ключей Diffie-Hellman, это было бы собственным закрытым ключом стороны Diffie-Hellman.InvalidKeyException
- если данный ключ является несоответствующим для этого согласования ключей, например, имеет неправильный тип или имеет несовместимый тип алгоритма.public final void init(Key key, SecureRandom random) throws InvalidKeyException
Если алгоритм согласования ключей требует случайных байтов, это получает их от данного источника случайности, random
. Однако, если базовая реализация алгоритма не требует никаких случайных байтов, random
игнорируется.
key
- частная информация стороны. Например, в случае согласования ключей Diffie-Hellman, это было бы собственным закрытым ключом стороны Diffie-Hellman.random
- источник случайностиInvalidKeyException
- если данный ключ является несоответствующим для этого согласования ключей, например, имеет неправильный тип или имеет несовместимый тип алгоритма.public final void init(Key key, AlgorithmParameterSpec params) throws InvalidKeyException, InvalidAlgorithmParameterException
Если это согласование ключей потребует каких-либо случайных байтов, то это получит их использующий
реализация самого высокого приоритета установленный провайдер как источник случайности. (Если ни один из установленных провайдеров не предоставит реализацию SecureRandom, то обеспеченный системой источник случайности будет использоваться.)SecureRandom
key
- частная информация стороны. Например, в случае согласования ключей Diffie-Hellman, это было бы собственным закрытым ключом стороны Diffie-Hellman.params
- параметры согласования ключейInvalidKeyException
- если данный ключ является несоответствующим для этого согласования ключей, например, имеет неправильный тип или имеет несовместимый тип алгоритма.InvalidAlgorithmParameterException
- если данные параметры являются несоответствующими для этого согласования ключей.public final void init(Key key, AlgorithmParameterSpec params, SecureRandom random) throws InvalidKeyException, InvalidAlgorithmParameterException
key
- частная информация стороны. Например, в случае согласования ключей Diffie-Hellman, это было бы собственным закрытым ключом стороны Diffie-Hellman.params
- параметры согласования ключейrandom
- источник случайностиInvalidKeyException
- если данный ключ является несоответствующим для этого согласования ключей, например, имеет неправильный тип или имеет несовместимый тип алгоритма.InvalidAlgorithmParameterException
- если данные параметры являются несоответствующими для этого согласования ключей.public final Key doPhase(Key key, boolean lastPhase) throws InvalidKeyException, IllegalStateException
key
- ключ для этой фазы. Например, в случае Diffie-Hellman между 2 сторонами, это было бы открытым ключом другой стороны Diffie-Hellman.lastPhase
- флаг, который указывает, является ли это последней фазой этого согласования ключей.InvalidKeyException
- если данный ключ является несоответствующим для этой фазы.IllegalStateException
- если это согласование ключей не было инициализировано.public final byte[] generateSecret() throws IllegalStateException
Этот метод сбрасывает это KeyAgreement
объект, так, чтобы это могло быть снова использовано для дальнейших согласований ключей. Если это согласование ключей не повторно инициализируется с одним из init
методы, та же самая частная информация и параметры алгоритма будут использоваться для последующих согласований ключей.
IllegalStateException
- если это согласование ключей еще не было завершеноpublic final int generateSecret(byte[] sharedSecret, int offset) throws IllegalStateException, ShortBufferException
sharedSecret
, начало в offset
включительно. Если sharedSecret
буфер является слишком маленьким, чтобы содержать результат, a ShortBufferException
бросается. В этом случае этот вызов должен быть повторен с большим буфером вывода.
Этот метод сбрасывает это KeyAgreement
объект, так, чтобы это могло быть снова использовано для дальнейших согласований ключей. Если это согласование ключей не повторно инициализируется с одним из init
методы, та же самая частная информация и параметры алгоритма будут использоваться для последующих согласований ключей.
sharedSecret
- буфер для совместно используемого секретаoffset
- смещение в sharedSecret
где совместно используемый секрет будет сохраненsharedSecret
IllegalStateException
- если это согласование ключей еще не было завершеноShortBufferException
- если данный буфер вывода является слишком небольшим, чтобы содержать секретpublic final SecretKey generateSecret(String algorithm) throws IllegalStateException, NoSuchAlgorithmException, InvalidKeyException
SecretKey
объект указанного алгоритма. Этот метод сбрасывает это KeyAgreement
объект, так, чтобы это могло быть снова использовано для дальнейших согласований ключей. Если это согласование ключей не повторно инициализируется с одним из init
методы, та же самая частная информация и параметры алгоритма будут использоваться для последующих согласований ключей.
algorithm
- требуемый алгоритм секретного ключаIllegalStateException
- если это согласование ключей еще не было завершеноNoSuchAlgorithmException
- если указанный алгоритм секретного ключа не доступенInvalidKeyException
- если совместно используемый материал секретного ключа не может использоваться, чтобы генерировать секретный ключ указанного алгоритма (например, ключевой материал слишком короток),
Для дальнейшей ссылки API и документации разработчика, см.
Авторское право © 1993, 2011, Oracle и/или его филиалы. Все права защищены.