Язык

KeyStore Класс

Определение

Этот класс представляет собой хранилище для криптографических ключей и сертификатов.

[Android.Runtime.Register("java/security/KeyStore", DoNotGenerateAcw=true)]
public class KeyStore : Java.Lang.Object
[<Android.Runtime.Register("java/security/KeyStore", DoNotGenerateAcw=true)>]
type KeyStore = class
    inherit Object
Наследование
Атрибуты

Комментарии

Этот класс представляет собой хранилище для криптографических ключей и сертификатов.

Управление KeyStore различными типами записей. Каждый тип записи реализует KeyStore.Entry интерфейс. Предоставляются три основные KeyStore.Entry реализации:

<ul><li><b>KeyStore.PrivateKeyEntry</b>

Этот тип записи содержит криптографию PrivateKey, которая при необходимости хранится в защищенном формате, чтобы предотвратить несанкционированный доступ. Он также сопровождается цепочкой сертификатов для соответствующего открытого ключа.

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

<li><b>KeyStore.SecretKeyEntry</b>

Этот тип записи содержит криптографию SecretKey, которая при необходимости хранится в защищенном формате, чтобы предотвратить несанкционированный доступ.

<li><b>KeyStore.TrustedCertificateEntry</b>

Этот тип записи содержит один открытый ключ Certificate , принадлежащий другой стороне. Он называется доверенным сертификатом , так как владелец хранилища ключей доверяет, что открытый ключ в сертификате действительно принадлежит удостоверению, определяемому субъектом (владельцем) сертификата.

Этот тип записи можно использовать для проверки подлинности других сторон. </ul>

Каждая запись в хранилище ключей определяется строкой псевдонима. В случае закрытых ключей и связанных с ними цепочек сертификатов эти строки отличаются от разных способов проверки подлинности сущности. Например, сущность может пройти проверку подлинности с помощью различных центров сертификации или с помощью различных алгоритмов открытого ключа.

Зависят ли псевдонимы от регистра. Чтобы избежать проблем, рекомендуется не использовать псевдонимы в KeyStore, которые отличаются только в случае.

Постоянные хранилища ключей и механизмы, используемые хранилищем ключей, если они постоянны, не указаны здесь. Это позволяет использовать различные методы защиты конфиденциальных ключей (например, частных или секретных ключей). Смарт-карты или другие интегрированные криптографические подсистемы (SafeKeyper) — это один из вариантов, а также более простые механизмы, такие как файлы (в различных форматах).

Типичные способы запроса объекта KeyStore включают указание существующего файла хранилища ключей, использование типа по умолчанию и предоставление определенного типа хранилища ключей.

<ul><li>, чтобы указать существующий файл хранилища ключей:

// get keystore password
               char[] password = getPassword();

               // probe the keystore file and load the keystore entries
               KeyStore ks = KeyStore.getInstance(new File("keyStoreName"), password);

Система проверяет указанный файл, чтобы определить тип хранилища ключей и вернуть реализацию хранилища ключей с уже загруженными записями. Если этот подход используется, не требуется вызывать метод хранилища #load(java.io.InputStream, char[]) load ключей.

<li>Для использования типа по умолчанию:

KeyStore ks = KeyStore.getInstance(KeyStore.getDefaultType());

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

<li>Для предоставления определенного типа хранилища ключей:

KeyStore ks = KeyStore.getInstance("JKS");

Система вернет наиболее предпочтительную реализацию указанного типа хранилища ключей, доступного в среде. </ul>

Прежде чем получить доступ к хранилищу ключей, оно должно быть #load(java.io.InputStream, char[]) loaded.

KeyStore ks = KeyStore.getInstance(KeyStore.getDefaultType());

               // get user password and file input stream
               char[] password = getPassword();

               try (FileInputStream fis = new FileInputStream("keyStoreName")) {
                   ks.load(fis, password);
               }

Чтобы создать пустое хранилище ключей с помощью приведенного выше load метода, передайте null в качестве аргумента InputStream .

После загрузки хранилища ключей можно считывать существующие записи из хранилища ключей или записывать новые записи в хранилище ключей:

KeyStore.ProtectionParameter protParam =
                   new KeyStore.PasswordProtection(password);

               // get my private key
               KeyStore.PrivateKeyEntry pkEntry = (KeyStore.PrivateKeyEntry)
                   ks.getEntry("privateKeyAlias", protParam);
               PrivateKey myPrivateKey = pkEntry.getPrivateKey();

               // save my secret key
               javax.crypto.SecretKey mySecretKey;
               KeyStore.SecretKeyEntry skEntry =
                   new KeyStore.SecretKeyEntry(mySecretKey);
               ks.setEntry("secretKeyAlias", skEntry, protParam);

               // store away the keystore
               try (FileOutputStream fos = new FileOutputStream("newKeyStoreName")) {
                   ks.store(fos, password);
               }

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

Android предоставляет следующие KeyStore типы: <table><thead><tr th><Algorithm>/<>th th<Supported API Levels>/<>th</th/><tr/thead><tbody><tr><td>AndroidCAStore/<><td td 14+/td/><tr tr><td><> AndroidKeyStore<>/<>td td<18+></td></tr tr><class="deprecated" ><td>BCPKCS12</td><td>1-8</td></tr tr><><>td BKS</><td td>1+</td/><tr tr><><td>bouncyCastle</td td><>1+</td></tr tr><><td PKCS12>/<><td td>1+</td></tr><class="deprecated"><td>PKCS12-DEF</td><td>1-8</td></tr></tbody></table>

Эти типы описаны в разделе KeyStore в документации по имени стандартного алгоритма шифрования Java.

Добавлено в версии 1.2.

Java документации по java.security.KeyStore.

Части этой страницы — это изменения на основе работы, созданной и общей Project и используемых в соответствии с условиями, описанными в разделе "".

Конструкторы

Имя. Описание
KeyStore(IntPtr, JniHandleOwnership)

Конструктор, используемый при создании управляемых представлений объектов JNI; вызывается средой выполнения.

KeyStore(KeyStoreSpi, Provider, String)

Создает объект KeyStore заданного типа и инкапсулирует в нем реализацию поставщика (объект SPI).

Свойства

Имя. Описание
Class

Возвращает класс среды выполнения этого Objectобъекта.

(Унаследовано от Object)
DefaultType

Возвращает тип хранилища ключей по умолчанию, указанный свойством keystore.type безопасности, или строку "jks" (акроним для "Java хранилище ключей"), если такого свойства нет.

Handle

Дескриптор базового экземпляра Android.

(Унаследовано от Object)
JniIdentityHashCode

Возвращает хэш-код удостоверения, назначенный этому Java одноранговой среде выполнения взаимодействия.

(Унаследовано от Object)
JniManagedPeerState

Этот класс представляет собой хранилище для криптографических ключей и сертификатов.

(Унаследовано от JavaObject)
JniPeerMembers

Этот класс представляет собой хранилище для криптографических ключей и сертификатов.

PeerReference

Возвращает ссылку на объект JNI для этого Java однорангового узла.

(Унаследовано от Object)
Provider

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

ThresholdClass

Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из кода.

ThresholdType

Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из кода.

Type

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

Методы

Имя. Описание
Aliases()

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

Clone()

Создает и возвращает копию этого объекта.

(Унаследовано от Object)
Construct(JniObjectReference, JniObjectReferenceOptions)

Этот класс представляет собой хранилище для криптографических ключей и сертификатов.

(Унаследовано от JavaObject)
ContainsAlias(String)

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

DeleteEntry(String)

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

Dispose()

Освобождает ресурсы, удерживаемые этим Java одноранговым узлом.

(Унаследовано от Object)
Dispose(Boolean)

Освобождает ресурсы, удерживаемые этим Java одноранговым узлом.

(Унаследовано от Object)
DisposeUnlessReferenced()

Этот класс представляет собой хранилище для криптографических ключей и сертификатов.

(Унаследовано от JavaObject)
EntryInstanceOf(String, Class)

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

Equals(Object)

Этот класс представляет собой хранилище для криптографических ключей и сертификатов.

(Унаследовано от JavaObject)
Equals(Object)

Указывает, равен ли другой объект этому объекту.

(Унаследовано от Object)
GetCertificate(String)

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

GetCertificateAlias(Certificate)

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

GetCertificateChain(String)

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

GetCreationDate(String)

Возвращает дату создания записи, определяемой заданным псевдонимом.

GetEntry(String, KeyStore+IProtectionParameter)

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

GetHashCode()

Возвращает хэш-значение кода для объекта.

(Унаследовано от Object)
GetInstance(File, Char[])

Возвращает загруженный объект хранилища ключей соответствующего типа хранилища ключей.

GetInstance(File, KeyStore+ILoadStoreParameter)

Проверяет файл хранилища ключей и возвращает загруженное хранилище ключей обнаруженного типа.

GetInstance(String, Provider)

Возвращает объект хранилища ключей указанного типа.

GetInstance(String, String)

Возвращает объект хранилища ключей указанного типа.

GetInstance(String)

Возвращает объект хранилища ключей указанного типа.

GetKey(String, Char[])

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

IsCertificateEntry(String)

Возвращает значение true, если запись, определяемая заданным псевдонимом, была создана вызовом или создана вызовом setCertificateEntrysetEntry с помощью вызоваTrustedCertificateEntry.

IsKeyEntry(String)

Возвращает значение true, если запись, определяемая заданным псевдонимом, была создана вызовом или создана вызовом setKeyEntryс помощью a setEntry или aPrivateKeyEntry.SecretKeyEntry

JavaFinalize()
Устаревшие.

Вызывается сборщиком мусора в объекте, когда сборка мусора определяет, что больше ссылок на объект нет.

(Унаследовано от Object)
Load(KeyStore+ILoadStoreParameter)

Загружает этот keyStore из заданного входного потока.

Load(Stream, Char[])

Загружает этот keyStore из заданного входного потока.

Notify()

Просыпается один поток, ожидающий монитора этого объекта.

(Унаследовано от Object)
NotifyAll()

Просыпает все потоки, ожидающие монитора этого объекта.

(Унаследовано от Object)
SetCertificateEntry(String, Certificate)

Назначает заданный доверенный сертификат заданному псевдониму.

SetEntry(String, KeyStore+IEntry, KeyStore+IProtectionParameter)

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

SetHandle(IntPtr, JniHandleOwnership)

Задает свойство Handle.

(Унаследовано от Object)
SetKeyEntry(String, Byte[], Certificate[])

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

SetKeyEntry(String, IKey, Char[], Certificate[])

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

SetPeerReference(JniObjectReference, JniObjectReferenceOptions)

Этот класс представляет собой хранилище для криптографических ключей и сертификатов.

(Унаследовано от JavaObject)
Size()

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

Store(KeyStore+ILoadStoreParameter)

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

Store(Stream, Char[])

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

ToArray<T>()

Создает управляемый массив из этого Java оболочки массива.

(Унаследовано от Object)
ToString()

Возвращает строковое представление объекта.

(Унаследовано от Object)
UnregisterFromRuntime()

Отменяет регистрацию этого Java однорангового узла из среды выполнения взаимодействия.

(Унаследовано от Object)
Wait()

Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, путем <><уведомления/>em или <эм>прерванного</em.>

(Унаследовано от Object)
Wait(Int64, Int32)

Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, при <>получении уведомления</>em или <>эм прерваны< или> до тех пор, пока не истекло определенное количество реального времени.

(Унаследовано от Object)
Wait(Int64)

Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, при <>получении уведомления</>em или <>эм прерваны< или> до тех пор, пока не истекло определенное количество реального времени.

(Унаследовано от Object)

Явные реализации интерфейса

Имя. Описание
IJavaPeerable.Disposed()

Этот класс представляет собой хранилище для криптографических ключей и сертификатов.

(Унаследовано от JavaObject)
IJavaPeerable.Finalized()

Этот класс представляет собой хранилище для криптографических ключей и сертификатов.

(Унаследовано от JavaObject)
IJavaPeerable.JniObjectReferenceControlBlock

Этот класс представляет собой хранилище для криптографических ключей и сертификатов.

(Унаследовано от JavaObject)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Этот класс представляет собой хранилище для криптографических ключей и сертификатов.

(Унаследовано от JavaObject)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Этот класс представляет собой хранилище для криптографических ключей и сертификатов.

(Унаследовано от JavaObject)
IJavaPeerable.SetPeerReference(JniObjectReference)

Этот класс представляет собой хранилище для криптографических ключей и сертификатов.

(Унаследовано от JavaObject)

Методы расширения

Имя. Описание
GetJniTypeName(IJavaPeerable)

Возвращает имя JNI типа экземпляра self.

JavaAs<TResult>(IJavaPeerable)

Попробуйте принуждать к типуself, проверяяTResult, является ли приведение допустимым на стороне Java.

JavaCast<TResult>(IJavaObject)

Выполняет преобразование типа, проверяемого средой выполнения Android.

JavaCast<TResult>(IJavaObject)

Этот класс представляет собой хранилище для криптографических ключей и сертификатов.

TryJavaCast<TResult>(IJavaPeerable, TResult)

Попробуйте принуждать к типуself, проверяяTResult, является ли приведение допустимым на стороне Java.

Применяется к