Класс KeyStoreSpi
public abstract class KeyStoreSpi extends Object
KeyStore. Все абстрактные методы этого класса должны быть реализованы каждым поставщиком криптографических служб, который хочет предоставить реализацию хранилища ключей для определённого типа хранилища ключей.- Начиная с версии:
- 1.2
- См. также:
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
KeyStoreSpi() |
Конструктор для вызова из подклассов. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
abstract Enumeration |
engineAliases() |
Перечисляет все имена псевдонимов этого хранилища ключей. |
abstract boolean |
engineContainsAlias |
Проверяет, существует ли указанный псевдоним в этом хранилище ключей. |
abstract void |
engineDeleteEntry |
Удаляет из этого хранилища ключей запись, указанную заданным псевдонимом. |
boolean |
engineEntryInstanceOf |
Определяет, является ли Entry хранилища ключей для указанного alias экземпляром указанного entryClass или его подклассом. |
Set |
engineGetAttributes |
Получает атрибуты, связанные с заданным псевдонимом. |
abstract Certificate |
engineGetCertificate |
Возвращает сертификат, связанный с заданным псевдонимом. |
abstract String |
engineGetCertificateAlias |
Возвращает имя (псевдоним) первой записи хранилища ключей, сертификат которой совпадает с заданным сертификатом. |
abstract Certificate[] |
engineGetCertificateChain |
Возвращает цепочку сертификатов, связанную с заданным псевдонимом. |
abstract Date |
engineGetCreationDate |
Возвращает дату создания записи, указанной заданным псевдонимом. |
KeyStore.Entry |
engineGetEntry |
Получает KeyStore.Entry для указанного псевдонима с заданным параметром защиты. |
abstract Key |
engineGetKey |
Возвращает ключ, связанный с заданным псевдонимом, используя заданный пароль для его восстановления. |
abstract boolean |
engineIsCertificateEntry |
Возвращает true, если запись, указанная заданным псевдонимом, создана вызовом setCertificateEntry или вызовом setEntry с TrustedCertificateEntry. |
abstract boolean |
engineIsKeyEntry |
Возвращает true, если запись, указанная заданным псевдонимом, создана вызовом setKeyEntry или вызовом setEntry с PrivateKeyEntry либо SecretKeyEntry. |
abstract void |
engineLoad |
Загружает хранилище ключей из заданного входного потока. |
void |
engineLoad |
Загружает хранилище ключей, используя заданный KeyStore.LoadStoreParameter. |
boolean |
engineProbe |
Проверяет указанный входной поток, чтобы определить, содержит ли он хранилище ключей, поддерживаемое этой реализацией. |
abstract void |
engineSetCertificateEntry |
Связывает заданный сертификат с заданным псевдонимом. |
void |
engineSetEntry |
Сохраняет KeyStore.Entry под указанным псевдонимом. |
abstract void |
engineSetKeyEntry |
Связывает заданный ключ (уже защищённый) с заданным псевдонимом. |
abstract void |
engineSetKeyEntry |
Связывает заданный ключ с заданным псевдонимом, защищая его заданным паролем. |
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— если возникла ошибка ввода-вывода или ошибка формата данных хранилища ключей, если требуется пароль, но он не указан, либо если задан неверный пароль. Если ошибка вызвана неверным паролем, значениемcauseдляIOExceptionдолжно быть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.ProtectionParameterобъектаKeyStore.LoadStoreParameterдолжен быть либоKeyStore.PasswordProtection, либоKeyStore.CallbackHandlerProtection, поддерживающимPasswordCallback, чтобы можно было извлечь пароль. ЕслиKeyStore.ProtectionParameterне является ни одним из этих классов, выбрасываетсяNoSuchAlgorithmException. - Параметры:
-
param—KeyStore.LoadStoreParameter, указывающий способ загрузки хранилища ключей; может бытьnull - Вызывает исключение:
-
IllegalArgumentException— если указанный входной параметрKeyStore.LoadStoreParameterне распознан -
IOException— если возникла ошибка ввода-вывода или ошибка формата данных хранилища ключей. Если ошибка вызвана невернымProtectionParameter(например, неверным паролем), значениемcauseдляIOExceptionдолжно бытьUnrecoverableKeyException -
NoSuchAlgorithmException— если не удалось найти алгоритм, используемый для проверки целостности хранилища ключей -
CertificateException— если не удалось загрузить какой-либо из сертификатов в хранилище ключей - Начиная с версии:
- 1.5
engineGetAttributes
public Set<KeyStore.Entry.Attribute> engineGetAttributes(String alias)
- Требования к реализации:
- Реализация по умолчанию возвращает пустой
Set. РеализациямKeyStoreSpi, поддерживающим атрибуты, следует переопределить этот метод. - Параметры:
-
alias— имя псевдонима - Возвращает:
- неизменяемый
Setатрибутов. Это множество пусто, если указанный псевдоним не существует или с ним не связаны атрибуты. Оно также может быть пустым для записейPrivateKeyEntryилиSecretKeyEntry, содержащих защищённые атрибуты. Эти защищённые атрибуты должны быть включены в результат, возвращаемый методомengineGetEntry(String, 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://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/security/KeyStoreSpi.html