DrbgParameters 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 menentukan parameter yang digunakan oleh DRBG (Deterministic Random Bit Generator).
[Android.Runtime.Register("java/security/DrbgParameters", ApiSince=35, DoNotGenerateAcw=true)]
public class DrbgParameters : Java.Lang.Object
[<Android.Runtime.Register("java/security/DrbgParameters", ApiSince=35, DoNotGenerateAcw=true)>]
type DrbgParameters = class
inherit Object
- Warisan
- Atribut
Keterangan
Kelas ini menentukan parameter yang digunakan oleh DRBG (Deterministic Random Bit Generator).
Menurut NiST Special Publication 800-90A Revisi 1, Rekomendasi untuk Pembuatan Angka Acak Menggunakan Generator Bit Acak Deterministik (800-90Ar1), <blockquote> A DRBG didasarkan pada mekanisme DRBG seperti yang ditentukan dalam Rekomendasi ini dan mencakup sumber keacakan. Mekanisme DRBG menggunakan algoritma (yaitu algoritma DRBG) yang menghasilkan urutan bit dari nilai awal yang ditentukan oleh benih yang ditentukan dari output sumber keacakan." </blockquote>
Spesifikasi 800-90Ar1 memungkinkan berbagai pilihan implementasi DRBG, seperti: <ul><li> sumber entropi, <li> mekanisme DRBG (misalnya, Hash_DRBG), <li> algoritma DRBG (misalnya, SHA-256 untuk Hash_DRBG dan AES-256 untuk CTR_DRBG. Harap dicatat bahwa itu bukan algoritma yang digunakan dalam SecureRandom#getInstance, yang akan kami sebut<> algoritma< /em> SecureRandom em di bawah), <fitur opsional li>, termasuk ketahanan prediksi dan dukungan reseeding, <dengan> kekuatan keamanan tertinggi.
</ul>
Pilihan ini diatur dalam setiap implementasi dan tidak dikelola langsung oleh SecureRandom API. Periksa dokumentasi penyedia DRBG Anda untuk menemukan implementasi yang sesuai untuk situasi tersebut.
Di sisi lain, spesifikasi 800-90Ar1 memang memiliki beberapa opsi yang dapat dikonfigurasi, seperti: <kekuatan keamanan yang diperlukan ul><li> , <li> jika ketahanan prediksi diperlukan, <string personalisasi li> dan input tambahan. </ul>
Instans DRBG dapat dibuat dengan parameter dari DrbgParameters.Instantiation objek dan informasi lain (misalnya, nonce, yang tidak dikelola oleh API ini). Ini memetakan ke yang Instantiate_function ditentukan dalam NIST SP 800-90Ar1.
Instans DRBG dapat diserap ulang dengan parameter dari DrbgParameters.Reseed objek. Ini memetakan ke yang Reseed_function ditentukan dalam NIST SP 800-90Ar1.
SecureRandom#reseed() Panggilan setara dengan panggilan SecureRandom#reseed(SecureRandomParameters) dengan bendera ketahanan prediksi instans yang efektif (sebagaimana dikembalikan oleh SecureRandom#getParameters()) tanpa input tambahan.
Instans DRBG menghasilkan data dengan parameter tambahan dari DrbgParameters.NextBytes objek. Ini memetakan ke yang Generate_function ditentukan dalam NIST SP 800-90Ar1.
SecureRandom#nextBytes(byte[]) Panggilan setara dengan panggilan SecureRandom#nextBytes(byte[], SecureRandomParameters) dengan bendera ketahanan kekuatan dan prediksi instansi yang efektif (sebagaimana dikembalikan oleh SecureRandom#getParameters()) tanpa input tambahan.
DRBG harus diimplementasikan sebagai subkelas dari SecureRandomSpi. Disarankan agar implementasi berisi konstruktor SecureRandomSpi#SecureRandomSpi(SecureRandomParameters) 1-arg yang mengambil DrbgParameters.Instantiation argumen. Jika diimplementasikan dengan cara ini, implementasi ini dapat dipilih dengan metode apa pun SecureRandom.getInstance() . Jika dipilih oleh SecureRandom.getInstance() dengan SecureRandomParameters parameter, parameter diteruskan ke konstruktor ini. Jika dipilih oleh SecureRandom.getInstance() tanpa SecureRandomParameters parameter, konstruktor dipanggil dengan null argumen dan implementasinya harus memilih parameternya sendiri. Harus SecureRandom#getParameters() selalu mengembalikan objek efektif DrbgParameters.Instantiation non-null yang mencerminkan bagaimana DRBG benar-benar dibuat. Penelepon dapat menggunakan informasi ini untuk menentukan apakah SecureRandom objek adalah DRBG dan fitur apa yang didukungnya. Harap dicatat bahwa nilai yang dikembalikan tidak selalu sama dengan objek yang DrbgParameters.Instantiation diteruskan ke SecureRandom.getInstance() panggilan. Misalnya, kemampuan yang diminta bisa tetapi DrbgParameters.Capability#NONE nilai yang efektif bisa jika DrbgParameters.Capability#RESEED_ONLY implementasi mendukung reseeding. Implementasi harus menerapkan SecureRandomSpi#engineNextBytes(byte[], SecureRandomParameters) metode yang mengambil DrbgParameters.NextBytes parameter. Kecuali hasilnya SecureRandom#getParameters() memiliki kemampuan Capability#NONE NONEDrbgParameters.Instantiation#getCapability(), kemampuan tersebut harus mengimplementasikan SecureRandomSpi#engineReseed(SecureRandomParameters) yang mengambil DrbgParameters.Reseed parameter.
Di sisi lain, jika implementasi DRBG tidak berisi konstruktor yang memiliki DrbgParameters.Instantiation argumen (tidak disarankan), itu hanya dapat dipilih oleh SecureRandom.getInstance() tanpa SecureRandomParameters parameter, tetapi tidak akan dipilih jika getInstance metode dengan SecureRandomParameters parameter dipanggil. Jika diimplementasikan dengan cara ini, harus SecureRandom#getParameters() mengembalikan null, dan tidak perlu menerapkan baik SecureRandomSpi#engineNextBytes(byte[], SecureRandomParameters) atau SecureRandomSpi#engineReseed(SecureRandomParameters).
DRBG mungkin reseed sendiri secara otomatis jika periode benih lebih besar dari umur benih maksimum yang ditentukan oleh mekanisme DRBG.
Implementasi DRBG harus mendukung serialisasi dan deserialisasi dengan mempertahankan konfigurasi dan parameter yang efektif, tetapi status internal tidak boleh diserialisasikan dan objek yang dideserialisasi harus diinstansiasi ulang.
Contoh: <blockquote>
SecureRandom drbg;
byte[] buffer = new byte[32];
// Any DRBG is OK
drbg = SecureRandom.getInstance("DRBG");
drbg.nextBytes(buffer);
SecureRandomParameters params = drbg.getParameters();
if (params instanceof DrbgParameters.Instantiation) {
DrbgParameters.Instantiation ins = (DrbgParameters.Instantiation) params;
if (ins.getCapability().supportsReseeding()) {
drbg.reseed();
}
}
// The following call requests a weak DRBG instance. It is only
// guaranteed to support 112 bits of security strength.
drbg = SecureRandom.getInstance("DRBG",
DrbgParameters.instantiation(112, NONE, null));
// Both the next two calls will likely fail, because drbg could be
// instantiated with a smaller strength with no prediction resistance
// support.
drbg.nextBytes(buffer,
DrbgParameters.nextBytes(256, false, "more".getBytes()));
drbg.nextBytes(buffer,
DrbgParameters.nextBytes(112, true, "more".getBytes()));
// The following call requests a strong DRBG instance, with a
// personalization string. If it successfully returns an instance,
// that instance is guaranteed to support 256 bits of security strength
// with prediction resistance available.
drbg = SecureRandom.getInstance("DRBG", DrbgParameters.instantiation(
256, PR_AND_RESEED, "hello".getBytes()));
// Prediction resistance is not requested in this single call,
// but an additional input is used.
drbg.nextBytes(buffer,
DrbgParameters.nextBytes(-1, false, "more".getBytes()));
// Same for this call.
drbg.reseed(DrbgParameters.reseed(false, "extra".getBytes()));
</blockquote>
Ditambahkan dalam 9.
Java dokumentasi untuk java.security.DrbgParameters.
Bagian dari halaman ini adalah modifikasi berdasarkan pekerjaan yang dibuat dan dibagikan oleh Android Open Source Project dan digunakan sesuai dengan istilah yang dijelaskan dalam Lisensi Creative Commons 2.5 Lisensi Atribusi.
Konstruktor
| Nama | Deskripsi |
|---|---|
| DrbgParameters(IntPtr, JniHandleOwnership) |
Kelas ini menentukan parameter yang digunakan oleh DRBG (Deterministic Random Bit Generator). |
Properti
| Nama | Deskripsi |
|---|---|
| Class |
Mengembalikan kelas runtime dari . |
| 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 menentukan parameter yang digunakan oleh DRBG (Deterministic Random Bit Generator). (Diperoleh dari JavaObject) |
| JniPeerMembers |
Kelas ini menentukan parameter yang digunakan oleh DRBG (Deterministic Random Bit Generator). |
| PeerReference |
Mendapatkan referensi objek JNI untuk peer Java ini. (Diperoleh dari Object) |
| ThresholdClass |
Kelas ini menentukan parameter yang digunakan oleh DRBG (Deterministic Random Bit Generator). |
| ThresholdType |
Kelas ini menentukan parameter yang digunakan oleh DRBG (Deterministic Random Bit Generator). |
Metode
| Nama | Deskripsi |
|---|---|
| Clone() |
Membuat dan mengembalikan salinan objek ini. (Diperoleh dari Object) |
| Construct(JniObjectReference, JniObjectReferenceOptions) |
Kelas ini menentukan parameter yang digunakan oleh DRBG (Deterministic Random Bit Generator). (Diperoleh dari JavaObject) |
| 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 menentukan parameter yang digunakan oleh DRBG (Deterministic Random Bit Generator). (Diperoleh dari JavaObject) |
| Equals(Object) |
Kelas ini menentukan parameter yang digunakan oleh DRBG (Deterministic Random Bit Generator). (Diperoleh dari JavaObject) |
| Equals(Object) |
Menunjukkan apakah beberapa objek lain "sama dengan" yang satu ini. (Diperoleh dari Object) |
| GetHashCode() |
Mengembalikan nilai kode hash untuk objek . (Diperoleh dari Object) |
| InvokeInstantiation(Int32, DrbgParameters+Capability, Byte[]) |
Kelas ini menentukan parameter yang digunakan oleh DRBG (Deterministic Random Bit Generator). |
| InvokeNextBytes(Int32, Boolean, Byte[]) |
Kelas ini menentukan parameter yang digunakan oleh DRBG (Deterministic Random Bit Generator). |
| InvokeReseed(Boolean, Byte[]) |
Kelas ini menentukan parameter yang digunakan oleh DRBG (Deterministic Random Bit Generator). |
| JavaFinalize() |
Dipanggil oleh pengumpul sampah pada objek ketika pengumpulan sampah menentukan bahwa tidak ada lagi referensi ke objek. (Diperoleh dari Object) |
| Notify() |
Membangunkan satu utas yang menunggu monitor objek ini. (Diperoleh dari Object) |
| NotifyAll() |
Membangunkan semua utas yang menunggu monitor objek ini. (Diperoleh dari Object) |
| SetHandle(IntPtr, JniHandleOwnership) |
Mengatur properti Handle. (Diperoleh dari Object) |
| SetPeerReference(JniObjectReference, JniObjectReferenceOptions) |
Kelas ini menentukan parameter yang digunakan oleh DRBG (Deterministic Random Bit Generator). (Diperoleh dari JavaObject) |
| 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 menentukan parameter yang digunakan oleh DRBG (Deterministic Random Bit Generator). (Diperoleh dari JavaObject) |
| IJavaPeerable.Finalized() |
Kelas ini menentukan parameter yang digunakan oleh DRBG (Deterministic Random Bit Generator). (Diperoleh dari JavaObject) |
| IJavaPeerable.JniObjectReferenceControlBlock |
Kelas ini menentukan parameter yang digunakan oleh DRBG (Deterministic Random Bit Generator). (Diperoleh dari JavaObject) |
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
Kelas ini menentukan parameter yang digunakan oleh DRBG (Deterministic Random Bit Generator). (Diperoleh dari JavaObject) |
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
Kelas ini menentukan parameter yang digunakan oleh DRBG (Deterministic Random Bit Generator). (Diperoleh dari JavaObject) |
| IJavaPeerable.SetPeerReference(JniObjectReference) |
Kelas ini menentukan parameter yang digunakan oleh DRBG (Deterministic Random Bit Generator). (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 menentukan parameter yang digunakan oleh DRBG (Deterministic Random Bit Generator). |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
Cobalah untuk memaksa |