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は、さまざまな種類のエントリを管理します。 各種類のエントリは、 KeyStore.Entry インターフェイスを実装します。 3 つの基本的な KeyStore.Entry 実装が提供されています。

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

この種類のエントリは暗号化 PrivateKeyを保持します。これは、必要に応じて、承認されていないアクセスを防ぐために保護された形式で格納されます。 また、対応する公開キーの証明書チェーンも伴います。

秘密キーと証明書チェーンは、自己認証のために特定のエンティティによって使用されます。 この認証のアプリケーションには、ソフトウェアのリリースやライセンスの一部として JAR ファイルに署名するソフトウェア配布組織が含まれます。

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

この種類のエントリは暗号化 SecretKeyを保持します。これは、必要に応じて、承認されていないアクセスを防ぐために保護された形式で格納されます。

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

この種類のエントリには、別のパーティに属 Certificate 1 つの公開キーが含まれています。 キーストアの所有者は 、証明書 の公開キーが証明書の サブジェクト (所有者) によって識別される ID に実際に属していることを信頼するため、信頼された証明書と呼ばれます。

この種類のエントリは、他のパーティの認証に使用できます。 </ul>

キーストア内の各エントリは、"エイリアス" 文字列によって識別されます。 秘密キーとそれに関連付けられている証明書チェーンの場合、これらの文字列は、エンティティが自身を認証するさまざまな方法を区別します。 たとえば、エンティティは、異なる証明機関を使用するか、異なる公開キー アルゴリズムを使用して自身を認証できます。

エイリアスで大文字と小文字が区別されるかどうかは、実装によって異なります。 問題を回避するために、大文字と小文字のみが異なる KeyStore ではエイリアスを使用しないことをお勧めします。

キーストアが永続的かどうか、およびキーストアが永続的な場合にキーストアによって使用されるメカニズムは、ここでは指定されません。 これにより、機密性の高い (プライベートキーやシークレットキーなど) キーを保護するためのさまざまな手法を使用できます。 スマート カードまたはその他の統合暗号化エンジン (SafeKeyper) は 1 つのオプションであり、ファイルなどのより単純なメカニズムも (さまざまな形式で) 使用できます。

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メソッドを使用して空のキーストアを作成するには、InputStream引数としてnullを渡します。

キーストアが読み込まれたら、キーストアから既存のエントリを読み取るか、新しいエントリをキーストアに書き込むことができます。

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 には、<table><thead><tr><th>Algorithm</th><th>Supported API Levels</th></tr></thead><tbody><tr><td>Android のKeyStoreの種類が用意されていますCAStore</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</t d><td>1+</td></tr><tr><td>PKCS12</td>< td>1+</td></tr><tr class="deprecated"><td>PKCS12-DEF</td><td>1-8</td></tr></tbody></table>

これらの型については、Java暗号化アーキテクチャの標準アルゴリズム名に関するドキュメントの KeyStore セクションで説明されています。

1.2 で追加されました。

Javaドキュメント。

このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。

コンストラクター

名前 説明
KeyStore(IntPtr, JniHandleOwnership)

JNI オブジェクトのマネージド表現を作成するときに使用されるコンストラクター。ランタイムによって呼び出されます。

KeyStore(KeyStoreSpi, Provider, String)

指定した型の KeyStore オブジェクトを作成し、その中に指定されたプロバイダー実装 (SPI オブジェクト) をカプセル化します。

プロパティ

名前 説明
Class

この Objectのランタイム クラスを返します。

(継承元 Object)
DefaultType

keystore.type セキュリティ プロパティで指定されている既定のキーストアの種類を返します。そのようなプロパティが存在しない場合は、文字列 "jks" ("Javaキーストア" の頭字語) を返します。

Handle

基になる Android インスタンスへのハンドル。

(継承元 Object)
JniIdentityHashCode

このクラスは、暗号化キーと証明書のストレージ機能を表します。

(継承元 Object)
JniPeerMembers

このクラスは、暗号化キーと証明書のストレージ機能を表します。

PeerReference

このクラスは、暗号化キーと証明書のストレージ機能を表します。

(継承元 Object)
Provider

このキーストアのプロバイダーを返します。

ThresholdClass

この API は Android 用 Mono インフラストラクチャをサポートしており、コードから直接使用するためのものではありません。

ThresholdType

この API は Android 用 Mono インフラストラクチャをサポートしており、コードから直接使用するためのものではありません。

Type

このキーストアの型を返します。

メソッド

名前 説明
Aliases()

このキーストアのすべてのエイリアス名を一覧表示します。

Clone()

このオブジェクトのコピーを作成して返します。

(継承元 Object)
ContainsAlias(String)

指定された別名がこのキーストアに存在するかどうかを確認します。

DeleteEntry(String)

このキーストアから、指定されたエイリアスによって識別されるエントリを削除します。

Dispose()

このクラスは、暗号化キーと証明書のストレージ機能を表します。

(継承元 Object)
Dispose(Boolean)

このクラスは、暗号化キーと証明書のストレージ機能を表します。

(継承元 Object)
EntryInstanceOf(String, Class)

指定したaliasのキーストア Entryが、指定したentryClassのインスタンスまたはサブクラスであるかどうかを判断します。

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)

指定されたエイリアスによって識別されるエントリが、setCertificateEntryの呼び出しによって作成された場合、またはTrustedCertificateEntryを使用したsetEntryの呼び出しによって作成された場合は true を返します。

IsKeyEntry(String)

指定されたエイリアスによって識別されるエントリがsetKeyEntryの呼び出しによって作成された場合、またはPrivateKeyEntryまたはSecretKeyEntryを使用したsetEntryの呼び出しによって作成された場合は true を返します。

JavaFinalize()

オブジェクトへの参照がなくなったとガベージ コレクションによって判断されたときに、オブジェクトのガベージ コレクターによって呼び出されます。

(継承元 Object)
Load(KeyStore+ILoadStoreParameter)

指定された入力ストリームからこの KeyStore を読み込みます。

Load(Stream, Char[])

指定された入力ストリームからこの KeyStore を読み込みます。

Notify()

このオブジェクトのモニターで待機している 1 つのスレッドを起動します。

(継承元 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[])

指定したキーを特定のエイリアスに割り当て、指定されたパスワードで保護します。

Size()

このキーストア内のエントリの数を取得します。

Store(KeyStore+ILoadStoreParameter)

このキーストアを特定の出力ストリームに格納し、指定されたパスワードでその整合性を保護します。

Store(Stream, Char[])

このキーストアを特定の出力ストリームに格納し、指定されたパスワードでその整合性を保護します。

ToArray<T>()

このクラスは、暗号化キーと証明書のストレージ機能を表します。

(継承元 Object)
ToString()

オブジェクトの文字列形式を返します。

(継承元 Object)
UnregisterFromRuntime()

このクラスは、暗号化キーと証明書のストレージ機能を表します。

(継承元 Object)
Wait()

現在のスレッドが起動するまで待機します。通常は、 <em>notified</em> または <em>interrupted</em>。

(継承元 Object)
Wait(Int64, Int32)

現在のスレッドは、通常、 <em>notified</em> または <em>interrupted</em>、または一定のリアルタイムが経過するまで、起動されるまで待機します。

(継承元 Object)
Wait(Int64)

現在のスレッドは、通常、 <em>notified</em> または <em>interrupted</em>、または一定のリアルタイムが経過するまで、起動されるまで待機します。

(継承元 Object)

明示的なインターフェイスの実装

名前 説明
IJavaPeerable.Disposed()

このクラスは、暗号化キーと証明書のストレージ機能を表します。

(継承元 Object)
IJavaPeerable.DisposeUnlessReferenced()

このクラスは、暗号化キーと証明書のストレージ機能を表します。

(継承元 Object)
IJavaPeerable.Finalized()

このクラスは、暗号化キーと証明書のストレージ機能を表します。

(継承元 Object)
IJavaPeerable.JniManagedPeerState

このクラスは、暗号化キーと証明書のストレージ機能を表します。

(継承元 Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

このクラスは、暗号化キーと証明書のストレージ機能を表します。

(継承元 Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

このクラスは、暗号化キーと証明書のストレージ機能を表します。

(継承元 Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

このクラスは、暗号化キーと証明書のストレージ機能を表します。

(継承元 Object)

拡張メソッド

名前 説明
GetJniTypeName(IJavaPeerable)

インスタンス selfの型の JNI 名を取得します。

JavaAs<TResult>(IJavaPeerable)

selfを強制的にTResult入力し、強制型がJava側で有効であることを確認します。

JavaCast<TResult>(IJavaObject)

Android ランタイムチェック型変換を実行します。

JavaCast<TResult>(IJavaObject)

このクラスは、暗号化キーと証明書のストレージ機能を表します。

TryJavaCast<TResult>(IJavaPeerable, TResult)

selfを強制的にTResult入力し、強制型がJava側で有効であることを確認します。

適用対象