Класс KeyStoreSpi
public abstract class KeyStoreSpi extends Object
KeyStore. Все абстрактные методы в этом классе должны быть реализованы каждым поставщиком криптографических сервисов, желающим предоставить реализацию хранилища ключей для определенного типа хранилища ключей.- Since:
- 1.2
- См. также:
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
KeyStoreSpi() |
Конструктор для вызова подклассами. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
abstract Enumeration |
engineAliases() |
Отображает все псевдонимы (alias) этого хранилища ключей. |
abstract boolean |
engineContainsAlias |
Проверяет, существует ли заданный псевдоним (alias) в этом хранилище ключей. |
abstract void |
engineDeleteEntry |
Удаляет запись, идентифицируемую заданным псевдонимом (alias), из этого хранилища ключей. |
boolean |
engineEntryInstanceOf |
Определяет, является ли хранилище ключей Entry для указанного alias экземпляром или подклассом указанного entryClass. |
Set |
engineGetAttributes |
Извлекает атрибуты, связанные с заданным псевдонимом (alias). |
abstract Certificate |
engineGetCertificate |
Возвращает сертификат, связанный с заданным псевдонимом (alias). |
abstract String |
engineGetCertificateAlias |
Возвращает (псевдоним) имя первой записи хранилища ключей, сертификат которой соответствует заданному сертификату. |
abstract Certificate[] |
engineGetCertificateChain |
Возвращает цепочку сертификатов, связанную с заданным псевдонимом (alias). |
abstract Date |
engineGetCreationDate |
Возвращает дату создания записи, идентифицируемой заданным псевдонимом (alias). |
KeyStore.Entry |
engineGetEntry |
Возвращает KeyStore.Entry для указанного псевдонима (alias) с указанным параметром защиты. |
abstract Key |
engineGetKey |
Возвращает ключ, связанный с заданным псевдонимом (alias), используя заданный пароль для его извлечения. |
abstract boolean |
engineIsCertificateEntry |
Возвращает true, если запись, идентифицируемая заданным псевдонимом (alias), была создана вызовом setCertificateEntry или вызовом setEntry с TrustedCertificateEntry. |
abstract boolean |
engineIsKeyEntry |
Возвращает true, если запись, идентифицируемая заданным псевдонимом (alias), была создана вызовом setKeyEntry или вызовом setEntry с PrivateKeyEntry или SecretKeyEntry. |
abstract void |
engineLoad |
Загружает хранилище ключей из заданного потока ввода. |
void |
engineLoad |
Загружает хранилище ключей, используя заданный KeyStore.LoadStoreParameter. |
boolean |
engineProbe |
Пробует указанный поток ввода, чтобы определить, содержит ли он хранилище ключей, поддерживаемое этой реализацией, или нет. |
abstract void |
engineSetCertificateEntry |
Присваивает заданный сертификат заданному псевдониму (alias). |
void |
engineSetEntry |
Сохраняет KeyStore.Entry под указанным псевдонимом (alias). |
abstract void |
engineSetKeyEntry |
Присваивает заданный ключ (который уже защищен) заданному псевдониму (alias). |
abstract void |
engineSetKeyEntry |
Присваивает заданный ключ заданному псевдониму (alias), защищая его заданным паролем. |
abstract int |
engineSize() |
Извлекает количество записей в этом хранилище ключей. |
abstract void |
engineStore |
Сохраняет это хранилище ключей в заданном потоке вывода и защищает его целостность заданным паролем. |
void |
engineStore |
Сохраняет это хранилище ключей, используя заданный KeyStore.LoadStoreParameter. |
Подробное описание конструкторов
KeyStoreSpi
public KeyStoreSpi()
Подробное описание методов
engineGetKey
public abstract Key engineGetKey(String alias, char[] password) throws NoSuchAlgorithmException, UnrecoverableKeyException
setKeyEntry или вызовом setEntry с PrivateKeyEntry или SecretKeyEntry.- Параметры:
-
alias- имя псевдонима -
password- пароль для извлечения ключа - Возвращает:
- запрашиваемый ключ или
null, если заданный псевдоним не существует или не идентифицирует запись, связанную с ключом. - Выбрасывает:
-
NoSuchAlgorithmException- если алгоритм извлечения ключа не найден -
UnrecoverableKeyException- если ключ не может быть извлечен (например, указанный пароль неверен).
engineGetCertificateChain
public abstract Certificate[] engineGetCertificateChain(String alias)
setKeyEntry или вызовом setEntry с PrivateKeyEntry.- Параметры:
-
alias- имя псевдонима - Возвращает:
- цепочку сертификатов (упорядоченную с сертификатом пользователя первым и сертификатом корневого центра сертификации последним) или
null, если указанный псевдоним не существует или не содержит цепочки сертификатов
engineGetCertificate
public abstract Certificate engineGetCertificate(String alias)
Если заданное имя псевдонима идентифицирует запись, созданную вызовом setCertificateEntry или созданную вызовом setEntry с TrustedCertificateEntry, возвращается доверенный сертификат, содержащийся в этой записи.
Если заданное имя псевдонима идентифицирует запись, созданную вызовом setKeyEntry или созданную вызовом setEntry с PrivateKeyEntry, возвращается первый элемент цепочки сертификатов в этой записи (если такая цепочка существует).
- Параметры:
-
alias- имя псевдонима - Возвращает:
- сертификат или
null, если заданный псевдоним не существует или не содержит сертификата.
engineGetCreationDate
public abstract Date engineGetCreationDate(String alias)
- Параметры:
-
alias- имя псевдонима - Возвращает:
- дату создания этой записи или
null, если заданный псевдоним не существует
engineSetKeyEntry
public abstract void engineSetKeyEntry(String alias, Key key, char[] password, Certificate[] chain) throws KeyStoreException
Если заданный ключ является типа java.security.PrivateKey, он должен сопровождаться цепочкой сертификатов, подтверждающих соответствующий открытый ключ.
Если заданный псевдоним уже существует, информация о хранилище ключей, связанная с ним, перезаписывается заданным ключом (и, возможно, цепочкой сертификатов).
- Параметры:
-
alias- имя псевдонима -
key- ключ, который нужно связать с псевдонимом -
password- пароль для защиты ключа -
chain- цепочка сертификатов для соответствующего открытого ключа (требуется только если заданный ключ является типаjava.security.PrivateKey). - Выбрасывает:
-
KeyStoreException- если заданный ключ не может быть защищен или данная операция не удалась по какой-либо другой причине
engineSetKeyEntry
public abstract void engineSetKeyEntry(String alias, byte[] key, Certificate[] chain) throws KeyStoreException
Если защищенный ключ является типа java.security.PrivateKey, он должен сопровождаться цепочкой сертификатов, подтверждающих соответствующий открытый ключ.
Если заданный псевдоним уже существует, информация о хранилище ключей, связанная с ним, перезаписывается заданным ключом (и, возможно, цепочкой сертификатов).
- Параметры:
-
alias- имя псевдонима -
key- ключ (в защищенном формате) для связи с псевдонимом -
chain- цепочка сертификатов для соответствующего открытого ключа (полезно только если защищенный ключ является типаjava.security.PrivateKey). - Выбрасывает:
-
KeyStoreException- если данная операция не удалась.
engineSetCertificateEntry
public abstract void engineSetCertificateEntry(String alias, Certificate cert) throws KeyStoreException
Если заданный псевдоним идентифицирует существующую запись, созданную вызовом setCertificateEntry или созданную вызовом setEntry с TrustedCertificateEntry, доверенный сертификат в существующей записи перезаписывается заданным сертификатом.
- Параметры:
-
alias- имя псевдонима -
cert- сертификат - Выбрасывает:
-
KeyStoreException- если заданный псевдоним уже существует и не идентифицирует запись, содержащую доверенный сертификат, или данная операция не удалась по какой-либо другой причине.
engineDeleteEntry
public abstract void engineDeleteEntry(String alias) throws KeyStoreException
- Параметры:
-
alias- имя псевдонима - Выбрасывает:
-
KeyStoreException- если запись не может быть удалена.
engineAliases
public abstract Enumeration<String> engineAliases()
- Возвращает:
- перечисление имён псевдонимов
engineContainsAlias
public abstract boolean engineContainsAlias(String alias)
- Параметры:
-
alias- имя псевдонима - Возвращает:
-
true, если псевдоним существует,falseв противном случае
engineSize
public abstract int engineSize()
- Возвращает:
- количество записей в этом хранилище ключей
engineIsKeyEntry
public abstract boolean engineIsKeyEntry(String alias)
true, если запись, идентифицированная заданным псевдонимом, была создана вызовом setKeyEntry или создана вызовом setEntry с PrivateKeyEntry или SecretKeyEntry.- Параметры:
-
alias- псевдоним для записи хранилища ключей, которая будет проверена - Возвращает:
-
true, если запись, идентифицированная заданным псевдонимом, является записью, связанной с ключом,falseв противном случае.
engineIsCertificateEntry
public abstract boolean engineIsCertificateEntry(String alias)
true, если запись, идентифицированная заданным псевдонимом, была создана вызовом setCertificateEntry или создана вызовом setEntry с TrustedCertificateEntry.- Параметры:
-
alias- псевдоним для записи хранилища ключей, которая будет проверена - Возвращает:
-
true, если запись, идентифицированная заданным псевдонимом, содержит доверенный сертификат,falseв противном случае.
engineGetCertificateAlias
public abstract String engineGetCertificateAlias(Certificate cert)
Этот метод пытается сопоставить заданный сертификат с каждой записью хранилища ключей. Если рассматриваемая запись была создана вызовом setCertificateEntry или создана вызовом setEntry с TrustedCertificateEntry, заданный сертификат сравнивается с сертификатом этой записи.
Если рассматриваемая запись была создана вызовом setKeyEntry или создана вызовом setEntry с PrivateKeyEntry, заданный сертификат сравнивается с первым элементом цепочки сертификатов этой записи.
- Параметры:
-
cert- сертификат для сопоставления. - Возвращает:
- имя псевдонима первой записи с соответствующим сертификатом или
null, если такая запись не существует в этом хранилище ключей.
engineStore
public abstract void engineStore(OutputStream stream, char[] password) throws IOException, NoSuchAlgorithmException, CertificateException
- Параметры:
-
stream- поток вывода, в который записывается это хранилище ключей. -
password- пароль для генерации проверки целостности хранилища ключей. Может бытьnull, если хранилище ключей не поддерживает или не требует проверки целостности. - Исключения:
-
IOException- если возникла проблема с вводом-выводом данных -
NoSuchAlgorithmException- если соответствующий алгоритм целостности данных не найден -
CertificateException- если любое из сертификатов, включённых в данные хранилища ключей, не удалось сохранить
engineStore
public void engineStore(KeyStore.LoadStoreParameter param) throws IOException, NoSuchAlgorithmException, CertificateException
KeyStore.LoadStoreParameter.- Требования к реализации:
- По умолчанию реализация выбрасывает
UnsupportedOperationException. - Параметры:
-
param-KeyStore.LoadStoreParameter, который определяет, как сохранить хранилище ключей, которое может бытьnull - Исключения:
-
IllegalArgumentException- если заданныйKeyStore.LoadStoreParameterввод не распознан -
IOException- если возникла проблема с вводом-выводом данных -
NoSuchAlgorithmException- если соответствующий алгоритм целостности данных не найден -
CertificateException- если любое из сертификатов, включённых в данные хранилища ключей, не удалось сохранить -
UnsupportedOperationException- если реализация не поддерживает эту операцию - С:
- 1.5
engineLoad
public abstract void engineLoad(InputStream stream, char[] password) throws IOException, NoSuchAlgorithmException, CertificateException
Пароль может быть задан для разблокировки хранилища ключей (например, хранилище ключей находится на устройстве аппаратного токена) или для проверки целостности данных хранилища ключей. Если пароль не задан для проверки целостности, то проверка целостности не выполняется.
- Параметры:
-
stream- поток ввода, из которого загружается хранилище ключей, илиnull -
password- пароль, используемый для проверки целостности хранилища ключей, пароль, используемый для разблокировки хранилища ключей, илиnull - Исключения:
-
IOException- если возникла проблема с вводом-выводом или форматом данных хранилища ключей, если требуется пароль, но он не задан, или если заданный пароль был неправильным. Если ошибка вызвана неправильным паролем,causeIOExceptionдолжен бытьUnrecoverableKeyException -
NoSuchAlgorithmException- если алгоритм проверки целостности хранилища ключей не найден -
CertificateException- если любой из сертификатов в хранилище ключей не удалось загрузить
engineLoad
public void engineLoad(KeyStore.LoadStoreParameter param) throws IOException, NoSuchAlgorithmException, CertificateException
KeyStore.LoadStoreParameter. Обратите внимание, что если это хранилище ключей уже загружено, оно повторно инициализируется и загружается снова из заданного параметра.
- Требования к реализации:
- По умолчанию реализация проверяет
KeyStore.LoadStoreParameter, чтобы извлечь его пароль и передать его вengineLoad(InputStream, char[])вместе сnullInputStream.Если
KeyStore.LoadStoreParameterявляетсяnull, то параметр пароля также будетnull. В противном случае,KeyStore.ProtectionParameterKeyStore.LoadStoreParameterдолжен быть либоKeyStore.PasswordProtection, либоKeyStore.CallbackHandlerProtection, который поддерживаетPasswordCallback, чтобы параметр пароля можно было извлечь. ЕслиKeyStore.ProtectionParameterни то, ни другое, выбрасываетсяNoSuchAlgorithmException. - Параметры:
-
param-KeyStore.LoadStoreParameter, который определяет, как загрузить хранилище ключей, которое может бытьnull - Исключения:
-
IllegalArgumentException- если заданныйKeyStore.LoadStoreParameterввод не распознан -
IOException- если возникла проблема с вводом-выводом или форматом данных хранилища ключей. Если ошибка вызвана неправильнымProtectionParameter(например, неправильным паролем),causeIOExceptionдолжен бытьUnrecoverableKeyException -
NoSuchAlgorithmException- если алгоритм проверки целостности хранилища ключей не найден -
CertificateException- если любой из сертификатов в хранилище ключей не удалось загрузить - С:
- 1.5
engineGetAttributes
public Set<KeyStore.Entry.Attribute> engineGetAttributes(String alias)
- Требования к реализации:
- По умолчанию реализация возвращает пустой
Set.KeyStoreSpiреализации, которые поддерживают атрибуты, должны переопределить этот метод. - Параметры:
-
alias- имя псевдонима - Возвращает:
- неизменяемый
Setатрибутов. Этот набор пуст, если заданного псевдонима не существует или если нет атрибутов, связанных с псевдонимом. Этот набор также может быть пустым дляPrivateKeyEntryилиSecretKeyEntryзаписей, которые содержат защищённые атрибуты. Эти защищённые атрибуты должны быть заполнены в результат, возвращаемыйengineGetEntry(java.lang.String, java.security.KeyStore.ProtectionParameter), и могут быть извлечены путём вызова методаKeyStore.Entry.getAttributes(). - С:
- 18
engineGetEntry
public KeyStore.Entry engineGetEntry(String alias, KeyStore.ProtectionParameter protParam) throws KeyStoreException, NoSuchAlgorithmException, UnrecoverableEntryException
KeyStore.Entry для указанного псевдонима с указанным параметром защиты.- Параметры:
-
alias- получитьKeyStore.Entryдля этого псевдонима -
protParam-ProtectionParameter, используемый для защитыEntry, который может бытьnull - Возвращает:
KeyStore.Entryдля указанного псевдонима илиnull, если такой записи нет- Исключения:
-
KeyStoreException- если операция завершилась неудачей -
NoSuchAlgorithmException- если алгоритм восстановления записи не найден -
UnrecoverableEntryException- если указанныеprotParamбыли недостаточными или недействительными -
UnrecoverableKeyException- если запись являетсяPrivateKeyEntryилиSecretKeyEntry, и указанныйprotParamне содержит информации, необходимой для восстановления ключа (например, неправильный пароль) - С:
- 1.5
engineSetEntry
public void engineSetEntry(String alias, KeyStore.Entry entry, KeyStore.ProtectionParameter protParam) throws KeyStoreException
KeyStore.Entry под указанным псевдонимом. Указанный параметр защиты используется для защиты Entry. Если для указанного псевдонима уже существует запись, она перезаписывается.
- Параметры:
-
alias- сохранитьKeyStore.Entryпод этим псевдонимом -
entry-Entryдля сохранения -
protParam-ProtectionParameter, используемый для защитыEntry, который может бытьnull - Исключения:
-
KeyStoreException- если эта операция завершается неудачей - С:
- 1.5
engineEntryInstanceOf
public boolean engineEntryInstanceOf(String alias, Class<? extends KeyStore.Entry> entryClass)
Entry хранилища ключей для указанного alias экземпляром или подклассом указанного entryClass.- Параметры:
-
alias- имя псевдонима -
entryClass- класс записи - Возвращает:
-
true, еслиEntryхранилища ключей для указанногоaliasявляется экземпляром или подклассом указанногоentryClass, в противном случае false - С:
- 1.5
engineProbe
public boolean engineProbe(InputStream stream) throws IOException
- Требования к реализации:
- Этот метод возвращает
falseпо умолчанию. Реализации хранилища ключей должны переопределить этот метод, чтобы непосредственно просмотреть поток данных или использовать другие механизмы обнаружения содержимого. - Параметры:
-
stream- данные хранилища ключей, которые нужно проверить - Возвращает:
-
true, если данные хранилища ключей поддерживаются, в противном случаеfalse - Исключения:
-
IOException- если возникла проблема с вводом-выводом данных хранилища ключей. -
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/KeyStoreSpi.html