Класс KeyStoreSpi

public abstract class KeyStoreSpi
extends Object

Этот класс определяет Интерфейс поставщика сервисов (SPI) для класса KeyStore. Все абстрактные методы в этом классе должны быть реализованы каждым поставщиком криптографических сервисов, желающим предоставить реализацию хранилища ключей для определённого типа хранилища ключей.

Since:
1.2
См. также:
KeyStore

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

Конструктор Описание
KeyStoreSpi()

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

Модификатор и тип Метод Описание
abstract Enumeration<String> engineAliases()

Выводит список всех псевдонимов (alias) этого хранилища ключей.

abstract boolean engineContainsAlias​(String alias)

Проверяет, существует ли данный псевдоним (alias) в этом хранилище ключей.

abstract void engineDeleteEntry​(String alias)

Удаляет запись, идентифицированную данным псевдонимом (alias), из этого хранилища ключей.

boolean engineEntryInstanceOf​(String alias, Class<? extends KeyStore.Entry> entryClass)

Определяет, является ли хранилище ключей Entry для указанного alias экземпляром или подклассом указанного entryClass.

abstract Certificate engineGetCertificate​(String alias)

Возвращает сертификат, связанный с данным псевдонимом (alias).

abstract String engineGetCertificateAlias​(Certificate cert)

Возвращает (псевдоним) имя первой записи в хранилище ключей, сертификат которой соответствует данному сертификату.

abstract Certificate[] engineGetCertificateChain​(String alias)

Возвращает цепочку сертификатов, связанную с данным псевдонимом (alias).

abstract Date engineGetCreationDate​(String alias)

Возвращает дату создания записи, идентифицированной данным псевдонимом (alias).

KeyStore.Entry engineGetEntry​(String alias, KeyStore.ProtectionParameter protParam)

Получает KeyStore.Entry для указанного псевдонима (alias) с указанным параметром защиты.

abstract Key engineGetKey​(String alias, char[] password)

Возвращает ключ, связанный с данным псевдонимом (alias), используя указанный пароль для его восстановления.

abstract boolean engineIsCertificateEntry​(String alias)

Возвращает true, если запись, идентифицированная данным псевдонимом (alias), была создана вызовом setCertificateEntry, или создана вызовом setEntry с TrustedCertificateEntry.

abstract boolean engineIsKeyEntry​(String alias)

Возвращает true, если запись, идентифицированная данным псевдонимом (alias), была создана вызовом 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)

Присваивает данный сертификат данному псевдониму (alias).

void engineSetEntry​(String alias, KeyStore.Entry entry, KeyStore.ProtectionParameter protParam)

Сохраняет KeyStore.Entry под указанным псевдонимом (alias).

abstract void engineSetKeyEntry​(String alias, byte[] key, Certificate[] chain)

Присваивает данный ключ (который уже защищён) данному псевдониму (alias).

abstract void engineSetKeyEntry​(String alias, Key key, char[] password, Certificate[] chain)

Присваивает данный ключ данному псевдониму (alias), защищая его указанным паролем.

abstract int engineSize()

Возвращает количество записей в этом хранилище ключей.

abstract void engineStore​(OutputStream stream, char[] password)

Сохраняет это хранилище ключей в указанный поток вывода и защищает его целостность указанным паролем.

void engineStore​(KeyStore.LoadStoreParameter param)

Сохраняет это хранилище ключей, используя указанный KeyStore.LoadStoreParmeter.

Методы, унаследованные от класса java.lang.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 - пароль для проверки целостности хранилища ключей
Исключение:
IOException - если возникла проблема с вводом/выводом данных
NoSuchAlgorithmException - если не был найден соответствующий алгоритм целостности данных
CertificateException - если любой из сертификатов, включенных в данные хранилища ключей, не удалось сохранить

engineStore

public void engineStore(KeyStore.LoadStoreParameter param)
                 throws IOException,
                        NoSuchAlgorithmException,
                        CertificateException

Сохраняет это хранилище ключей, используя заданный KeyStore.LoadStoreParmeter.

Параметры:
param - KeyStore.LoadStoreParmeter, который определяет, как сохранить хранилище ключей, которое может быть null.
Исключение:
IllegalArgumentException - если заданный KeyStore.LoadStoreParmeter вход не распознан
IOException - если возникла проблема с вводом/выводом данных
NoSuchAlgorithmException - если не был найден соответствующий алгоритм целостности данных
CertificateException - если любой из сертификатов, включенных в данные хранилища ключей, не удалось сохранить
С:
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

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, 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/KeyStoreSpi.html

Spec-Zone .ru
спецификации, руководства, описания, API