KeyStore クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
このクラスは、暗号化キーと証明書のストレージ機能を表します。
[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
実装します。 3 つの基本的な KeyStore.Entry
実装が用意されています。
<ul><li><b>KeyStore.PrivateKeyEntry</b>
この種類のエントリには暗号化 PrivateKey
が保持されます。これは、必要に応じて、未承認のアクセスを防ぐために保護された形式で格納されます。 また、対応する公開キーの証明書チェーンも伴います。
秘密キーと証明書チェーンは、自己認証のために特定のエンティティによって使用されます。 この認証のアプリケーションには、ソフトウェアのリリースやライセンスの一部として JAR ファイルに署名するソフトウェア配布組織が含まれます。
<li><b>KeyStore.SecretKeyEntry</b>
この種類のエントリには暗号化 SecretKey
が保持されます。これは、必要に応じて、未承認のアクセスを防ぐために保護された形式で格納されます。
<li><b>KeyStore.TrustedCertificateEntry</b>
この種類のエントリには、別のパーティに属する 1 つの公開キー Certificate
が含まれています。 キーストアの所有者は 、証明書 の公開キーが実際に証明書の サブジェクト (所有者) によって識別される 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 には、次KeyStore
の種類が用意されています。<テーブル<>thead<>tr><th>Algorithm</th>><Supported API Levels</th></tr></thead><tbody<>tr><td>AndroidCAStore</td td><td>14+</td></tr tr><<>td>AndroidKeyStore</td td><td>18+</td<>/tr><class="deprecated"><td>BCPKCS12</td><td td>1-8</td<>/tr><td><>BKS</td><td td>1+</td></tr tr><td><>BouncyCastle</td td><td>1+</td<>/tr td>>><<PKCS12</td><td td>1+</td<>/tr tr<>class="deprecated"><td>PKCS12-DEF</td><td>1-8</td></tr></tbody></table>
これらの型については、Java 暗号化アーキテクチャの標準アルゴリズム名に関するドキュメントの 「KeyStore」セクション を参照してください。
1.2 で追加されました。
の Java ドキュメント java.security.KeyStore
。
このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。
コンストラクター
KeyStore(IntPtr, JniHandleOwnership) |
JNI オブジェクトのマネージド表現を作成するときに使用されるコンストラクター。ランタイムによって呼び出されます。 |
KeyStore(KeyStoreSpi, Provider, String) |
指定した型の KeyStore オブジェクトを作成し、その中に指定されたプロバイダー実装 (SPI オブジェクト) をカプセル化します。 |
プロパティ
Class |
この |
DefaultType |
セキュリティ プロパティで |
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) |
指定した のキーストア |
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) |
指定した型のキーストア オブジェクトを返します。 |
GetInstance(String, Provider) |
指定した型のキーストア オブジェクトを返します。 |
GetInstance(String, String) |
指定した型のキーストア オブジェクトを返します。 |
GetKey(String, Char[]) |
指定されたパスワードを使用して、指定されたエイリアスに関連付けられているキーを返します。 |
IsCertificateEntry(String) |
指定したエイリアスで識別されるエントリが への呼び出しによって作成された場合、または を使用した の |
IsKeyEntry(String) |
指定したエイリアスで識別されたエントリが への呼び出しによって作成された場合、または または を使用した への |
JavaFinalize() |
ガベージ コレクションがオブジェクトへの参照がなくなったと判断したときに、オブジェクトのガベージ コレクターによって呼び出されます。 (継承元 Object) |
Load(KeyStore+ILoadStoreParameter) |
指定された入力ストリームからこの KeyStore を読み込みます。 |
Load(Stream, Char[]) |
指定された入力ストリームからこの KeyStore を読み込みます。 |
Notify() |
このオブジェクトのモニターで待機している 1 つのスレッドをウェイクアップします。 (継承元 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[]) |
指定したキーを指定されたエイリアスに割り当て、指定されたパスワードで保護します。 |
Size() |
このキーストア内のエントリの数を取得します。 |
Store(KeyStore+ILoadStoreParameter) |
このキーストアを特定の出力ストリームに格納し、指定されたパスワードでその整合性を保護します。 |
Store(Stream, Char[]) |
このキーストアを特定の出力ストリームに格納し、指定されたパスワードでその整合性を保護します。 |
ToArray<T>() |
このクラスは、暗号化キーと証明書のストレージ機能を表します。 (継承元 Object) |
ToString() |
オブジェクトの文字列形式を返します。 (継承元 Object) |
UnregisterFromRuntime() |
このクラスは、暗号化キーと証明書のストレージ機能を表します。 (継承元 Object) |
Wait() |
現在のスレッドが起動するまで待機します。通常<>は、通知</em> または <em>割り込み</em によって待機します>。 (継承元 Object) |
Wait(Int64) |
現在のスレッドが起動するまで待機します。通常<>は、通知</em> または>< em 割り込み</em>、または一定のリアルタイムが経過するまで待機します。 (継承元 Object) |
Wait(Int64, Int32) |
現在のスレッドが起動するまで待機します。通常<>は、通知</em> または>< em 割り込み</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) |
拡張メソッド
JavaCast<TResult>(IJavaObject) |
Android ランタイムチェック型変換を実行します。 |
JavaCast<TResult>(IJavaObject) |
このクラスは、暗号化キーと証明書のストレージ機能を表します。 |
GetJniTypeName(IJavaPeerable) |
このクラスは、暗号化キーと証明書のストレージ機能を表します。 |