Spec-Zone.ru › OpenJDK 27

Класс 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)
Возвращает дату создания записи, идентифицируемой указанным псевдонимом.
Instant engineGetCreationInstant(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
Модификатор и тип Метод Описание
protected Object clone()
Создаёт и возвращает копию этого объекта.
boolean equals(Object obj)
Указывает, равен ли этот объект какому-либо другому объекту.
protected void finalize()
Устарело, будет удалено: этот элемент API может быть удалён в будущей версии.
Финализация объявлена устаревшей и будет удалена в одном из будущих выпусков.
final Class<?> getClass()
Возвращает класс времени выполнения этого Object.
int hashCode()
Возвращает хеш-код этого объекта.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
String toString()
Возвращает строковое представление объекта.
final void wait()
Заставляет текущий поток ожидать пробуждения, обычно вследствие вызова notify или interrupt.
final void wait(long timeoutMillis)
Заставляет текущий поток ожидать пробуждения, обычно вследствие вызова notify или interrupt, либо до истечения определённого времени.
final void wait(long timeoutMillis, int nanos)
Заставляет текущий поток ожидать пробуждения, обычно вследствие вызова notify или interrupt, либо до истечения определённого времени.

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

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, если указанный псевдоним не существует

engineGetCreationInstant

public Instant engineGetCreationInstant(String alias)
Возвращает момент времени, когда была создана запись, обозначенная указанным псевдонимом.
Примечание к API:
Подклассам следует переопределить этот метод, чтобы напрямую возвращать момент времени.
Требования к реализации:
Реализация по умолчанию вызывает engineGetCreationDate(alias) и возвращает результат как значение типа Instant.
Параметры:
alias — имя псевдонима
Возвращает:
момент времени, когда была создана запись, обозначенная указанным псевдонимом, или null, если указанный псевдоним не существует
С версии:
27

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, 2026, 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.

Spec-Zone.ru

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