DrbgParameters Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Этот класс задает параметры, используемые DRBG (детерминированный генератор случайных битов).
[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
- Наследование
- Атрибуты
Комментарии
Этот класс задает параметры, используемые DRBG (детерминированный генератор случайных битов).
Согласно специальной публикации NIST 800-90A редакции 1, рекомендация по генерации случайных чисел с использованием детерминированных генераторов случайных битов (800-90Ar1), blockquote< A DRBG основана на механизме DRBG, как указано в этой рекомендации, >и включает источник случайности. Механизм DRBG использует алгоритм (т. е. алгоритм DRBG), который создает последовательность битов из начального значения, определяемого начальным значением, которое определяется из выходных данных источника случайности". </blockquote>
Спецификация 800-90Ar1 позволяет использовать различные варианты реализации DRBG, такие как: <ul><li> энтропия источника, ли механизм DRBG (например, <Hash_DRBG), >ли<> алгоритм DRBG (например, SHA-256 для Hash_DRBG и AES-256 для CTR_DRBG. Обратите внимание, что это не алгоритм, используемый в SecureRandom#getInstance, в котором мы будем называть <алгоритм em>SecureRandom</em> ниже), <ли> необязательные функции, включая сопротивление прогнозирования и повторное изменение поддерживает, <ли> самая высокая сила безопасности.
</ul>
Эти варианты задаются в каждой реализации и не управляются api напрямую SecureRandom . Проверьте документацию поставщика DRBG, чтобы найти соответствующую реализацию для ситуации.
С другой стороны, спецификация 800-90Ar1 имеет некоторые настраиваемые параметры, такие как: <ul><li обязательный уровень безопасности, ли, если требуется прогнозирование сопротивление, ><> строка персонализации li<> и дополнительные входные данные. </ul>
Экземпляр DRBG можно создать экземпляр с параметрами из DrbgParameters.Instantiation объекта и других сведений (например, nonce, который не управляется этим API). Это сопоставляется с определенным в Instantiate_function NIST SP 800-90Ar1.
Экземпляр DRBG можно повторно изменить с параметрами DrbgParameters.Reseed из объекта. Это сопоставляется с определенным в Reseed_function NIST SP 800-90Ar1. Вызов эквивалентен вызову SecureRandom#reseed()SecureRandom#reseed(SecureRandomParameters) с эффективным флагом сопротивления прогнозирования (как возвращается SecureRandom#getParameters()) без дополнительных входных данных.
Экземпляр DRBG создает данные с дополнительными параметрами DrbgParameters.NextBytes из объекта. Это сопоставляется с определенным в Generate_function NIST SP 800-90Ar1. Вызов SecureRandom#nextBytes(byte[]) эквивалентен вызову SecureRandom#nextBytes(byte[], SecureRandomParameters) с эффективным флагом сопротивления для создания экземпляров и прогнозирования (как возвращается SecureRandom#getParameters()) без дополнительных входных данных.
DrBG должен быть реализован как подкласс SecureRandomSpi. Рекомендуется, чтобы реализация содержала конструктор 1-arg SecureRandomSpi#SecureRandomSpi(SecureRandomParameters), который принимает DrbgParameters.Instantiation аргумент. Если реализация реализована таким образом, эта реализация может быть выбрана любым SecureRandom.getInstance() методом. Если он выбран параметром SecureRandom.getInstance()SecureRandomParameters , параметр передается в этот конструктор. Если он выбран SecureRandom.getInstance()SecureRandomParameters без параметра, конструктор вызывается с аргументом null , и реализация должна выбирать собственные параметры. Он SecureRandom#getParameters() всегда должен возвращать действующий DrbgParameters.Instantiation объект, не допускающий значения NULL, который отражает фактические экземпляры DRBG. Вызывающий объект может использовать эти сведения для определения того, является ли SecureRandom объект DRBG и какие функции она поддерживает. Обратите внимание, что возвращаемое значение не обязательно равно объекту, DrbgParameters.Instantiation переданного SecureRandom.getInstance() в вызов. Например, запрошенная возможность может быть, но эффективное значение может быть DrbgParameters.Capability#NONEDrbgParameters.Capability#RESEED_ONLY , если реализация поддерживает повторное изменение. Реализация должна реализовать SecureRandomSpi#engineNextBytes(byte[], SecureRandomParameters) метод, который принимает DrbgParameters.NextBytes параметр. Если результат SecureRandom#getParameters() не имеет возможности DrbgParameters.Instantiation#getCapability(), Capability#NONE NONEон должен реализовать SecureRandomSpi#engineReseed(SecureRandomParameters) , который принимает DrbgParameters.Reseed параметр.
С другой стороны, если реализация DRBG не содержит конструктор, имеющий DrbgParameters.Instantiation аргумент (не рекомендуется), его можно выбрать только без параметра, но не будет выбран SecureRandom.getInstance()SecureRandomParameters , если getInstance метод с SecureRandomParameters параметром вызывается. Если этот способ реализован, он SecureRandom#getParameters() должен вернуться nullи не требуется реализовать либо SecureRandomSpi#engineNextBytes(byte[], SecureRandomParameters)SecureRandomSpi#engineReseed(SecureRandomParameters).
DRBG может автоматически измениться, если начальный период больше максимального срока заполнения, определенного механизмом DRBG.
Реализация DRBG должна поддерживать сериализацию и десериализацию путем сохранения конфигурации и эффективных параметров, но внутреннее состояние не должно быть сериализовано, а десериализированный объект должен быть перерасстановлен.
Примеры: <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>
Добавлено в 9.
Java документации по java.security.DrbgParameters.
Части этой страницы — это изменения на основе работы, созданной и общей Project и используемых в соответствии с условиями, описанными в разделе "".
Конструкторы
| Имя. | Описание |
|---|---|
| DrbgParameters(IntPtr, JniHandleOwnership) |
Этот класс задает параметры, используемые DRBG (детерминированный генератор случайных битов). |
Свойства
| Имя. | Описание |
|---|---|
| Class |
Возвращает класс среды выполнения этого |
| Handle |
Дескриптор базового экземпляра Android. (Унаследовано от Object) |
| JniIdentityHashCode |
Возвращает хэш-код удостоверения, назначенный этому Java одноранговой среде выполнения взаимодействия. (Унаследовано от Object) |
| JniManagedPeerState |
Этот класс задает параметры, используемые DRBG (детерминированный генератор случайных битов). (Унаследовано от JavaObject) |
| JniPeerMembers |
Этот класс задает параметры, используемые DRBG (детерминированный генератор случайных битов). |
| PeerReference |
Возвращает ссылку на объект JNI для этого Java однорангового узла. (Унаследовано от Object) |
| ThresholdClass |
Этот класс задает параметры, используемые DRBG (детерминированный генератор случайных битов). |
| ThresholdType |
Этот класс задает параметры, используемые DRBG (детерминированный генератор случайных битов). |
Методы
| Имя. | Описание |
|---|---|
| Clone() |
Создает и возвращает копию этого объекта. (Унаследовано от Object) |
| Construct(JniObjectReference, JniObjectReferenceOptions) |
Этот класс задает параметры, используемые DRBG (детерминированный генератор случайных битов). (Унаследовано от JavaObject) |
| Dispose() |
Освобождает ресурсы, удерживаемые этим Java одноранговым узлом. (Унаследовано от Object) |
| Dispose(Boolean) |
Освобождает ресурсы, удерживаемые этим Java одноранговым узлом. (Унаследовано от Object) |
| DisposeUnlessReferenced() |
Этот класс задает параметры, используемые DRBG (детерминированный генератор случайных битов). (Унаследовано от JavaObject) |
| Equals(Object) |
Этот класс задает параметры, используемые DRBG (детерминированный генератор случайных битов). (Унаследовано от JavaObject) |
| Equals(Object) |
Указывает, равен ли другой объект этому объекту. (Унаследовано от Object) |
| GetHashCode() |
Возвращает значение хэш-кода для объекта. (Унаследовано от Object) |
| InvokeInstantiation(Int32, DrbgParameters+Capability, Byte[]) |
Этот класс задает параметры, используемые DRBG (детерминированный генератор случайных битов). |
| InvokeNextBytes(Int32, Boolean, Byte[]) |
Этот класс задает параметры, используемые DRBG (детерминированный генератор случайных битов). |
| InvokeReseed(Boolean, Byte[]) |
Этот класс задает параметры, используемые DRBG (детерминированный генератор случайных битов). |
| JavaFinalize() |
Устаревшие.
Вызывается сборщиком мусора в объекте, когда сборка мусора определяет, что больше ссылок на объект нет. (Унаследовано от Object) |
| Notify() |
Пробуждение одного потока, ожидающего монитора этого объекта. (Унаследовано от Object) |
| NotifyAll() |
Просыпает все потоки, ожидающие монитора этого объекта. (Унаследовано от Object) |
| SetHandle(IntPtr, JniHandleOwnership) |
Задает свойство Handle. (Унаследовано от Object) |
| SetPeerReference(JniObjectReference, JniObjectReferenceOptions) |
Этот класс задает параметры, используемые DRBG (детерминированный генератор случайных битов). (Унаследовано от JavaObject) |
| ToArray<T>() |
Создает управляемый массив из этого Java оболочки массива. (Унаследовано от Object) |
| ToString() |
Возвращает строковое представление объекта. (Унаследовано от Object) |
| UnregisterFromRuntime() |
Отменяет регистрацию этого Java однорангового узла из среды выполнения взаимодействия. (Унаследовано от Object) |
| Wait() |
Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, при <>помощи уведомления</em> или <эм>прерванного</em>. (Унаследовано от Object) |
| Wait(Int64, Int32) |
Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, при <>получении уведомления</>em или <>эм прервано< или> до тех пор, пока не истекло определенное количество реального времени. (Унаследовано от Object) |
| Wait(Int64) |
Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, при <>получении уведомления</>em или <>эм прервано< или> до тех пор, пока не истекло определенное количество реального времени. (Унаследовано от Object) |
Явные реализации интерфейса
| Имя. | Описание |
|---|---|
| IJavaPeerable.Disposed() |
Этот класс задает параметры, используемые DRBG (детерминированный генератор случайных битов). (Унаследовано от JavaObject) |
| IJavaPeerable.Finalized() |
Этот класс задает параметры, используемые DRBG (детерминированный генератор случайных битов). (Унаследовано от JavaObject) |
| IJavaPeerable.JniObjectReferenceControlBlock |
Этот класс задает параметры, используемые DRBG (детерминированный генератор случайных битов). (Унаследовано от JavaObject) |
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
Этот класс задает параметры, используемые DRBG (детерминированный генератор случайных битов). (Унаследовано от JavaObject) |
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
Этот класс задает параметры, используемые DRBG (детерминированный генератор случайных битов). (Унаследовано от JavaObject) |
| IJavaPeerable.SetPeerReference(JniObjectReference) |
Этот класс задает параметры, используемые DRBG (детерминированный генератор случайных битов). (Унаследовано от JavaObject) |
Методы расширения
| Имя. | Описание |
|---|---|
| GetJniTypeName(IJavaPeerable) |
Возвращает имя JNI типа экземпляра |
| JavaAs<TResult>(IJavaPeerable) |
Попробуйте принуждать к типу |
| JavaCast<TResult>(IJavaObject) |
Выполняет преобразование типа, проверяемого средой выполнения Android. |
| JavaCast<TResult>(IJavaObject) |
Этот класс задает параметры, используемые DRBG (детерминированный генератор случайных битов). |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
Попробуйте принуждать к типу |