|
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 для указанного алгоритма.Providerpublic 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 нуль или пустой.Providerpublic static final KeyAgreement getInstance(String algorithm, Provider provider) throws NoSuchAlgorithmException
KeyAgreement возразите, что реализует указанный алгоритм согласования ключей. Возвращается новый объект KeyAgreement инкапсуляция реализации KeyAgreementSpi от указанного объекта Провайдера. Отметьте, что указанный объект Провайдера не должен быть зарегистрирован в списке провайдера.
algorithm - стандартное имя требуемого алгоритма согласования ключей. См. раздел KeyAgreement в Документации Имени Алгоритма Стандарта Архитектуры Криптографии Java для информации о стандартных именах алгоритма.provider - провайдер.KeyAgreement объект.NullPointerException - если указанный алгоритм является нулем.NoSuchAlgorithmException - если реализация KeyAgreementSpi для указанного алгоритма не доступна от указанного объекта Провайдера.IllegalArgumentException - если provider нуль.Providerpublic 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 где совместно используемый секрет будет сохраненsharedSecretIllegalStateException - если это согласование ключей еще не было завершеноShortBufferException - если данный буфер вывода является слишком небольшим, чтобы содержать секретpublic final SecretKey generateSecret(String algorithm) throws IllegalStateException, NoSuchAlgorithmException, InvalidKeyException
SecretKey объект указанного алгоритма. Этот метод сбрасывает это KeyAgreement объект, так, чтобы это могло быть снова использовано для дальнейших согласований ключей. Если это согласование ключей не повторно инициализируется с одним из init методы, та же самая частная информация и параметры алгоритма будут использоваться для последующих согласований ключей.
algorithm - требуемый алгоритм секретного ключаIllegalStateException - если это согласование ключей еще не было завершеноNoSuchAlgorithmException - если указанный алгоритм секретного ключа не доступенInvalidKeyException - если совместно используемый материал секретного ключа не может использоваться, чтобы генерировать секретный ключ указанного алгоритма (например, ключевой материал слишком короток),
Для дальнейшей ссылки API и документации разработчика, см. Java Документация SE. Та документация содержит более подробные, предназначенные разработчиком описания, с концептуальными краткими обзорами, определениями сроков, обходных решений, и рабочих примеров кода.
Авторское право © 1993, 2013, Oracle и/или его филиалы. Все права защищены.
Проект сборка-b92