Язык

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
Наследование
DrbgParameters
Атрибуты

Комментарии

Этот класс задает параметры, используемые 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

Возвращает класс среды выполнения этого Objectобъекта.

(Унаследовано от Object)
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 типа экземпляра self.

JavaAs<TResult>(IJavaPeerable)

Попробуйте принуждать к типуself, проверяяTResult, является ли приведение допустимым на стороне Java.

JavaCast<TResult>(IJavaObject)

Выполняет преобразование типа, проверяемого средой выполнения Android.

JavaCast<TResult>(IJavaObject)

Этот класс задает параметры, используемые DRBG (детерминированный генератор случайных битов).

TryJavaCast<TResult>(IJavaPeerable, TResult)

Попробуйте принуждать к типуself, проверяяTResult, является ли приведение допустимым на стороне Java.

Применяется к