Spec-Zone.ru › OpenJDK 25

Класс KeyStore

java.lang.Object
java.security.KeyStore
public class KeyStore extends Object
Этот класс представляет собой хранилище криптографических ключей и сертификатов.

KeyStore управляет различными типами записей. Каждый тип записи реализует интерфейс KeyStore.Entry. Предоставляются три основные реализации KeyStore.Entry:

  • KeyStore.PrivateKeyEntry

    Этот тип записи содержит криптографический PrivateKey, который при необходимости хранится в защищённом формате для предотвращения несанкционированного доступа. Он также сопровождается цепочкой сертификатов для соответствующего открытого ключа.

    Закрытые ключи и цепочки сертификатов используются заданной сущностью для самоаутентификации. К такой аутентификации прибегают, например, организации, распространяющие программное обеспечение и подписывающие JAR-файлы при выпуске и/или лицензировании программного обеспечения.

  • KeyStore.SecretKeyEntry

    Этот тип записи содержит криптографический SecretKey, который при необходимости хранится в защищённом формате для предотвращения несанкционированного доступа.

  • KeyStore.TrustedCertificateEntry

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

    Этот тип записи можно использовать для аутентификации других сторон.

Каждая запись в хранилище ключей идентифицируется строкой «псевдоним». В случае закрытых ключей и связанных с ними цепочек сертификатов эти строки позволяют различать способы, которыми сущность может себя аутентифицировать. Например, сущность может аутентифицировать себя с помощью разных центров сертификации или разных алгоритмов открытого ключа.

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

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

Типичные способы получения объекта KeyStore включают указание существующего файла хранилища ключей, использование типа по умолчанию и указание конкретного типа хранилища ключей.

  • Чтобы указать существующий файл хранилища ключей:
        // get keystore password
        char[] password = getPassword();
    
        // probe the keystore file and load the keystore entries
        KeyStore ks = KeyStore.getInstance(new File("keyStoreName"), password);
    
    Система проверит указанный файл, чтобы определить его тип, и вернёт реализацию хранилища ключей с уже загруженными записями. При использовании этого способа вызывать метод хранилища ключей load не требуется.
  • Чтобы использовать тип по умолчанию:
        KeyStore ks = KeyStore.getInstance(KeyStore.getDefaultType());
     
    Система вернёт реализацию хранилища ключей типа по умолчанию.
  • Чтобы указать конкретный тип хранилища ключей:
          KeyStore ks = KeyStore.getInstance("JKS");
     
    Система вернёт наиболее предпочтительную реализацию указанного типа хранилища ключей, доступную в среде.

Прежде чем получить доступ к хранилищу ключей, его необходимо loaded (если оно не было загружено при создании экземпляра).

    KeyStore ks = KeyStore.getInstance(KeyStore.getDefaultType());

    // get user password and file input stream
    char[] password = getPassword();

    try (FileInputStream fis = new FileInputStream("keyStoreName")) {
        ks.load(fis, password);
    }
 
Чтобы создать пустое хранилище ключей с помощью указанного выше метода load, передайте null в качестве аргумента InputStream.

После загрузки хранилища ключей из него можно считывать существующие записи или записывать в него новые:

    KeyStore.PasswordProtection protParam =
        new KeyStore.PasswordProtection(password);
    try (FileOutputStream fos = new FileOutputStream("newKeyStoreName")) {
        // get my private key
        KeyStore.PrivateKeyEntry pkEntry = (KeyStore.PrivateKeyEntry)
            ks.getEntry("privateKeyAlias", protParam);
        PrivateKey myPrivateKey = pkEntry.getPrivateKey();

        // save my secret key
        javax.crypto.SecretKey mySecretKey;
        KeyStore.SecretKeyEntry skEntry =
            new KeyStore.SecretKeyEntry(mySecretKey);
        ks.setEntry("secretKeyAlias", skEntry, protParam);

        // store away the keystore
        ks.store(fos, password);
    } finally {
        protParam.destroy();
    }
 
Обратите внимание: хотя для загрузки хранилища ключей, защиты записи с закрытым ключом, защиты записи с секретным ключом и сохранения хранилища ключей можно использовать один и тот же пароль (как показано в приведённом выше примере кода), также допускается использовать разные пароли или другие параметры защиты.

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

  • PKCS12
Этот тип описан в разделе KeyStore спецификации стандартных имён алгоритмов безопасности Java. Информацию о поддержке других типов см. в документации к выпуску вашей реализации.
Начиная с:
1.2
Внешние спецификации
  • Стандартные имена алгоритмов безопасности Java
См. также:
  • PrivateKey
  • SecretKey
  • Certificate

Краткое описание вложенных классов

Модификатор и тип Класс Описание
static class  KeyStore.Builder
Описание объекта KeyStore, экземпляр которого будет создан.
static class  KeyStore.CallbackHandlerProtection
ProtectionParameter, инкапсулирующий CallbackHandler.
static interface  KeyStore.Entry
Маркерный интерфейс для типов записей KeyStore.
static interface  KeyStore.LoadStoreParameter
Маркерный интерфейс для параметров load и store типа KeyStore.
static class  KeyStore.PasswordProtection
Реализация ProtectionParameter на основе пароля.
static final class  KeyStore.PrivateKeyEntry
Запись KeyStore, содержащая PrivateKey и соответствующую цепочку сертификатов.
static interface  KeyStore.ProtectionParameter
Маркерный интерфейс для параметров защиты хранилища ключей.
static final class  KeyStore.SecretKeyEntry
Запись KeyStore, содержащая SecretKey.
static final class  KeyStore.TrustedCertificateEntry
Запись KeyStore, содержащая доверенный Certificate.

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

KeyStore(KeyStoreSpi keyStoreSpi, Provider provider, String type)
Модификатор Конструктор Описание
protected
Создаёт объект KeyStore заданного типа и инкапсулирует в нём указанную реализацию поставщика (объект SPI).

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

Модификатор и тип Метод Описание
final Enumeration<String> aliases()
Перечисляет все имена псевдонимов этого хранилища ключей.
final boolean containsAlias(String alias)
Проверяет, существует ли указанный псевдоним в этом хранилище ключей.
final void deleteEntry(String alias)
Удаляет из этого хранилища ключей запись, идентифицируемую указанным псевдонимом.
final boolean entryInstanceOf(String alias, Class<? extends KeyStore.Entry> entryClass)
Определяет, является ли Entry хранилища ключей для указанного alias экземпляром указанного entryClass или его подклассом.
final Set<KeyStore.Entry.Attribute> getAttributes(String alias)
Возвращает атрибуты, связанные с указанным псевдонимом.
final Certificate getCertificate(String alias)
Возвращает сертификат, связанный с указанным псевдонимом.
final String getCertificateAlias(Certificate cert)
Возвращает имя (псевдоним) первой записи хранилища ключей, сертификат которой соответствует указанному сертификату.
final Certificate[] getCertificateChain(String alias)
Возвращает цепочку сертификатов, связанную с указанным псевдонимом.
final Date getCreationDate(String alias)
Возвращает дату создания записи, идентифицируемой указанным псевдонимом.
static final String getDefaultType()
Возвращает тип хранилища ключей по умолчанию, указанный в свойстве безопасности keystore.type, или строку "pkcs12", если такое свойство отсутствует.
final KeyStore.Entry getEntry(String alias, KeyStore.ProtectionParameter protParam)
Получает Entry хранилища ключей для указанного псевдонима с указанным параметром защиты.
static final KeyStore getInstance(File file, char[] password)
Возвращает загруженный объект хранилища ключей соответствующего типа.
static final KeyStore getInstance(File file, KeyStore.LoadStoreParameter param)
Возвращает загруженный объект хранилища ключей соответствующего типа.
static KeyStore getInstance(String type)
Возвращает объект KeyStore указанного типа.
static KeyStore getInstance(String type, String provider)
Возвращает объект KeyStore указанного типа.
static KeyStore getInstance(String type, Provider provider)
Возвращает объект KeyStore указанного типа.
final Key getKey(String alias, char[] password)
Возвращает ключ, связанный с указанным псевдонимом, используя указанный пароль для его восстановления.
final Provider getProvider()
Возвращает поставщика этого хранилища ключей.
final String getType()
Возвращает тип этого хранилища ключей.
final boolean isCertificateEntry(String alias)
Возвращает true, если запись, идентифицируемая указанным псевдонимом, была создана вызовом setCertificateEntry или вызовом setEntry с параметром TrustedCertificateEntry.
final boolean isKeyEntry(String alias)
Возвращает true, если запись, идентифицируемая указанным псевдонимом, была создана вызовом setKeyEntry или вызовом setEntry с параметром PrivateKeyEntry или SecretKeyEntry.
final void load(InputStream stream, char[] password)
Загружает это хранилище ключей из указанного входного потока.
final void load(KeyStore.LoadStoreParameter param)
Загружает это хранилище ключей с помощью указанного LoadStoreParameter.
final void setCertificateEntry(String alias, Certificate cert)
Связывает указанный доверенный сертификат с указанным псевдонимом.
final void setEntry(String alias, KeyStore.Entry entry, KeyStore.ProtectionParameter protParam)
Сохраняет Entry хранилища ключей под указанным псевдонимом.
final void setKeyEntry(String alias, byte[] key, Certificate[] chain)
Связывает указанный ключ (который уже был защищён) с указанным псевдонимом.
final void setKeyEntry(String alias, Key key, char[] password, Certificate[] chain)
Связывает указанный ключ с указанным псевдонимом, защищая его указанным паролем.
final int size()
Возвращает количество записей в этом хранилище ключей.
final void store(OutputStream stream, char[] password)
Сохраняет это хранилище ключей в указанный выходной поток и защищает его целостность указанным паролем.
final void store(KeyStore.LoadStoreParameter param)
Сохраняет это хранилище ключей с помощью указанного LoadStoreParameter.

Методы, объявленные в классе Object

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

Подробное описание конструкторов

KeyStore

protected KeyStore(KeyStoreSpi keyStoreSpi, Provider provider, String type)
Создает объект KeyStore указанного типа и инкапсулирует в нем указанную реализацию поставщика (объект SPI).
Параметры:
keyStoreSpi — реализация поставщика.
provider — поставщик.
type — тип хранилища ключей.

Подробное описание методов

getInstance

public static KeyStore getInstance(String type) throws KeyStoreException
Возвращает объект KeyStore указанного типа.

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

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

Примечание по реализации:
Реализация JDK Reference Implementation дополнительно использует свойство безопасности jdk.security.provider.preferred Security для определения предпочтительного порядка поставщиков для указанного алгоритма. Этот порядок может отличаться от порядка поставщиков, возвращаемых методом Security.getProviders().
Параметры:
type — тип хранилища ключей. Информацию о стандартных типах хранилищ ключей см. в разделе KeyStore спецификации стандартных имен алгоритмов безопасности Java.
Возвращает:
объект хранилища ключей указанного типа
Вызывает:
KeyStoreException — если ни один поставщик не поддерживает реализацию KeyStoreSpi для указанного типа
NullPointerException — если type имеет значение null
Внешние спецификации
  • Стандартные имена алгоритмов безопасности Java
См. также:
  • Provider

getInstance

public static KeyStore getInstance(String type, String provider) throws KeyStoreException, NoSuchProviderException
Возвращает объект KeyStore указанного типа.

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

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

Параметры:
type — тип хранилища ключей. Информацию о стандартных типах хранилищ ключей см. в разделе KeyStore спецификации стандартных имен алгоритмов безопасности Java.
provider — имя поставщика.
Возвращает:
объект хранилища ключей указанного типа
Вызывает:
IllegalArgumentException — если имя поставщика равно null или пусто
KeyStoreException — если у указанного поставщика недоступна реализация KeyStoreSpi для указанного типа
NoSuchProviderException — если указанный поставщик не зарегистрирован в списке поставщиков безопасности
NullPointerException — если type имеет значение null
Внешние спецификации
  • Стандартные имена алгоритмов безопасности Java
См. также:
  • Provider

getInstance

public static KeyStore getInstance(String type, Provider provider) throws KeyStoreException
Возвращает объект KeyStore указанного типа.

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

Параметры:
type — тип хранилища ключей. Информацию о стандартных типах хранилищ ключей см. в разделе KeyStore спецификации стандартных имен алгоритмов безопасности Java.
provider — поставщик.
Возвращает:
объект хранилища ключей указанного типа
Вызывает:
IllegalArgumentException — если указанный поставщик является null
KeyStoreException — если реализация KeyStoreSpi для указанного типа недоступна у указанного объекта Provider
NullPointerException — если type имеет значение null
Начиная с:
1.4
Внешние спецификации
  • Стандартные имена алгоритмов безопасности Java
См. также:
  • Provider

getDefaultType

public static final String getDefaultType()
Возвращает тип хранилища ключей по умолчанию, заданный свойством безопасности keystore.type, либо строку "pkcs12", если такое свойство не задано.

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

Тип хранилища ключей по умолчанию можно изменить, задав желаемый тип хранилища ключей в свойстве безопасности keystore.type.

Возвращает:
тип хранилища ключей по умолчанию, заданный свойством безопасности keystore.type, либо строку "pkcs12", если такое свойство не задано.
См. также:
  • свойства безопасности

getProvider

public final Provider getProvider()
Возвращает поставщика этого хранилища ключей.
Возвращает:
поставщика этого хранилища ключей.

getType

public final String getType()
Возвращает тип этого хранилища ключей.
Возвращает:
тип этого хранилища ключей.

getAttributes

public final Set<KeyStore.Entry.Attribute> getAttributes(String alias) throws KeyStoreException
Получает атрибуты, связанные с указанным псевдонимом.
Параметры:
alias — имя псевдонима
Возвращает:
неизменяемое Set атрибутов. Это множество пусто, если реализация KeyStoreSpi не переопределила KeyStoreSpi.engineGetAttributes(String), указанный псевдоним не существует или с ним не связаны атрибуты. Это множество также может быть пустым для записей PrivateKeyEntry или SecretKeyEntry, содержащих защищенные атрибуты, которые доступны только через метод KeyStore.Entry.getAttributes() после извлечения записи.
Вызывает:
KeyStoreException — если хранилище ключей не было инициализировано (загружено).
NullPointerException — если alias имеет значение null
Начиная с:
18

getKey

public final Key getKey(String alias, char[] password) throws KeyStoreException, NoSuchAlgorithmException, UnrecoverableKeyException
Возвращает ключ, связанный с указанным псевдонимом, используя указанный пароль для его восстановления. Ключ должен быть связан с псевдонимом вызовом setKeyEntry либо вызовом setEntry с PrivateKeyEntry или SecretKeyEntry.
Параметры:
alias — имя псевдонима
password — пароль для восстановления ключа
Возвращает:
запрошенный ключ либо null, если указанный псевдоним не существует или не обозначает запись, связанную с ключом.
Вызывает:
KeyStoreException — если хранилище ключей не было инициализировано (загружено).
NoSuchAlgorithmException — если не удается найти алгоритм восстановления ключа
UnrecoverableKeyException — если ключ не удается восстановить (например, указан неверный пароль).

getCertificateChain

public final Certificate[] getCertificateChain(String alias) throws KeyStoreException
Возвращает цепочку сертификатов, связанную с указанным псевдонимом. Цепочка сертификатов должна быть связана с псевдонимом вызовом setKeyEntry либо вызовом setEntry с PrivateKeyEntry.
Параметры:
alias — имя псевдонима
Возвращает:
цепочку сертификатов (сначала сертификат пользователя, за которым следуют ноль или более сертификатов центров сертификации) либо null, если указанный псевдоним не существует или не содержит цепочку сертификатов
Вызывает:
KeyStoreException — если хранилище ключей не было инициализировано (загружено).

getCertificate

public final Certificate getCertificate(String alias) throws KeyStoreException
Возвращает сертификат, связанный с указанным псевдонимом.

Если указанный псевдоним обозначает запись, созданную вызовом setCertificateEntry или вызовом setEntry с TrustedCertificateEntry, возвращается доверенный сертификат, содержащийся в этой записи.

Если указанный псевдоним обозначает запись, созданную вызовом setKeyEntry или вызовом setEntry с PrivateKeyEntry, возвращается первый элемент цепочки сертификатов в этой записи.

Параметры:
alias — имя псевдонима
Возвращает:
сертификат либо null, если указанный псевдоним не существует или не содержит сертификат.
Вызывает:
KeyStoreException — если хранилище ключей не было инициализировано (загружено).

getCreationDate

public final Date getCreationDate(String alias) throws KeyStoreException
Возвращает дату создания записи, обозначенной указанным псевдонимом.
Параметры:
alias — имя псевдонима
Возвращает:
дату создания этой записи либо null, если указанный псевдоним не существует
Вызывает:
KeyStoreException — если хранилище ключей не было инициализировано (загружено).

setKeyEntry

public final void setKeyEntry(String alias, Key key, char[] password, Certificate[] chain) throws KeyStoreException
Связывает указанный ключ с указанным псевдонимом, защищая его указанным паролем.

Если указанный ключ имеет тип java.security.PrivateKey, к нему должна прилагаться цепочка сертификатов, удостоверяющая соответствующий открытый ключ.

Если указанный псевдоним уже существует, связанные с ним сведения в хранилище ключей заменяются указанным ключом (и, возможно, цепочкой сертификатов).

Параметры:
alias — имя псевдонима
key — ключ, который необходимо связать с псевдонимом
password — пароль для защиты ключа
chain — цепочка сертификатов для соответствующего открытого ключа (требуется только в том случае, если указанный ключ имеет тип java.security.PrivateKey).
Вызывает:
KeyStoreException — если хранилище ключей не было инициализировано (загружено), указанный ключ невозможно защитить или операция не удалась по какой-либо другой причине

setKeyEntry

public final void setKeyEntry(String alias, byte[] key, Certificate[] chain) throws KeyStoreException
Связывает указанный ключ (уже защищенный) с указанным псевдонимом.

Если защищенный ключ имеет тип java.security.PrivateKey, к нему должна прилагаться цепочка сертификатов, удостоверяющая соответствующий открытый ключ. Если базовая реализация хранилища ключей имеет тип jks, key должен быть закодирован как EncryptedPrivateKeyInfo в соответствии со стандартом PKCS #8.

Если указанный псевдоним уже существует, связанные с ним сведения в хранилище ключей заменяются указанным ключом (и, возможно, цепочкой сертификатов).

Параметры:
alias — имя псевдонима
key — ключ (в защищенном формате), который необходимо связать с псевдонимом
chain — цепочка сертификатов для соответствующего открытого ключа (имеет смысл только в том случае, если защищенный ключ имеет тип java.security.PrivateKey).
Вызывает:
KeyStoreException — если хранилище ключей не было инициализировано (загружено) или операция не удалась по какой-либо другой причине.

setCertificateEntry

public final void setCertificateEntry(String alias, Certificate cert) throws KeyStoreException
Связывает указанный доверенный сертификат с указанным псевдонимом.

Если указанный псевдоним обозначает существующую запись, созданную вызовом setCertificateEntry или вызовом setEntry с TrustedCertificateEntry, доверенный сертификат в существующей записи заменяется указанным сертификатом.

Параметры:
alias — имя псевдонима
cert — сертификат
Вызывает:
KeyStoreException — если хранилище ключей не было инициализировано, указанный псевдоним уже существует и не обозначает запись, содержащую доверенный сертификат, или операция не удалась по какой-либо другой причине.

deleteEntry

public final void deleteEntry(String alias) throws KeyStoreException
Удаляет из этого хранилища ключей запись, обозначенную указанным псевдонимом.
Параметры:
alias — имя псевдонима
Вызывает:
KeyStoreException — если хранилище ключей не было инициализировано или запись невозможно удалить.

aliases

public final Enumeration<String> aliases() throws KeyStoreException
Перечисляет все имена псевдонимов этого хранилища ключей.
Возвращает:
перечисление имен псевдонимов
Вызывает:
KeyStoreException — если хранилище ключей не было инициализировано (загружено).

containsAlias

public final boolean containsAlias(String alias) throws KeyStoreException
Проверяет, существует ли указанный псевдоним в этом хранилище ключей.
Параметры:
alias — имя псевдонима
Возвращает:
true, если псевдоним существует, иначе false
Вызывает:
KeyStoreException — если хранилище ключей не было инициализировано (загружено).

size

public final int size() throws KeyStoreException
Получает количество записей в этом хранилище ключей.
Возвращает:
количество записей в этом хранилище ключей
Вызывает:
KeyStoreException — если хранилище ключей не было инициализировано (загружено).

isKeyEntry

public final boolean isKeyEntry(String alias) throws KeyStoreException
Возвращает true, если запись, обозначенная указанным псевдонимом, была создана вызовом setKeyEntry либо вызовом setEntry с PrivateKeyEntry или SecretKeyEntry.
Параметры:
alias — псевдоним записи хранилища ключей, которую необходимо проверить
Возвращает:
true, если запись, обозначенная указанным псевдонимом, связана с ключом, иначе false.
Вызывает:
KeyStoreException — если хранилище ключей не было инициализировано (загружено).

isCertificateEntry

public final boolean isCertificateEntry(String alias) throws KeyStoreException
Возвращает true, если запись, обозначенная указанным псевдонимом, была создана вызовом setCertificateEntry либо вызовом setEntry с TrustedCertificateEntry.
Параметры:
alias — псевдоним записи хранилища ключей, которую необходимо проверить
Возвращает:
true, если запись, обозначенная указанным псевдонимом, содержит доверенный сертификат, иначе false.
Вызывает:
KeyStoreException — если хранилище ключей не было инициализировано (загружено).

getCertificateAlias

public final String getCertificateAlias(Certificate cert) throws KeyStoreException
Возвращает имя (псевдоним) первой записи хранилища ключей, сертификат которой совпадает с указанным сертификатом.

Этот метод пытается сопоставить указанный сертификат с каждой записью хранилища ключей. Если рассматриваемая запись была создана вызовом setCertificateEntry либо вызовом setEntry с TrustedCertificateEntry, указанный сертификат сравнивается с сертификатом этой записи.

Если рассматриваемая запись была создана вызовом setKeyEntry либо вызовом setEntry с PrivateKeyEntry, указанный сертификат сравнивается с первым элементом цепочки сертификатов этой записи.

Параметры:
cert — сертификат для сопоставления.
Возвращает:
имя псевдонима первой записи с совпадающим сертификатом либо null, если такой записи в этом хранилище ключей нет.
Вызывает:
KeyStoreException — если хранилище ключей не было инициализировано (загружено).

store

public final void store(OutputStream stream, char[] password) throws KeyStoreException, IOException, NoSuchAlgorithmException, CertificateException
Сохраняет это хранилище ключей в указанный поток вывода и защищает его целостность с помощью указанного пароля.
Параметры:
stream — поток вывода, в который записывается это хранилище ключей.
password — пароль для формирования контрольной суммы целостности хранилища ключей. Может быть null, если хранилище ключей не поддерживает проверку целостности или не требует ее.
Вызывает:
KeyStoreException — если хранилище ключей не было инициализировано (загружено).
IOException — если при обработке данных возникла ошибка ввода-вывода
NoSuchAlgorithmException — если не удалось найти подходящий алгоритм проверки целостности данных
CertificateException — если не удалось сохранить какой-либо из сертификатов, включенных в данные хранилища ключей

store

public final void store(KeyStore.LoadStoreParameter param) throws KeyStoreException, IOException, NoSuchAlgorithmException, CertificateException
Сохраняет это хранилище ключей с использованием указанного LoadStoreParameter.
Параметры:
param — LoadStoreParameter, задающий способ сохранения хранилища ключей; может иметь значение null
Вызывает:
IllegalArgumentException — если указанные входные данные LoadStoreParameter не распознаны
KeyStoreException — если хранилище ключей не было инициализировано (загружено)
IOException — если при обработке данных возникла ошибка ввода-вывода
NoSuchAlgorithmException — если не удалось найти подходящий алгоритм проверки целостности данных
CertificateException — если не удалось сохранить какой-либо из сертификатов, включенных в данные хранилища ключей
UnsupportedOperationException — если эта операция не поддерживается
Начиная с:
1.5

load

public final void load(InputStream stream, char[] password) throws IOException, NoSuchAlgorithmException, CertificateException
Загружает это хранилище ключей из указанного входного потока.

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

Чтобы создать пустое хранилище ключей или если хранилище невозможно инициализировать из потока, передайте null в качестве аргумента stream.

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

Параметры:
stream — входной поток, из которого загружается хранилище ключей, либо null
password — пароль для проверки целостности хранилища ключей, пароль для его разблокировки либо null
Вызывает:
IOException — если возникла ошибка ввода-вывода или ошибка формата данных хранилища ключей, если требуется пароль, но он не указан, либо если указан неверный пароль. Если ошибка вызвана неверным паролем, метод cause объекта IOException должен возвращать UnrecoverableKeyException
NoSuchAlgorithmException — если не удается найти алгоритм, используемый для проверки целостности хранилища ключей
CertificateException — если не удалось загрузить какой-либо сертификат из хранилища ключей

load

public final void load(KeyStore.LoadStoreParameter param) throws IOException, NoSuchAlgorithmException, CertificateException
Загружает это хранилище ключей с использованием указанного LoadStoreParameter.

Обратите внимание: если это KeyStore уже было загружено, оно инициализируется повторно и снова загружается с использованием указанного параметра.

Параметры:
param — LoadStoreParameter, задающий способ загрузки хранилища ключей; может иметь значение null
Вызывает:
IllegalArgumentException — если указанные входные данные LoadStoreParameter не распознаны
IOException — если возникла ошибка ввода-вывода или ошибка формата данных хранилища ключей. Если ошибка вызвана неверным ProtectionParameter (например, неверным паролем), метод cause объекта IOException должен возвращать UnrecoverableKeyException
NoSuchAlgorithmException — если не удается найти алгоритм, используемый для проверки целостности хранилища ключей
CertificateException — если не удалось загрузить какой-либо сертификат из хранилища ключей
Начиная с:
1.5

getEntry

public final KeyStore.Entry getEntry(String alias, KeyStore.ProtectionParameter protParam) throws NoSuchAlgorithmException, UnrecoverableEntryException, KeyStoreException
Получает запись Entry хранилища ключей для указанного псевдонима с заданным параметром защиты.
Параметры:
alias — получить запись Entry хранилища ключей для этого псевдонима
protParam — ProtectionParameter, используемый для защиты Entry; может иметь значение null
Возвращает:
запись Entry хранилища ключей для указанного псевдонима либо null, если такой записи нет
Вызывает:
NullPointerException — если alias имеет значение null
NoSuchAlgorithmException — если не удается найти алгоритм восстановления записи
UnrecoverableEntryException — если указанные protParam недостаточны или недействительны
UnrecoverableKeyException — если запись является PrivateKeyEntry или SecretKeyEntry, а указанный protParam не содержит сведений, необходимых для восстановления ключа (например, указан неверный пароль)
KeyStoreException — если хранилище ключей не было инициализировано (загружено).
Начиная с:
1.5
См. также:
  • setEntry(String, KeyStore.Entry, KeyStore.ProtectionParameter)

setEntry

public final void setEntry(String alias, KeyStore.Entry entry, KeyStore.ProtectionParameter protParam) throws KeyStoreException
Сохраняет запись Entry хранилища ключей под указанным псевдонимом. Параметр защиты используется для защиты Entry.

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

Параметры:
alias — сохранить запись Entry хранилища ключей под этим псевдонимом
entry — Entry для сохранения
protParam — ProtectionParameter, используемый для защиты Entry; может иметь значение null
Вызывает:
NullPointerException — если alias или entry имеет значение null
KeyStoreException — если хранилище ключей не было инициализировано (загружено) или операция не удалась по какой-либо другой причине
Начиная с:
1.5
См. также:
  • getEntry(String, KeyStore.ProtectionParameter)

entryInstanceOf

public final boolean entryInstanceOf(String alias, Class<? extends KeyStore.Entry> entryClass) throws KeyStoreException
Определяет, является ли запись Entry хранилища ключей для указанного alias экземпляром указанного entryClass или его подклассом.
Параметры:
alias — имя псевдонима
entryClass — класс записи
Возвращает:
true, если запись Entry хранилища ключей для указанного alias является экземпляром указанного entryClass или его подклассом, иначе false
Вызывает:
NullPointerException — если alias или entryClass имеет значение null
KeyStoreException — если хранилище ключей не было инициализировано (загружено)
Начиная с:
1.5

getInstance

public static final KeyStore getInstance(File file, char[] password) throws KeyStoreException, IOException, NoSuchAlgorithmException, CertificateException
Возвращает загруженный объект хранилища ключей соответствующего типа. Сначала тип хранилища ключей определяется путем проверки указанного файла. Затем создается объект хранилища ключей и загружается с использованием данных из этого файла.

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

Этот метод перебирает список зарегистрированных поставщиков безопасности providers, начиная с поставщика с наивысшим приоритетом. Для каждой реализации KeyStoreSpi, поддерживаемой поставщиком, он вызывает метод engineProbe, чтобы определить, поддерживает ли она указанное хранилище ключей. Возвращается новый объект KeyStore, инкапсулирующий реализацию KeyStoreSpi первого поставщика, поддерживающего указанный файл.

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

Параметры:
file — файл хранилища ключей
password — пароль хранилища ключей, который может быть null
Возвращает:
объект хранилища ключей, загруженный данными хранилища ключей
Исключения:
KeyStoreException — если ни один поставщик не поддерживает реализацию KeyStoreSpi для указанного файла хранилища ключей.
IOException — если возникла проблема ввода-вывода или форматирования данных хранилища ключей, если требуется пароль, но он не указан, или если указанный пароль неверен. Если ошибка вызвана неверным паролем, cause объекта IOException должен быть объектом UnrecoverableKeyException.
NoSuchAlgorithmException — если не удается найти алгоритм, используемый для проверки целостности хранилища ключей.
CertificateException — если не удалось загрузить какой-либо из сертификатов в хранилище ключей.
IllegalArgumentException — если файл не существует или не является обычным файлом.
NullPointerException — если файл является null.
Начиная с версии:
9
См. также:
  • Provider

getInstance

public static final KeyStore getInstance(File file, KeyStore.LoadStoreParameter param) throws KeyStoreException, IOException, NoSuchAlgorithmException, CertificateException
Возвращает загруженный объект хранилища ключей соответствующего типа. Сначала тип хранилища ключей определяется путем проверки указанного файла. Затем создается объект хранилища ключей и загружается с использованием данных из этого файла. Можно передать объект LoadStoreParameter, задающий способ разблокировки данных хранилища ключей или выполнения проверки целостности.

Этот метод перебирает список зарегистрированных поставщиков безопасности providers, начиная с поставщика с наивысшим приоритетом. Для каждой реализации KeyStoreSpi, поддерживаемой поставщиком, он вызывает метод engineProbe, чтобы определить, поддерживает ли она указанное хранилище ключей. Возвращается новый объект KeyStore, инкапсулирующий реализацию KeyStoreSpi первого поставщика, поддерживающего указанный файл.

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

Параметры:
file — файл хранилища ключей
param — объект LoadStoreParameter, задающий способ загрузки хранилища ключей; он может быть null
Возвращает:
объект хранилища ключей, загруженный данными хранилища ключей
Исключения:
KeyStoreException — если ни один поставщик не поддерживает реализацию KeyStoreSpi для указанного файла хранилища ключей.
IOException — если возникла проблема ввода-вывода или форматирования данных хранилища ключей. Если ошибка вызвана неверным значением ProtectionParameter (например, неправильным паролем), cause объекта IOException должен быть объектом UnrecoverableKeyException.
NoSuchAlgorithmException — если не удается найти алгоритм, используемый для проверки целостности хранилища ключей.
CertificateException — если не удалось загрузить какой-либо из сертификатов в хранилище ключей.
IllegalArgumentException — если файл не существует или не является обычным файлом либо если параметр не распознан.
NullPointerException — если файл является null.
Начиная с версии:
9
См. также:
  • Provider

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в разделе Документация Java SE, содержащем более подробные описания для разработчиков, концептуальные обзоры, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторские права © 1993, 2025, Oracle и/или ее аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 1993, 2025, 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.
https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/security/KeyStore.html

Spec-Zone.ru

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