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 |
Возвращает класс среды выполнения этого |
| DefaultType |
Возвращает тип хранилища ключей по умолчанию, указанный свойством |
| 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) |
Определяет, является ли хранилище |
| Equals(Object) |
Этот класс представляет собой хранилище для криптографических ключей и сертификатов. (Унаследовано от JavaObject) |
| Equals(Object) |
Указывает, равен ли другой объект этому объекту. (Унаследовано от Object) |
| GetCertificate(String) |
Возвращает сертификат, связанный с заданным псевдонимом. |
| GetCertificateAlias(Certificate) |
Возвращает имя (псевдоним) первой записи хранилища ключей, сертификат которой соответствует заданному сертификату. |
| GetCertificateChain(String) |
Возвращает цепочку сертификатов, связанную с заданным псевдонимом. |
| GetCreationDate(String) |
Возвращает дату создания записи, определяемой заданным псевдонимом. |
| GetEntry(String, KeyStore+IProtectionParameter) |
Возвращает хранилище |
| GetHashCode() |
Возвращает хэш-значение кода для объекта. (Унаследовано от Object) |
| GetInstance(File, Char[]) |
Возвращает загруженный объект хранилища ключей соответствующего типа хранилища ключей. |
| GetInstance(File, KeyStore+ILoadStoreParameter) |
Проверяет файл хранилища ключей и возвращает загруженное хранилище ключей обнаруженного типа. |
| GetInstance(String, Provider) |
Возвращает объект хранилища ключей указанного типа. |
| GetInstance(String, String) |
Возвращает объект хранилища ключей указанного типа. |
| GetInstance(String) |
Возвращает объект хранилища ключей указанного типа. |
| GetKey(String, Char[]) |
Возвращает ключ, связанный с заданным псевдонимом, используя заданный пароль для его восстановления. |
| IsCertificateEntry(String) |
Возвращает значение true, если запись, определяемая заданным псевдонимом, была создана вызовом или создана вызовом |
| IsKeyEntry(String) |
Возвращает значение true, если запись, определяемая заданным псевдонимом, была создана вызовом или создана вызовом |
| JavaFinalize() |
Устаревшие.
Вызывается сборщиком мусора в объекте, когда сборка мусора определяет, что больше ссылок на объект нет. (Унаследовано от Object) |
| Load(KeyStore+ILoadStoreParameter) |
Загружает этот keyStore из заданного входного потока. |
| Load(Stream, Char[]) |
Загружает этот keyStore из заданного входного потока. |
| Notify() |
Просыпается один поток, ожидающий монитора этого объекта. (Унаследовано от Object) |
| NotifyAll() |
Просыпает все потоки, ожидающие монитора этого объекта. (Унаследовано от Object) |
| SetCertificateEntry(String, Certificate) |
Назначает заданный доверенный сертификат заданному псевдониму. |
| SetEntry(String, KeyStore+IEntry, KeyStore+IProtectionParameter) |
Сохраняет хранилище |
| 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 типа экземпляра |
| JavaAs<TResult>(IJavaPeerable) |
Попробуйте принуждать к типу |
| JavaCast<TResult>(IJavaObject) |
Выполняет преобразование типа, проверяемого средой выполнения Android. |
| JavaCast<TResult>(IJavaObject) |
Этот класс представляет собой хранилище для криптографических ключей и сертификатов. |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
Попробуйте принуждать к типу |