Класс KeyStore
- java.lang.Object
-
- java.security.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.ProtectionParameter protParam =
new KeyStore.PasswordProtection(password);
// 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
try (FileOutputStream fos = new FileOutputStream("newKeyStoreName")) {
ks.store(fos, password);
} Обратите внимание, что хотя для загрузки хранилища, защиты записи закрытого ключа, защиты записи секретного ключа и сохранения хранилища (как показано в примере кода выше) может использоваться один и тот же пароль, также могут использоваться разные пароли или другие параметры защиты. Каждая реализация платформы Java обязана поддерживать следующий стандартный тип KeyStore:
PKCS12
- С момента:
- 1.2
- См. также:
-
PrivateKey,SecretKey,Certificate
Вложенные классы
| Модификатор и тип | Класс | Описание |
|---|---|---|
static class | KeyStore.Builder | Описание объекта KeyStore, который будет создаваться. |
static class | KeyStore.CallbackHandlerProtection | ProtectionParameter, содержащий CallbackHandler. |
static interface | KeyStore.Entry | Маркерный интерфейс для типов записей |
static interface | KeyStore.LoadStoreParameter | |
static class | KeyStore.PasswordProtection | Реализация |
static class | KeyStore.PrivateKeyEntry | Запись |
static interface | KeyStore.ProtectionParameter | Маркерный интерфейс для параметров защиты хранилища. |
static class | KeyStore.SecretKeyEntry | Запись |
static class | KeyStore.TrustedCertificateEntry | Запись |
Краткое описание конструкторов
| Модификатор | Конструктор | Описание |
|---|---|---|
protected | KeyStore(KeyStoreSpi keyStoreSpi,
Provider provider,
String type) | Создает объект KeyStore заданного типа и инкапсулирует в нём указанную реализацию поставщика (объект SPI). |
Методы
| Модификатор и тип | Метод | Описание |
|---|---|---|
Enumeration<String> | aliases() | Выводит все псевдонимы имен этого хранилища ключей. |
boolean | containsAlias(String alias) | Проверяет, существует ли заданный псевдоним в этом хранилище ключей. |
void | deleteEntry(String alias) | Удаляет запись, идентифицированную заданным псевдонимом, из этого хранилища ключей. |
boolean | entryInstanceOf(String alias,
Class<? extends KeyStore.Entry> entryClass) | Определяет, является ли хранилище ключей |
Certificate | getCertificate(String alias) | Возвращает сертификат, связанный с заданным псевдонимом. |
String | getCertificateAlias(Certificate cert) | Возвращает (псевдоним) имя первой записи хранилища ключей, сертификат которой соответствует заданному сертификату. |
Certificate[] | getCertificateChain(String alias) | Возвращает цепочку сертификатов, связанную с заданным псевдонимом. |
Date | getCreationDate(String alias) | Возвращает дату создания записи, идентифицированной заданным псевдонимом. |
static String | getDefaultType() | Возвращает тип хранилища ключей по умолчанию, как указано в свойстве безопасности |
KeyStore.Entry | getEntry(String alias,
KeyStore.ProtectionParameter protParam) | Получает хранилище ключей |
static KeyStore | getInstance(File file,
char[] password) | Возвращает загруженный объект хранилища ключей соответствующего типа хранилища ключей. |
static KeyStore | getInstance(File file,
KeyStore.LoadStoreParameter param) | Возвращает загруженный объект хранилища ключей соответствующего типа хранилища ключей. |
static KeyStore | getInstance(String type) | Возвращает объект хранилища ключей указанного типа. |
static KeyStore | getInstance(String type,
String provider) | Возвращает объект хранилища ключей указанного типа. |
static KeyStore | getInstance(String type,
Provider provider) | Возвращает объект хранилища ключей указанного типа. |
Key | getKey(String alias,
char[] password) | Возвращает ключ, связанный с заданным псевдонимом, используя заданный пароль для его восстановления. |
Provider | getProvider() | Возвращает поставщика этого хранилища ключей. |
String | getType() | Возвращает тип этого хранилища ключей. |
boolean | isCertificateEntry(String alias) | Возвращает true, если запись, идентифицированная заданным псевдонимом, была создана вызовом |
boolean | isKeyEntry(String alias) | Возвращает true, если запись, идентифицированная заданным псевдонимом, была создана вызовом |
void | load(InputStream stream,
char[] password) | Загружает это хранилище ключей из заданного потока ввода. |
void | load(KeyStore.LoadStoreParameter param) | Загружает это хранилище ключей, используя заданный |
void | setCertificateEntry(String alias,
Certificate cert) | Присваивает заданный доверенный сертификат заданному псевдониму. |
void | setEntry(String alias,
KeyStore.Entry entry,
KeyStore.ProtectionParameter protParam) | Сохраняет хранилище ключей |
void | setKeyEntry(String alias,
byte[] key,
Certificate[] chain) | Присваивает заданный ключ (который уже защищен) заданному псевдониму. |
void | setKeyEntry(String alias,
Key key,
char[] password,
Certificate[] chain) | Присваивает заданный ключ заданному псевдониму, защищая его заданным паролем. |
int | size() | Возвращает количество записей в этом хранилище ключей. |
void | store(OutputStream stream,
char[] password) | Сохраняет это хранилище ключей в заданный поток вывода и защищает его целостность заданным паролем. |
void | store(KeyStore.LoadStoreParameter param) | Сохраняет это хранилище ключей, используя заданный |
Методы, объявленные в классе java.lang.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, инкапсулирующий реализацию KeyStoreSpi от первого поставщика, который поддерживает указанный тип.
Обратите внимание, что список зарегистрированных поставщиков можно получить с помощью метода Security.getProviders().
- Примечание реализации:
- Реализация JDK дополнительно использует свойство
jdk.security.provider.preferredSecurityдля определения порядка предпочтительных поставщиков для указанного алгоритма. Это может отличаться от порядка поставщиков, возвращаемого методомSecurity.getProviders(). - Параметры:
-
type- тип хранилища ключей. См. раздел KeyStore в Спецификации Java Security Standard Algorithm Names для получения информации о стандартных типах хранилищ ключей. - Возвращаемое значение:
- объект хранилища ключей указанного типа
- Исключения:
-
KeyStoreException- если ни одинProviderне поддерживает реализациюKeyStoreSpiдля указанного типа -
NullPointerException- еслиtypeявляетсяnull - См. также:
Provider
getInstance
public static KeyStore getInstance(String type,
String provider)
throws KeyStoreException,
NoSuchProviderException Возвращает объект хранилища ключей указанного типа.
Возвращается новый объект KeyStore, инкапсулирующий реализацию KeyStoreSpi от указанного поставщика. Указанный поставщик должен быть зарегистрирован в списке поставщиков безопасности.
Обратите внимание, что список зарегистрированных поставщиков можно получить с помощью метода Security.getProviders().
- Параметры:
-
type- тип хранилища ключей. См. раздел KeyStore в Спецификации Java Security Standard Algorithm Names для получения информации о стандартных типах хранилищ ключей. -
provider- имя поставщика. - Возвращаемое значение:
- объект хранилища ключей указанного типа
- Исключения:
-
IllegalArgumentException- если имя поставщикаnullили пустое -
KeyStoreException- если реализацияKeyStoreSpiдля указанного типа недоступна от указанного поставщика -
NoSuchProviderException- если указанный поставщик не зарегистрирован в списке поставщиков безопасности -
NullPointerException- еслиtypeявляетсяnull - См. также:
Provider
getInstance
public static KeyStore getInstance(String type,
Provider provider)
throws KeyStoreException Возвращает объект хранилища ключей указанного типа.
Возвращается новый объект KeyStore, инкапсулирующий реализацию KeyStoreSpi от указанного объекта Provider. Обратите внимание, что указанный объект Provider не обязательно должен быть зарегистрирован в списке поставщиков.
- Параметры:
-
type- тип хранилища ключей. См. раздел KeyStore в Спецификации Java Security Standard Algorithm Names для получения информации о стандартных типах хранилищ ключей. -
provider- поставщик. - Возвращаемое значение:
- объект хранилища ключей указанного типа
- Исключения:
-
IllegalArgumentException- если указанный поставщикnull -
KeyStoreException- если реализацияKeyStoreSpiдля указанного типа недоступна от указанного объектаProvider -
NullPointerException- еслиtypeявляетсяnull - С тех пор:
- 1.4
- См. также:
Provider
getDefaultType
public static final String getDefaultType()
Возвращает тип хранилища ключей по умолчанию, как указано в свойстве безопасности keystore.type, или строку "jks" (аббревиатура от "Java keystore"), если такое свойство не существует.
Тип хранилища ключей по умолчанию может использоваться приложениями, которые не хотят использовать жестко заданный тип хранилища ключей при вызове одного из методов getInstance, и хотят предоставить тип хранилища ключей по умолчанию в случае, если пользователь не укажет свой собственный.
Тип хранилища ключей по умолчанию можно изменить, установив значение свойства безопасности keystore.type на желаемый тип хранилища ключей.
- Возвращаемое значение:
- тип хранилища ключей по умолчанию, как указано в свойстве безопасности
keystore.type, или строка "jks", если такое свойство не существует. - См. также:
security properties
getProvider
public final Provider getProvider()
Возвращает поставщика данного хранилища ключей.
- Возвращаемое значение:
- поставщик данного хранилища ключей.
getType
public final String getType()
Возвращает тип данного хранилища ключей.
- Возвращаемое значение:
- тип данного хранилища ключей.
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- пароль для генерации проверки целостности хранилища ключей - Исключения:
-
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- если любой из сертификатов, включенных в данные хранилища ключей, не был сохранен - Since:
- 1.5
load
public final void load(InputStream stream,
char[] password)
throws IOException,
NoSuchAlgorithmException,
CertificateException Загружает это хранилище ключей из заданного потока ввода.
Пароль может быть задан для разблокировки хранилища ключей (например, хранилище ключей находится на устройстве аппаратного токена) или для проверки целостности данных хранилища ключей. Если пароль не задан для проверки целостности, то проверка целостности не выполняется.
Для создания пустого хранилища ключей или если хранилище ключей не может быть инициализировано из потока, передайте null в качестве stream аргумента.
Обратите внимание, что если это хранилище ключей уже было загружено, оно повторно инициализируется и загружается снова из заданного потока ввода.
- Параметры:
-
stream- поток ввода, из которого загружается хранилище ключей, илиnull -
password- пароль, используемый для проверки целостности хранилища ключей, пароль, используемый для разблокировки хранилища ключей, илиnull - Исключения:
-
IOException- если возникла проблема ввода-вывода или проблема с форматом данных хранилища ключей, если пароль необходим, но не задан, или если заданный пароль был неверным. Если ошибка вызвана неправильным паролем,causeIOExceptionдолжен бытьUnrecoverableKeyException -
NoSuchAlgorithmException- если алгоритм проверки целостности хранилища ключей не найден -
CertificateException- если любой из сертификатов в хранилище ключей не мог быть загружен
load
public final void load(KeyStore.LoadStoreParameter param)
throws IOException,
NoSuchAlgorithmException,
CertificateException Загружает это хранилище ключей, используя заданный LoadStoreParameter.
Обратите внимание, что если это хранилище ключей уже было загружено, оно повторно инициализируется и загружается снова из заданного параметра.
- Параметры:
-
param-LoadStoreParameter, который определяет способ загрузки хранилища ключей, который может бытьnull - Исключения:
-
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 Получает запись хранилища ключей для указанного псевдонима с указанным параметром защиты.
- Параметры:
-
alias- получить запись хранилища ключей для этого псевдонима -
protParam-ProtectionParameterиспользуемый для защитыEntry, который может бытьnull - Возвращает:
- запись хранилища ключей для указанного псевдонима или
null, если такой записи нет - Исключения:
-
NullPointerException- еслиaliasявляетсяnull -
NoSuchAlgorithmException- если алгоритм извлечения записи не найден -
UnrecoverableEntryException- если указанныеprotParamбыли недостаточными или неверными -
UnrecoverableKeyException- если запись являетсяPrivateKeyEntryилиSecretKeyEntryи указанныйprotParamне содержит необходимой информации для извлечения ключа (например, неправильный пароль) -
KeyStoreException- если хранилище ключей не было инициализировано (загружено). - Since:
- 1.5
- См. также:
setEntry(String, KeyStore.Entry, KeyStore.ProtectionParameter)
setEntry
public final void setEntry(String alias,
KeyStore.Entry entry,
KeyStore.ProtectionParameter protParam)
throws KeyStoreException Сохраняет запись хранилища ключей под указанным псевдонимом. Параметр защиты используется для защиты Entry.
Если запись уже существует для указанного псевдонима, она переопределяется.
- Параметры:
-
alias- сохранить запись хранилища ключей под этим псевдонимом -
entry- сохраняемаяEntry -
protParam-ProtectionParameterиспользуемый для защитыEntry, который может бытьnull - Исключения:
-
NullPointerException- еслиaliasилиentryявляетсяnull -
KeyStoreException- если хранилище ключей не было инициализировано (загружено), или данная операция завершается неудачно по какой-либо другой причине - Since:
- 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илиentryClassnull -
KeyStoreException- если хранилище ключей не было инициализировано (загружено) - С:
- 1.5
getInstance
public static final KeyStore getInstance(File file,
char[] password)
throws KeyStoreException,
IOException,
NoSuchAlgorithmException,
CertificateException Возвращает загруженный объект хранилища ключей соответствующего типа. Сначала определяется тип хранилища ключей путем проверки указанного файла. Затем создаётся объект хранилища ключей и загружаются данные из этого файла.
Пароль может быть задан для разблокировки хранилища ключей (например, если хранилище находится на устройстве аппаратного токена) или для проверки целостности данных хранилища ключей. Если пароль не задан для проверки целостности, то проверка целостности не выполняется.
Этот метод проходит по списку зарегистрированных поставщиков безопасности поставщиков, начиная с предпочтительного. Для каждой реализации KeyStoreSpi, поддерживаемой поставщиком, вызывается метод engineProbe, чтобы определить, поддерживает ли она указанное хранилище. Объект KeyStore, содержащий реализацию KeyStoreSpi от первого поставщика, который поддерживает указанный файл, возвращается в качестве нового объекта.
Обратите внимание, что список зарегистрированных поставщиков можно получить с помощью метода Security.getProviders().
- Параметры:
-
file- файл хранилища ключей -
password- пароль хранилища ключей, который может бытьnull - Возвращает:
- объект хранилища ключей, загруженный с данными хранилища ключей
- Выбрасывает:
-
KeyStoreException- если ни один поставщик не поддерживает реализацию KeyStoreSpi для указанного файла хранилища ключей. -
IOException- если возникла проблема с вводом-выводом или форматом данных хранилища ключей, если требуется пароль, но он не задан, или если заданный пароль был неправильным. Если ошибка вызвана неправильным паролем, тоcauseIOExceptionдолжен бытьUnrecoverableKeyException. -
NoSuchAlgorithmException- если алгоритм, используемый для проверки целостности хранилища ключей, не найден. -
CertificateException- если какие-либо сертификаты в хранилище ключей не удалось загрузить. -
IllegalArgumentException- если файл не существует или не ссылается на обычный файл. -
NullPointerException- если файлnull. -
SecurityException- если существует менеджер безопасности, и его методSecurityManager.checkRead(java.io.FileDescriptor)запрещает доступ для чтения к указанному файлу. - С:
- 9
- См. также:
Provider
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. -
SecurityException- если существует менеджер безопасности, и его методSecurityManager.checkRead(java.io.FileDescriptor)запрещает доступ для чтения к указанному файлу. - С:
- 9
- См. также:
Provider
© 1993, 2020, 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/11/docs/api/java.base/java/security/KeyStore.html