Класс 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
- Начиная с:
- 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 Reference Implementation дополнительно использует свойство безопасности
jdk.security.provider.preferredSecurityдля определения предпочтительного порядка поставщиков для указанного алгоритма. Этот порядок может отличаться от порядка поставщиков, возвращаемых методомSecurity.getProviders(). - Параметры:
-
type— тип хранилища ключей. Информацию о стандартных типах хранилищ ключей см. в разделе KeyStore спецификации стандартных имен алгоритмов безопасности Java. - Возвращает:
- объект хранилища ключей указанного типа
- Вызывает:
-
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. -
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. -
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не переопределила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
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
- См. также:
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
- См. также:
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
- См. также:
© 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