Класс KeyStore
public class KeyStore extends Object
A KeyStore управляет различными типами записей. Каждый тип записи реализует интерфейс KeyStore.Entry. Предоставляются три основных реализации KeyStore.Entry:
-
KeyStore.PrivateKeyEntry
Этот тип записи содержит криптографический
PrivateKey, который необязательно хранится в защищенном формате для предотвращения несанкционированного доступа. К нему также прилагается цепочка сертификатов для соответствующего открытого ключа.Закрытые ключи и цепочки сертификатов используются данным субъектом для самоаутентификации. Приложения для этой аутентификации включают организации по распространению программного обеспечения, которые подписывают JAR-файлы в рамках выпуска и/или лицензирования программного обеспечения.
-
KeyStore.SecretKeyEntry
Этот тип записи содержит криптографический
SecretKey, который необязательно хранится в защищенном формате для предотвращения несанкционированного доступа. -
KeyStore.TrustedCertificateEntry
Этот тип записи содержит единственный открытый ключ
Certificate, принадлежащий другой стороне. Он называется доверенным сертификатом, потому что владелец хранилища доверяет, что открытый ключ в сертификате действительно принадлежит идентичности, определенной субъектом (владельцем) сертификата.Этот тип записи можно использовать для аутентификации других сторон.
Каждая запись в хранилище идентифицируется строкой "псевдонима". В случае с закрытыми ключами и связанными с ними цепочками сертификатов эти строки различают различные способы, которыми субъект может аутентифицировать себя. Например, субъект может аутентифицировать себя с использованием разных центров сертификации или разных алгоритмов открытого ключа.
Являются ли псевдонимы регистрозависимыми, зависит от реализации. Чтобы избежать проблем, рекомендуется не использовать псевдонимы в хранилище, которые различаются только регистром.
Являются ли хранилища постоянными и какие механизмы используются хранилищем, если оно постоянно, здесь не указывается. Это позволяет использовать различные методы защиты конфиденциальных (например, закрытых или секретных) ключей. Смарт-карты или другие интегрированные криптографические модули (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
- С момента:
- 1.2
- См. также:
Краткое описание вложенных классов
| Модификатор и тип | Класс | Описание |
|---|---|---|
static class |
KeyStore.Builder |
Описание объекта KeyStore, который должен быть создан. |
static class |
KeyStore.CallbackHandlerProtection |
Объект ProtectionParameter, инкапсулирующий CallbackHandler. |
static interface |
KeyStore.Entry |
Маркерный интерфейс для типов записей KeyStore. |
static interface |
KeyStore.LoadStoreParameter |
|
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. |
Краткое описание конструкторов
| Модификатор | Конструктор | Описание |
|---|---|---|
protected |
Создаёт объект KeyStore заданного типа и инкапсулирует в нём заданную реализацию поставщика (объект SPI). |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
final Enumeration |
aliases() |
Перечисляет все псевдонимы алиасов этого хранилища ключей. |
final boolean |
containsAlias |
Проверяет, существует ли заданный алиас в этом хранилище ключей. |
final void |
deleteEntry |
Удаляет запись, идентифицируемую заданным алиасом, из этого хранилища ключей. |
final boolean |
entryInstanceOf |
Определяет, является ли хранилище ключей Entry для указанного alias экземпляром или подклассом указанного entryClass. |
final Set |
getAttributes |
Возвращает атрибуты, связанные с заданным алиасом. |
final Certificate |
getCertificate |
Возвращает сертификат, связанный с заданным алиасом. |
final String |
getCertificateAlias |
Возвращает (алиас) имя первой записи хранилища ключей, чей сертификат соответствует заданному сертификату. |
final Certificate[] |
getCertificateChain |
Возвращает цепочку сертификатов, связанную с заданным алиасом. |
final Date |
getCreationDate |
Возвращает дату создания записи, идентифицируемой заданным алиасом. |
static final String |
getDefaultType() |
Возвращает тип хранилища ключей по умолчанию, как указано свойством безопасности keystore.type, или строку "pkcs12", если такое свойство не существует. |
final KeyStore.Entry |
getEntry |
Получает хранилище ключей Entry для указанного алиаса с указанным параметром защиты. |
static final KeyStore |
getInstance |
Возвращает загруженный объект хранилища ключей соответствующего типа хранилища ключей. |
static final KeyStore |
getInstance |
Возвращает загруженный объект хранилища ключей соответствующего типа хранилища ключей. |
static KeyStore |
getInstance |
Возвращает объект KeyStore указанного типа. |
static KeyStore |
getInstance |
Возвращает объект KeyStore указанного типа. |
static KeyStore |
getInstance |
Возвращает объект KeyStore указанного типа. |
final Key |
getKey |
Возвращает ключ, связанный с заданным алиасом, используя заданный пароль для его восстановления. |
final Provider |
getProvider() |
Возвращает поставщика этого хранилища ключей. |
final String |
getType() |
Возвращает тип этого хранилища ключей. |
final boolean |
isCertificateEntry |
Возвращает true, если запись, идентифицируемая заданным алиасом, была создана вызовом setCertificateEntry или создана вызовом setEntry с TrustedCertificateEntry. |
final boolean |
isKeyEntry |
Возвращает true, если запись, идентифицируемая заданным алиасом, была создана вызовом setKeyEntry или создана вызовом setEntry с PrivateKeyEntry или SecretKeyEntry. |
final void |
load |
Загружает это хранилище ключей из заданного потока ввода. |
final void |
load |
Загружает это хранилище ключей, используя заданный LoadStoreParameter. |
final void |
setCertificateEntry |
Присваивает заданный доверенный сертификат заданному алиасу. |
final void |
setEntry |
Сохраняет хранилище ключей Entry под указанным алиасом. |
final void |
setKeyEntry |
Присваивает заданный ключ (который уже защищён) заданному алиасу. |
final void |
setKeyEntry |
Присваивает заданный ключ заданному алиасу, защищая его заданным паролем. |
final int |
size() |
Получает количество записей в этом хранилище ключей. |
final void |
store |
Сохраняет это хранилище ключей в заданный поток вывода и защищает его целостность заданным паролем. |
final void |
store |
Сохраняет это хранилище ключей, используя заданный LoadStoreParameter. |
Подробное описание конструкторов
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 дополнительно использует свойство
jdk.security.provider.preferredSecurityдля определения порядка предпочтения провайдеров для указанного алгоритма. Это может отличаться от порядка провайдеров, возвращаемых методомSecurity.getProviders(). - Параметры:
-
type- тип хранилища ключей. См. раздел KeyStore в Спецификации Java Security Standard Algorithm Names для получения информации о стандартных типах хранилищ ключей. - Возвращает:
- объект хранилища ключей указанного типа
- Использует исключения:
-
KeyStoreException- если ни один провайдер не поддерживает реализациюKeyStoreSpiдля указанного типа -
NullPointerException- еслиtypeявляетсяnull - См. также:
getInstance
public static KeyStore getInstance(String type, String provider) throws KeyStoreException, NoSuchProviderException
KeyStore заданного типа. Возвращается новый объект KeyStore, инкапсулирующий реализацию KeyStoreSpi от указанного провайдера. Указанный провайдер должен быть зарегистрирован в списке провайдеров безопасности.
Обратите внимание, что список зарегистрированных провайдеров можно получить с помощью метода Security.getProviders().
- Параметры:
-
type- тип хранилища ключей. См. раздел KeyStore в Спецификации Java Security Standard Algorithm Names для получения информации о стандартных типах хранилищ ключей. -
provider- имя провайдера. - Возвращает:
- объект хранилища ключей указанного типа
- Использует исключения:
-
IllegalArgumentException- если имя провайдера являетсяnullили пустым -
KeyStoreException- если реализацияKeyStoreSpiдля указанного типа недоступна от указанного провайдера -
NoSuchProviderException- если указанный провайдер не зарегистрирован в списке провайдеров безопасности -
NullPointerException- еслиtypeявляетсяnull - См. также:
getInstance
public static KeyStore getInstance(String type, Provider provider) throws KeyStoreException
KeyStore заданного типа. Возвращается новый объект KeyStore, инкапсулирующий реализацию KeyStoreSpi от указанного объекта провайдера. Обратите внимание, что указанный объект провайдера не обязательно должен быть зарегистрирован в списке провайдеров.
- Параметры:
-
type- тип хранилища ключей. См. раздел KeyStore в Спецификации Java Security Standard Algorithm Names для получения информации о стандартных типах хранилищ ключей. -
provider- провайдер. - Возвращает:
- объект хранилища ключей указанного типа
- Использует исключения:
-
IllegalArgumentException- если указанный провайдер являетсяnull -
KeyStoreException- если реализацияKeyStoreSpiдля указанного типа недоступна от указанного объектаProvider -
NullPointerException- еслиtypeявляетсяnull - С:
- 1.4
- См. также:
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.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, то возвращается первый элемент цепочки сертификатов в этой записи.
- Parameters:
-
alias- имя псевдонима - Returns:
- сертификат или
null, если заданный псевдоним не существует или не содержит сертификат. - Throws:
-
KeyStoreException- если хранилище ключей не было инициализировано (загружено).
getCreationDate
public final Date getCreationDate(String alias) throws KeyStoreException
- Parameters:
-
alias- имя псевдонима - Returns:
- дата создания этой записи или
null, если заданный псевдоним не существует - Throws:
-
KeyStoreException- если хранилище ключей не было инициализировано (загружено).
setKeyEntry
public final void setKeyEntry(String alias, Key key, char[] password, Certificate[] chain) throws KeyStoreException
Если заданный ключ является типа java.security.PrivateKey, он должен сопровождаться цепочкой сертификатов, подтверждающих соответствующий открытый ключ.
Если заданный псевдоним уже существует, информация о хранилище ключей, связанная с ним, перезаписывается заданным ключом (и, возможно, цепочкой сертификатов).
- Parameters:
-
alias- имя псевдонима -
key- ключ, который будет связан с псевдонимом -
password- пароль для защиты ключа -
chain- цепочка сертификатов для соответствующего открытого ключа (требуется только если заданный ключ является типаjava.security.PrivateKey). - Throws:
-
KeyStoreException- если хранилище ключей не было инициализировано (загружено), заданный ключ не может быть защищен или данная операция завершилась неудачно по какой-либо другой причине
setKeyEntry
public final void setKeyEntry(String alias, byte[] key, Certificate[] chain) throws KeyStoreException
Если защищенный ключ является типа java.security.PrivateKey, он должен сопровождаться цепочкой сертификатов, подтверждающих соответствующий открытый ключ. Если реализация базового хранилища ключей является типа jks, key должен быть закодирован как EncryptedPrivateKeyInfo в соответствии со стандартом PKCS #8.
Если заданный псевдоним уже существует, информация о хранилище ключей, связанная с ним, перезаписывается заданным ключом (и, возможно, цепочкой сертификатов).
- Parameters:
-
alias- имя псевдонима -
key- ключ (в защищенном формате) для связывания с псевдонимом -
chain- цепочка сертификатов для соответствующего открытого ключа (полезно только если защищенный ключ является типаjava.security.PrivateKey). - Throws:
-
KeyStoreException- если хранилище ключей не было инициализировано (загружено) или данная операция завершилась неудачно по какой-либо другой причине.
setCertificateEntry
public final void setCertificateEntry(String alias, Certificate cert) throws KeyStoreException
Если заданный псевдоним идентифицирует существующую запись, созданную вызовом setCertificateEntry или созданную вызовом setEntry с TrustedCertificateEntry, то доверенный сертификат в существующей записи перезаписывается заданным сертификатом.
- Parameters:
-
alias- имя псевдонима -
cert- сертификат - Throws:
-
KeyStoreException- если хранилище ключей не было инициализировано, или заданный псевдоним уже существует и не идентифицирует запись, содержащую доверенный сертификат, или данная операция завершилась неудачно по какой-либо другой причине.
deleteEntry
public final void deleteEntry(String alias) throws KeyStoreException
- Parameters:
-
alias- имя псевдонима - Throws:
-
KeyStoreException- если хранилище ключей не было инициализировано или запись не может быть удалена.
aliases
public final Enumeration<String> aliases() throws KeyStoreException
- Returns:
- перечисление имён псевдонимов
- Throws:
-
KeyStoreException- если хранилище ключей не было инициализировано (загружено).
containsAlias
public final boolean containsAlias(String alias) throws KeyStoreException
- Parameters:
-
alias- имя псевдонима - Returns:
-
true, если псевдоним существует,falseв противном случае - Throws:
-
KeyStoreException- если хранилище ключей не было инициализировано (загружено).
size
public final int size() throws KeyStoreException
- Returns:
- количество записей в этом хранилище ключей
- Throws:
-
KeyStoreException- если хранилище ключей не было инициализировано (загружено).
isKeyEntry
public final boolean isKeyEntry(String alias) throws KeyStoreException
true, если запись, идентифицированная заданным псевдонимом, была создана вызовом setKeyEntry или вызовом setEntry с PrivateKeyEntry или SecretKeyEntry.- Parameters:
-
alias- псевдоним для проверяемой записи хранилища ключей - Returns:
-
true, если запись, идентифицированная заданным псевдонимом, является записью, связанной с ключом,falseв противном случае. - Throws:
-
KeyStoreException- если хранилище ключей не было инициализировано (загружено).
isCertificateEntry
public final boolean isCertificateEntry(String alias) throws KeyStoreException
true, если запись, идентифицированная заданным псевдонимом, была создана вызовом setCertificateEntry или вызовом setEntry с TrustedCertificateEntry.- Parameters:
-
alias- псевдоним для проверяемой записи хранилища ключей - Returns:
-
true, если запись, идентифицированная заданным псевдонимом, содержит доверенный сертификат,falseв противном случае. - Throws:
-
KeyStoreException- если хранилище ключей не было инициализировано (загружено).
getCertificateAlias
public final String getCertificateAlias(Certificate cert) throws KeyStoreException
Этот метод пытается сопоставить заданный сертификат с каждой записью хранилища ключей. Если рассматриваемая запись была создана вызовом setCertificateEntry, или создана вызовом setEntry с TrustedCertificateEntry, то заданный сертификат сравнивается с сертификатом этой записи.
Если рассматриваемая запись была создана вызовом setKeyEntry, или создана вызовом setEntry с PrivateKeyEntry, то заданный сертификат сравнивается с первым элементом цепочки сертификатов этой записи.
- Parameters:
-
cert- сертификат для сопоставления. - Returns:
- имя псевдонима первой записи с соответствующим сертификатом, или
null, если такая запись не существует в этом хранилище ключей. - Throws:
-
KeyStoreException- если хранилище ключей не было инициализировано (загружено).
store
public final void store(OutputStream stream, char[] password) throws KeyStoreException, IOException, NoSuchAlgorithmException, CertificateException
- Parameters:
-
stream- поток вывода, в который записывается это хранилище ключей. -
password- пароль для генерации проверки целостности хранилища ключей. Может бытьnull, если хранилище ключей не поддерживает или не требует проверки целостности. - Throws:
-
KeyStoreException- если хранилище ключей не было инициализировано (загружено). -
IOException- если произошла проблема с вводом-выводом данных -
NoSuchAlgorithmException- если не удалось найти соответствующий алгоритм проверки целостности данных -
CertificateException- если какой-либо из сертификатов, включённых в данные хранилища ключей, не удалось сохранить
store
public final void store(KeyStore.LoadStoreParameter param) throws KeyStoreException, IOException, NoSuchAlgorithmException, CertificateException
LoadStoreParameter.- Parameters:
-
param-LoadStoreParameter, определяющий способ сохранения хранилища ключей, который может бытьnull - Throws:
-
IllegalArgumentException- если заданный входнойLoadStoreParameterне распознан -
KeyStoreException- если хранилище ключей не было инициализировано (загружено) -
IOException- если возникла проблема ввода-вывода с данными -
NoSuchAlgorithmException- если не был найден соответствующий алгоритм целостности данных -
CertificateException- если какой-либо из сертификатов, включенных в данные хранилища ключей, не удалось сохранить -
UnsupportedOperationException- если эта операция не поддерживается - Since:
- 1.5
load
public final void load(InputStream stream, char[] password) throws IOException, NoSuchAlgorithmException, CertificateException
Пароль может быть задан для разблокировки хранилища ключей (например, хранилище ключей находится на устройстве аппаратного токена) или для проверки целостности данных хранилища ключей. Если пароль не задан для проверки целостности, то проверка целостности не выполняется.
Для создания пустого хранилища ключей или если хранилище ключей не может быть инициализировано из потока, передайте null в качестве аргумента stream.
Обратите внимание, что если это хранилище ключей уже было загружено, оно повторно инициализируется и загружается снова из заданного потока ввода.
- Parameters:
-
stream- поток ввода, из которого загружается хранилище ключей, илиnull -
password- пароль, используемый для проверки целостности хранилища ключей, пароль, используемый для разблокировки хранилища ключей, илиnull - Throws:
-
IOException- если возникла проблема ввода-вывода или формата с данными хранилища ключей, если пароль необходим, но не задан, или если заданный пароль был неверным. Если ошибка вызвана неправильным паролем,causeIOExceptionдолжен бытьUnrecoverableKeyException -
NoSuchAlgorithmException- если алгоритм, используемый для проверки целостности хранилища ключей, не найден -
CertificateException- если какой-либо из сертификатов в хранилище ключей не удалось загрузить
load
public final void load(KeyStore.LoadStoreParameter param) throws IOException, NoSuchAlgorithmException, CertificateException
LoadStoreParameter. Обратите внимание, что если это KeyStore уже было загружено, оно повторно инициализируется и загружается снова из заданного параметра.
- Parameters:
-
param-LoadStoreParameter, определяющий способ загрузки хранилища ключей, который может бытьnull - Throws:
-
IllegalArgumentException- если заданный входнойLoadStoreParameterне распознан -
IOException- если возникла проблема ввода-вывода или формата с данными хранилища ключей. Если ошибка вызвана неправильнымProtectionParameter(например, неправильным паролем),causeIOExceptionдолжен бытьUnrecoverableKeyException -
NoSuchAlgorithmException- если алгоритм, используемый для проверки целостности хранилища ключей, не найден -
CertificateException- если какой-либо из сертификатов в хранилище ключей не удалось загрузить - Since:
- 1.5
getEntry
public final KeyStore.Entry getEntry(String alias, KeyStore.ProtectionParameter protParam) throws NoSuchAlgorithmException, UnrecoverableEntryException, KeyStoreException
- Parameters:
-
alias- получить запись хранилища ключей для этого псевдонима -
protParam-ProtectionParameter, используемый для защитыEntry, который может бытьnull - Returns:
- запись хранилища ключей для указанного псевдонима или
null, если такой записи нет - Throws:
-
NullPointerException- еслиaliasnull -
NoSuchAlgorithmException- если алгоритм восстановления записи не найден -
UnrecoverableEntryException- если указанныеprotParamбыли недостаточными или недействительными -
UnrecoverableKeyException- если запись являетсяPrivateKeyEntryилиSecretKeyEntry, и указанныйprotParamне содержит информации, необходимой для восстановления ключа (например, неправильный пароль) -
KeyStoreException- если хранилище ключей не было инициализировано (загружено). - Since:
- 1.5
- See Also:
setEntry
public final void setEntry(String alias, KeyStore.Entry entry, KeyStore.ProtectionParameter protParam) throws KeyStoreException
Entry. Если запись для указанного псевдонима уже существует, она перезаписывается.
- Parameters:
-
alias- сохранить запись хранилища ключей под этим псевдонимом -
entry- сохраняемаяEntry -
protParam-ProtectionParameter, используемый для защитыEntry, который может бытьnull - Throws:
-
NullPointerException- еслиaliasилиentrynull -
KeyStoreException- если хранилище ключей не было инициализировано (загружено) или если эта операция завершилась неудачно по другой причине - Since:
- 1.5
- See Also:
entryInstanceOf
public final boolean entryInstanceOf(String alias, Class<? extends KeyStore.Entry> entryClass) throws KeyStoreException
- Parameters:
-
alias- имя псевдонима -
entryClass- класс записи - Returns:
-
true, если запись хранилища ключей для указанного псевдонима является экземпляром или подклассом указанного класса,falseв противном случае - Throws:
-
NullPointerException- еслиaliasилиentryClassnull -
KeyStoreException- если хранилище ключей не было инициализировано (загружено) - Since:
- 1.5
getInstance
public static final KeyStore getInstance(File file, char[] password) throws KeyStoreException, IOException, NoSuchAlgorithmException, CertificateException
Пароль может быть задан для разблокировки хранилища ключей (например, хранилище ключей находится на устройстве аппаратного токена) или для проверки целостности данных хранилища ключей. Если пароль не задан для проверки целостности, то проверка целостности не выполняется.
Этот метод проходит по списку зарегистрированных поставщиков безопасности поставщиков, начиная с наиболее предпочтительного. Для каждой реализации KeyStoreSpi, поддерживаемой поставщиком, он вызывает метод engineProbe, чтобы определить, поддерживает ли он указанное хранилище ключей. Возвращается новый объект KeyStore, который инкапсулирует реализацию KeyStoreSpi от первого поставщика, который поддерживает указанный файл.
Обратите внимание, что список зарегистрированных поставщиков можно получить с помощью метода Security.getProviders().
- Parameters:
-
file- файл хранилища ключей -
password- пароль хранилища ключей, который может бытьnull - Returns:
- объект хранилища ключей, загруженный данными хранилища ключей
- Throws:
-
KeyStoreException- если ни один поставщик не поддерживает реализациюKeyStoreSpiдля указанного файла хранилища ключей. -
IOException- если возникла проблема ввода-вывода или формата с данными хранилища ключей, если пароль необходим, но не задан, или если заданный пароль был неверным. Если ошибка вызвана неправильным паролем,causeIOExceptionдолжен бытьUnrecoverableKeyException. -
NoSuchAlgorithmException- если алгоритм, используемый для проверки целостности хранилища ключей, не найден. -
CertificateException- если какой-либо из сертификатов в хранилище ключей не удалось загрузить. -
IllegalArgumentException- если файл не существует или не ссылается на обычный файл. -
NullPointerException- если файлnull. - Since:
- 9
- See Also:
getInstance
public static final KeyStore getInstance(File file, KeyStore.LoadStoreParameter param) throws KeyStoreException, IOException, NoSuchAlgorithmException, CertificateException
LoadStoreParameter, который определяет способ разблокировки данных хранилища ключей или выполнения проверки целостности. Этот метод обходит список зарегистрированных провайдеров безопасности, начиная с предпочтительного провайдера. Для каждой реализации KeyStoreSpi, поддерживаемой провайдером, вызывается метод engineProbe, чтобы определить, поддерживает ли он указанное хранилище ключей. Возвращается новый объект KeyStore, который инкапсулирует реализацию KeyStoreSpi от первого провайдера, поддерживающего указанный файл.
Обратите внимание, что список зарегистрированных провайдеров можно получить с помощью метода Security.getProviders().
- Параметры:
-
file- файл хранилища ключей -
param- параметрLoadStoreParameter, определяющий способ загрузки хранилища ключей, который может бытьnull - Возвращает:
- объект хранилища ключей, загруженный с данными хранилища ключей
- Исключения:
-
KeyStoreException- если ни один провайдер не поддерживает реализациюKeyStoreSpiдля указанного файла хранилища ключей. -
IOException- если есть проблема с вводом-выводом или форматом данных хранилища ключей. Если ошибка вызвана неправильнымProtectionParameter(например, неправильным паролем),causeисключенияIOExceptionдолжен быть объектом типаUnrecoverableKeyException. -
NoSuchAlgorithmException- если алгоритм, используемый для проверки целостности хранилища ключей, не найден. -
CertificateException- если любой из сертификатов в хранилище ключей не удалось загрузить. -
IllegalArgumentException- если файл не существует или не относится к обычному файлу, или если параметр не распознан. -
NullPointerException- если файлnull. - С:
- 9
- См. также:
© 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://download.java.net/java/early_access/jdk24/docs/api/java.base/java/security/KeyStore.html