Spec-Zone.ru › OpenJDK 25

Класс KeyStoreSpi

java.lang.Object
java.security.KeyStoreSpi
public abstract class KeyStoreSpi extends Object
Этот класс определяет интерфейс поставщика службы (SPI) для класса KeyStore. Все абстрактные методы этого класса должны быть реализованы каждым поставщиком криптографических служб, который хочет предоставить реализацию хранилища ключей для определённого типа хранилища ключей.
Начиная с версии:
1.2
См. также:
  • KeyStore

Краткое описание конструкторов

Конструктор Описание
KeyStoreSpi()
Конструктор для вызова из подклассов.

Краткое описание методов

Модификатор и тип Метод Описание
abstract Enumeration<String> engineAliases()
Перечисляет все имена псевдонимов этого хранилища ключей.
abstract boolean engineContainsAlias(String alias)
Проверяет, существует ли указанный псевдоним в этом хранилище ключей.
abstract void engineDeleteEntry(String alias)
Удаляет из этого хранилища ключей запись, указанную заданным псевдонимом.
boolean engineEntryInstanceOf(String alias, Class<? extends KeyStore.Entry> entryClass)
Определяет, является ли Entry хранилища ключей для указанного alias экземпляром указанного entryClass или его подклассом.
Set<KeyStore.Entry.Attribute> engineGetAttributes(String alias)
Получает атрибуты, связанные с заданным псевдонимом.
abstract Certificate engineGetCertificate(String alias)
Возвращает сертификат, связанный с заданным псевдонимом.
abstract String engineGetCertificateAlias(Certificate cert)
Возвращает имя (псевдоним) первой записи хранилища ключей, сертификат которой совпадает с заданным сертификатом.
abstract Certificate[] engineGetCertificateChain(String alias)
Возвращает цепочку сертификатов, связанную с заданным псевдонимом.
abstract Date engineGetCreationDate(String alias)
Возвращает дату создания записи, указанной заданным псевдонимом.
KeyStore.Entry engineGetEntry(String alias, KeyStore.ProtectionParameter protParam)
Получает KeyStore.Entry для указанного псевдонима с заданным параметром защиты.
abstract Key engineGetKey(String alias, char[] password)
Возвращает ключ, связанный с заданным псевдонимом, используя заданный пароль для его восстановления.
abstract boolean engineIsCertificateEntry(String alias)
Возвращает true, если запись, указанная заданным псевдонимом, создана вызовом setCertificateEntry или вызовом setEntry с TrustedCertificateEntry.
abstract boolean engineIsKeyEntry(String alias)
Возвращает true, если запись, указанная заданным псевдонимом, создана вызовом setKeyEntry или вызовом setEntry с PrivateKeyEntry либо SecretKeyEntry.
abstract void engineLoad(InputStream stream, char[] password)
Загружает хранилище ключей из заданного входного потока.
void engineLoad(KeyStore.LoadStoreParameter param)
Загружает хранилище ключей, используя заданный KeyStore.LoadStoreParameter.
boolean engineProbe(InputStream stream)
Проверяет указанный входной поток, чтобы определить, содержит ли он хранилище ключей, поддерживаемое этой реализацией.
abstract void engineSetCertificateEntry(String alias, Certificate cert)
Связывает заданный сертификат с заданным псевдонимом.
void engineSetEntry(String alias, KeyStore.Entry entry, KeyStore.ProtectionParameter protParam)
Сохраняет KeyStore.Entry под указанным псевдонимом.
abstract void engineSetKeyEntry(String alias, byte[] key, Certificate[] chain)
Связывает заданный ключ (уже защищённый) с заданным псевдонимом.
abstract void engineSetKeyEntry(String alias, Key key, char[] password, Certificate[] chain)
Связывает заданный ключ с заданным псевдонимом, защищая его заданным паролем.
abstract int engineSize()
Получает количество записей в этом хранилище ключей.
abstract void engineStore(OutputStream stream, char[] password)
Сохраняет это хранилище ключей в заданный выходной поток и защищает его целостность заданным паролем.
void engineStore(KeyStore.LoadStoreParameter param)
Сохраняет это хранилище ключей, используя заданный KeyStore.LoadStoreParameter.

Методы, объявленные в классе Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Подробное описание конструкторов

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[]) вместе с null InputStream.

Если 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

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в разделе Документация Java SE, содержащем более подробные описания для разработчиков, включая концептуальные обзоры, определения терминов, обходные решения и примеры рабочего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её аффилированных лиц в США и других странах.
Авторские права © 1993, 2025, Oracle и/или её аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API