Spec-Zone .ru
спецификации, руководства, описания, API
|
public class KeyFactory extends Object
Key
) в ключевые спецификации (прозрачные представления базового ключевого материала), и наоборот. Ключевые фабрики двунаправлены. Таким образом, они позволяют Вам создавать непрозрачный ключевой объект из данной ключевой спецификации (манипулируйте материал), или получать базовый ключевой материал ключевого объекта в подходящем формате.
Многократные совместимые ключевые спецификации могут существовать для того же самого ключа. Например, открытый ключ DSA может быть определен, используя DSAPublicKeySpec
или X509EncodedKeySpec
. Ключевая фабрика может использоваться, чтобы преобразовать между совместимыми ключевыми спецификациями.
Следующее является примером того, как использовать ключевую фабрику, чтобы инстанцировать открытого ключа DSA от его кодирования. Предположите, что Элис получила цифровую подпись от Боба. Боб, также отправленный ее его открытый ключ (в закодированном формате), чтобы проверить его подпись. Элис тогда выполняет следующие действия:
X509EncodedKeySpec bobPubKeySpec = new X509EncodedKeySpec(bobEncodedPubKey); KeyFactory keyFactory = KeyFactory.getInstance("DSA"); PublicKey bobPubKey = keyFactory.generatePublic(bobPubKeySpec); Signature sig = Signature.getInstance("DSA"); sig.initVerify(bobPubKey); sig.update(data); sig.verify(signature);
Каждая реализация платформы Java обязана поддерживать следующий стандарт KeyFactory
алгоритмы:
Key
, PublicKey
, PrivateKey
, KeySpec
, DSAPublicKeySpec
, X509EncodedKeySpec
Модификатор | Конструктор и Описание |
---|---|
protected |
KeyFactory(KeyFactorySpi keyFacSpi, Provider provider, String algorithm)
Создает объект KeyFactory.
|
Модификатор и Тип | Метод и Описание |
---|---|
PrivateKey |
generatePrivate(KeySpec keySpec)
Генерирует объект с закрытым ключом от обеспеченной ключевой спецификации (манипулируйте материал).
|
PublicKey |
generatePublic(KeySpec keySpec)
Генерирует объект с открытым ключом от обеспеченной ключевой спецификации (манипулируйте материал).
|
Строка |
getAlgorithm()
Получает имя алгоритма, связанного с этим KeyFactory.
|
static KeyFactory |
getInstance(String algorithm)
Возвращает объект KeyFactory, который преобразовывает общественность/закрытые ключи указанного алгоритма.
|
static KeyFactory |
getInstance(String algorithm, Provider provider)
Возвращает объект KeyFactory, который преобразовывает общественность/закрытые ключи указанного алгоритма.
|
static KeyFactory |
getInstance(String algorithm, String provider)
Возвращает объект KeyFactory, который преобразовывает общественность/закрытые ключи указанного алгоритма.
|
<T extends KeySpec> |
getKeySpec(Key key, Class<T> keySpec)
Возвращается спецификация (манипулируйте материал) данного ключевого объекта.
|
Провайдер |
getProvider()
Возвращает провайдера этого ключевого объекта фабрики.
|
Ключ |
translateKey(Key key)
Преобразовывает ключевой объект, провайдер которого может быть неизвестным или потенциально недоверяемым в соответствующий ключевой объект этой ключевой фабрики.
|
protected KeyFactory(KeyFactorySpi keyFacSpi, Provider provider, String algorithm)
keyFacSpi
- делегатprovider
- провайдерalgorithm
- имя алгоритма, чтобы связаться с этим KeyFactorypublic static KeyFactory getInstance(String algorithm) throws NoSuchAlgorithmException
Этот метод пересекает список зарегистрированных поставщиков систем обеспечения безопасности, запускающихся с самого привилегированного Провайдера. Возвращается новый объект KeyFactory инкапсуляция реализации KeyFactorySpi от первого Провайдера, который поддерживает указанный алгоритм.
Отметьте, что список зарегистрированных провайдеров может быть получен через Security.getProviders()
метод.
algorithm
- имя требуемого ключевого алгоритма. См. раздел KeyFactory в Документации Имени Алгоритма Стандарта Архитектуры Криптографии Java для информации о стандартных именах алгоритма.NoSuchAlgorithmException
- если никакой Провайдер не поддерживает реализацию KeyFactorySpi для указанного алгоритма.Provider
public static KeyFactory getInstance(String algorithm, String provider) throws NoSuchAlgorithmException, NoSuchProviderException
Возвращается новый объект KeyFactory инкапсуляция реализации KeyFactorySpi от указанного провайдера. Указанный провайдер должен быть зарегистрирован в списке поставщика систем обеспечения безопасности.
Отметьте, что список зарегистрированных провайдеров может быть получен через Security.getProviders()
метод.
algorithm
- имя требуемого ключевого алгоритма. См. раздел KeyFactory в Документации Имени Алгоритма Стандарта Архитектуры Криптографии Java для информации о стандартных именах алгоритма.provider
- имя провайдера.NoSuchAlgorithmException
- если реализация KeyFactorySpi для указанного алгоритма не доступна от указанного провайдера.NoSuchProviderException
- если указанный провайдер не регистрируется в списке поставщика систем обеспечения безопасности.IllegalArgumentException
- если имя провайдера является нулем или пустой.Provider
public static KeyFactory getInstance(String algorithm, Provider provider) throws NoSuchAlgorithmException
Возвращается новый объект KeyFactory инкапсуляция реализации KeyFactorySpi от указанного объекта Провайдера. Отметьте, что указанный объект Провайдера не должен быть зарегистрирован в списке провайдера.
algorithm
- имя требуемого ключевого алгоритма. См. раздел KeyFactory в Документации Имени Алгоритма Стандарта Архитектуры Криптографии Java для информации о стандартных именах алгоритма.provider
- провайдер.NoSuchAlgorithmException
- если реализация KeyFactorySpi для указанного алгоритма не доступна от указанного объекта Провайдера.IllegalArgumentException
- если указанный провайдер является нулем.Provider
public final Provider getProvider()
public final String getAlgorithm()
public final PublicKey generatePublic(KeySpec keySpec) throws InvalidKeySpecException
keySpec
- спецификация (манипулируют материал) открытого ключа.InvalidKeySpecException
- если данная ключевая спецификация является несоответствующей для этой ключевой фабрики, чтобы произвести открытый ключ.public final PrivateKey generatePrivate(KeySpec keySpec) throws InvalidKeySpecException
keySpec
- спецификация (манипулируют материал) закрытого ключа.InvalidKeySpecException
- если данная ключевая спецификация является несоответствующей для этой ключевой фабрики, чтобы произвести закрытый ключ.public final <T extends KeySpec> T getKeySpec(Key key, Class<T> keySpec) throws InvalidKeySpecException
keySpec
идентифицирует класс спецификации, в котором должен быть возвращен ключевой материал. Это могло, например, быть DSAPublicKeySpec.class
, указать, что ключевой материал должен быть возвращен в экземпляре DSAPublicKeySpec
класс.key
- ключ.keySpec
- класс спецификации, в котором должен быть возвращен ключевой материал.InvalidKeySpecException
- если требуемая ключевая спецификация является несоответствующей для данного ключа, или данный ключ не может быть обработан (например, у данного ключа есть нераспознанный алгоритм или формат).public final Key translateKey(Key key) throws InvalidKeyException
key
- ключ, провайдер которого неизвестен или недоверяем.InvalidKeyException
- если данный ключ не может быть обработан этой ключевой фабрикой.
Для дальнейшей ссылки API и документации разработчика, см.
Авторское право © 1993, 2011, Oracle и/или его филиалы. Все права защищены.