KeyStore Kelas
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Kelas ini mewakili fasilitas penyimpanan untuk kunci kriptografi dan sertifikat.
[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
- Warisan
- Atribut
Keterangan
Kelas ini mewakili fasilitas penyimpanan untuk kunci kriptografi dan sertifikat.
Mengelola KeyStore berbagai jenis entri. Setiap jenis entri mengimplementasikan KeyStore.Entry antarmuka. Tiga implementasi dasar KeyStore.Entry disediakan:
<ul><li><b>KeyStore.PrivateKeyEntry</b>
Jenis entri ini menyimpan kriptografi PrivateKey, yang secara opsional disimpan dalam format yang dilindungi untuk mencegah akses yang tidak sah. Ini juga disertai dengan rantai sertifikat untuk kunci publik yang sesuai.
Kunci privat dan rantai sertifikat digunakan oleh entitas tertentu untuk autentikasi mandiri. Aplikasi untuk autentikasi ini mencakup organisasi distribusi perangkat lunak yang menandatangani file JAR sebagai bagian dari merilis dan/atau perangkat lunak lisensi.
<li><b>KeyStore.SecretKeyEntry</b>
Jenis entri ini menyimpan kriptografi SecretKey, yang secara opsional disimpan dalam format yang dilindungi untuk mencegah akses yang tidak sah.
<li><b>KeyStore.TrustedCertificateEntry</b>
Jenis entri ini berisi satu kunci Certificate publik milik pihak lain. Ini disebut sertifikat tepercaya karena pemilik keystore mempercayai bahwa kunci publik dalam sertifikat memang milik identitas yang diidentifikasi oleh subjek (pemilik) sertifikat.
Jenis entri ini dapat digunakan untuk mengautentikasi pihak lain. </ul>
Setiap entri di keystore diidentifikasi oleh string "alias". Dalam kasus kunci privat dan rantai sertifikat terkait, string ini membedakan di antara berbagai cara di mana entitas dapat mengautentikasi dirinya sendiri. Misalnya, entitas dapat mengautentikasi dirinya sendiri menggunakan otoritas sertifikat yang berbeda, atau menggunakan algoritma kunci publik yang berbeda.
Apakah alias peka huruf besar/kecil bergantung pada implementasi. Untuk menghindari masalah, disarankan untuk tidak menggunakan alias di KeyStore yang hanya berbeda untuk berjaga-jaga.
Apakah keystores persisten, dan mekanisme yang digunakan oleh keystore jika persisten, tidak ditentukan di sini. Ini memungkinkan penggunaan berbagai teknik untuk melindungi kunci sensitif (misalnya, privat atau rahasia). Kartu pintar atau mesin kriptografi terintegrasi lainnya (SafeKeyper) adalah salah satu opsi, dan mekanisme yang lebih sederhana seperti file juga dapat digunakan (dalam berbagai format).
Cara umum untuk meminta objek KeyStore termasuk menentukan file keystore yang ada, mengandalkan jenis default dan menyediakan jenis keystore tertentu.
<ul><li>Untuk menentukan file keystore yang ada:
// get keystore password
char[] password = getPassword();
// probe the keystore file and load the keystore entries
KeyStore ks = KeyStore.getInstance(new File("keyStoreName"), password);
Sistem akan memeriksa file yang ditentukan untuk menentukan jenis keystore-nya dan mengembalikan implementasi keystore dengan entri yang sudah dimuat. Ketika pendekatan ini digunakan, tidak perlu memanggil metode keystore #load(java.io.InputStream, char[]) load .
<li>Untuk mengandalkan jenis default:
KeyStore ks = KeyStore.getInstance(KeyStore.getDefaultType());
Sistem akan mengembalikan implementasi keystore untuk jenis default.
<li>Untuk menyediakan jenis keystore tertentu:
KeyStore ks = KeyStore.getInstance("JKS");
Sistem akan mengembalikan implementasi yang paling disukai dari jenis keystore yang ditentukan yang tersedia di lingkungan. </ul>
Sebelum keystore dapat diakses, keystore harus #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);
}
Untuk membuat keystore kosong menggunakan metode di atas load , teruskan nullInputStream sebagai argumen.
Setelah keystore dimuat, dimungkinkan untuk membaca entri yang ada dari keystore, atau menulis entri baru ke keystore:
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);
}
Perhatikan bahwa meskipun kata sandi yang sama dapat digunakan untuk memuat keystore, untuk melindungi entri kunci privat, untuk melindungi entri kunci rahasia, dan untuk menyimpan keystore (seperti yang ditunjukkan pada kode sampel di atas), kata sandi yang berbeda atau parameter perlindungan lainnya juga dapat digunakan.
Android menyediakan jenis berikutKeyStore: <table><thead><tr><th>Algorithm</th th><>Supported API Levels</th></tr></thead><tr td><><>AndroidCAStore</td td><>14+</td></tr tr><><td>AndroidKeyStore</td td><>18+</td></tr><class="deprecated" ><td>BCPKCS12</td><td>1-8</td></tr tr><><>bks</td><td>1+/td<>/tr tr td<BouncyCastle>/td td<>1<+>/tr tr1<><>+</td></tr tr><><td>PKCS12</td td><>1+</td></tr tr><class="deprecated"><td>PKCS12-DEF</td><td>1-8</td></tr></tbody></table>
Jenis ini dijelaskan di bagian KeyStore dari Dokumentasi Nama Algoritma Standar Arsitektur Kriptografi Java.
Ditambahkan dalam 1.2.
Dokumentasi Java untuk java.security.KeyStore.
Bagian halaman ini adalah modifikasi berdasarkan pekerjaan yang dibuat dan dibagikan oleh Proyek Sumber Terbuka Android dan digunakan sesuai dengan istilah yang dijelaskan dalam Lisensi Atribusi Creative Commons 2.5.
Konstruktor
| Nama | Deskripsi |
|---|---|
| KeyStore(IntPtr, JniHandleOwnership) |
Konstruktor yang digunakan saat membuat representasi terkelola objek JNI; dipanggil oleh runtime. |
| KeyStore(KeyStoreSpi, Provider, String) |
Membuat objek KeyStore dari jenis yang diberikan, dan merangkum implementasi penyedia yang diberikan (objek SPI) di dalamnya. |
Properti
| Nama | Deskripsi |
|---|---|
| Class |
Mengembalikan kelas runtime dari . |
| DefaultType |
Mengembalikan jenis keystore default seperti yang ditentukan oleh |
| Handle |
Handel ke instans Android yang mendasar. (Diperoleh dari Object) |
| JniIdentityHashCode |
Mendapatkan kode hash identitas yang ditetapkan ke Java peer ini oleh runtime interop. (Diperoleh dari Object) |
| JniManagedPeerState |
Kelas ini mewakili fasilitas penyimpanan untuk kunci kriptografi dan sertifikat. (Diperoleh dari JavaObject) |
| JniPeerMembers |
Kelas ini mewakili fasilitas penyimpanan untuk kunci kriptografi dan sertifikat. |
| PeerReference |
Mendapatkan referensi objek JNI untuk peer Java ini. (Diperoleh dari Object) |
| Provider |
Mengembalikan penyedia keystore ini. |
| ThresholdClass |
API ini mendukung infrastruktur Mono untuk Android dan tidak dimaksudkan untuk digunakan langsung dari kode Anda. |
| ThresholdType |
API ini mendukung infrastruktur Mono untuk Android dan tidak dimaksudkan untuk digunakan langsung dari kode Anda. |
| Type |
Mengembalikan jenis keystore ini. |
Metode
| Nama | Deskripsi |
|---|---|
| Aliases() |
Mencantumkan semua nama alias keystore ini. |
| Clone() |
Membuat dan mengembalikan salinan objek ini. (Diperoleh dari Object) |
| Construct(JniObjectReference, JniObjectReferenceOptions) |
Kelas ini mewakili fasilitas penyimpanan untuk kunci kriptografi dan sertifikat. (Diperoleh dari JavaObject) |
| ContainsAlias(String) |
Memeriksa apakah alias yang diberikan ada di keystore ini. |
| DeleteEntry(String) |
Menghapus entri yang diidentifikasi oleh alias yang diberikan dari keystore ini. |
| Dispose() |
Merilis sumber daya yang dipegang oleh rekan Java ini. (Diperoleh dari Object) |
| Dispose(Boolean) |
Merilis sumber daya yang dipegang oleh rekan Java ini. (Diperoleh dari Object) |
| DisposeUnlessReferenced() |
Kelas ini mewakili fasilitas penyimpanan untuk kunci kriptografi dan sertifikat. (Diperoleh dari JavaObject) |
| EntryInstanceOf(String, Class) |
Menentukan apakah keystore |
| Equals(Object) |
Kelas ini mewakili fasilitas penyimpanan untuk kunci kriptografi dan sertifikat. (Diperoleh dari JavaObject) |
| Equals(Object) |
Menunjukkan apakah beberapa objek lain "sama dengan" yang satu ini. (Diperoleh dari Object) |
| GetCertificate(String) |
Mengembalikan sertifikat yang terkait dengan alias yang diberikan. |
| GetCertificateAlias(Certificate) |
Mengembalikan nama (alias) entri keystore pertama yang sertifikatnya cocok dengan sertifikat yang diberikan. |
| GetCertificateChain(String) |
Mengembalikan rantai sertifikat yang terkait dengan alias yang diberikan. |
| GetCreationDate(String) |
Mengembalikan tanggal pembuatan entri yang diidentifikasi oleh alias yang diberikan. |
| GetEntry(String, KeyStore+IProtectionParameter) |
Mendapatkan keystore |
| GetHashCode() |
Mengembalikan nilai kode hash untuk objek . (Diperoleh dari Object) |
| GetInstance(File, Char[]) |
Mengembalikan objek keystore yang dimuat dari jenis keystore yang sesuai. |
| GetInstance(File, KeyStore+ILoadStoreParameter) |
Memeriksa file keystore dan mengembalikan keystore yang dimuat dari jenis yang terdeteksi. |
| GetInstance(String, Provider) |
Mengembalikan objek keystore dari jenis yang ditentukan. |
| GetInstance(String, String) |
Mengembalikan objek keystore dari jenis yang ditentukan. |
| GetInstance(String) |
Mengembalikan objek keystore dari jenis yang ditentukan. |
| GetKey(String, Char[]) |
Mengembalikan kunci yang terkait dengan alias yang diberikan, menggunakan kata sandi yang diberikan untuk memulihkannya. |
| IsCertificateEntry(String) |
Mengembalikan true jika entri yang diidentifikasi oleh alias yang diberikan dibuat oleh panggilan ke |
| IsKeyEntry(String) |
Mengembalikan true jika entri yang diidentifikasi oleh alias yang diberikan dibuat oleh panggilan ke |
| JavaFinalize() |
Dipanggil oleh pengumpul sampah pada objek ketika pengumpulan sampah menentukan bahwa tidak ada lagi referensi ke objek. (Diperoleh dari Object) |
| Load(KeyStore+ILoadStoreParameter) |
Memuat KeyStore ini dari aliran input yang diberikan. |
| Load(Stream, Char[]) |
Memuat KeyStore ini dari aliran input yang diberikan. |
| Notify() |
Membangunkan satu utas yang menunggu monitor objek ini. (Diperoleh dari Object) |
| NotifyAll() |
Membangunkan semua utas yang menunggu monitor objek ini. (Diperoleh dari Object) |
| SetCertificateEntry(String, Certificate) |
Menetapkan sertifikat tepercaya yang diberikan ke alias yang diberikan. |
| SetEntry(String, KeyStore+IEntry, KeyStore+IProtectionParameter) |
Menyimpan keystore |
| SetHandle(IntPtr, JniHandleOwnership) |
Mengatur properti Handle. (Diperoleh dari Object) |
| SetKeyEntry(String, Byte[], Certificate[]) |
Menetapkan kunci yang diberikan (yang telah dilindungi) ke alias yang diberikan. |
| SetKeyEntry(String, IKey, Char[], Certificate[]) |
Menetapkan kunci yang diberikan ke alias yang diberikan, melindunginya dengan kata sandi yang diberikan. |
| SetPeerReference(JniObjectReference, JniObjectReferenceOptions) |
Kelas ini mewakili fasilitas penyimpanan untuk kunci kriptografi dan sertifikat. (Diperoleh dari JavaObject) |
| Size() |
Mengambil jumlah entri di keystore ini. |
| Store(KeyStore+ILoadStoreParameter) |
Menyimpan keystore ini ke aliran output yang diberikan, dan melindungi integritasnya dengan kata sandi yang diberikan. |
| Store(Stream, Char[]) |
Menyimpan keystore ini ke aliran output yang diberikan, dan melindungi integritasnya dengan kata sandi yang diberikan. |
| ToArray<T>() |
Membuat array terkelola dari pembungkus array Java ini. (Diperoleh dari Object) |
| ToString() |
Mengembalikan representasi string objek. (Diperoleh dari Object) |
| UnregisterFromRuntime() |
Membatalkan pendaftaran peer Java ini dari runtime interop. (Diperoleh dari Object) |
| Wait() |
Menyebabkan utas saat ini menunggu sampai terbangun, biasanya dengan <diberitahu></em> atau <em>terganggu</em>. (Diperoleh dari Object) |
| Wait(Int64, Int32) |
Menyebabkan utas saat ini menunggu sampai terbangun, biasanya dengan <>diberitahu</em> atau <em>terganggu</em>, atau sampai sejumlah waktu nyata berlalu. (Diperoleh dari Object) |
| Wait(Int64) |
Menyebabkan utas saat ini menunggu sampai terbangun, biasanya dengan <>diberitahu</em> atau <em>terganggu</em>, atau sampai sejumlah waktu nyata berlalu. (Diperoleh dari Object) |
Implementasi Antarmuka Eksplisit
| Nama | Deskripsi |
|---|---|
| IJavaPeerable.Disposed() |
Kelas ini mewakili fasilitas penyimpanan untuk kunci kriptografi dan sertifikat. (Diperoleh dari JavaObject) |
| IJavaPeerable.Finalized() |
Kelas ini mewakili fasilitas penyimpanan untuk kunci kriptografi dan sertifikat. (Diperoleh dari JavaObject) |
| IJavaPeerable.JniObjectReferenceControlBlock |
Kelas ini mewakili fasilitas penyimpanan untuk kunci kriptografi dan sertifikat. (Diperoleh dari JavaObject) |
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
Kelas ini mewakili fasilitas penyimpanan untuk kunci kriptografi dan sertifikat. (Diperoleh dari JavaObject) |
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
Kelas ini mewakili fasilitas penyimpanan untuk kunci kriptografi dan sertifikat. (Diperoleh dari JavaObject) |
| IJavaPeerable.SetPeerReference(JniObjectReference) |
Kelas ini mewakili fasilitas penyimpanan untuk kunci kriptografi dan sertifikat. (Diperoleh dari JavaObject) |
Metode Ekstensi
| Nama | Deskripsi |
|---|---|
| GetJniTypeName(IJavaPeerable) |
Mendapatkan nama JNI dari jenis instans |
| JavaAs<TResult>(IJavaPeerable) |
Cobalah untuk memaksa |
| JavaCast<TResult>(IJavaObject) |
Melakukan konversi jenis yang diperiksa runtime Android. |
| JavaCast<TResult>(IJavaObject) |
Kelas ini mewakili fasilitas penyimpanan untuk kunci kriptografi dan sertifikat. |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
Cobalah untuk memaksa |