Класс SecureRandomSpi

Все реализованные интерфейсы:
Serializable
public abstract class SecureRandomSpi
extends Object
implements Serializable

Этот класс определяет интерфейс поставщика сервисов (SPI) для класса SecureRandom.

Все абстрактные методы в этом классе должны быть реализованы каждым поставщиком сервиса, желающим предоставить реализацию криптографически стойкого псевдослучайного генератора чисел.

Требования к реализации:
Если конструктор SecureRandomSpi(SecureRandomParameters) переопределен в реализации, он всегда будет вызываться при каждом создании объекта SecureRandom. Точнее, если объект создается с использованием одного из методов SecureRandom без параметра SecureRandomParameters, конструктор будет вызван с аргументом null, и реализация отвечает за создание собственного параметра SecureRandomParameters, который будет использоваться при вызове engineGetParameters(). Если объект создается с использованием одного из методов SecureRandom с аргументом SecureRandomParameters, конструктор будет вызван с этим аргументом. Метод engineGetParameters() не должен возвращать null.

В противном случае, если конструктор SecureRandomSpi(SecureRandomParameters) не переопределен в реализации, конструктор SecureRandomSpi() должен быть переопределен, и он будет вызван, если объект создается с использованием одного из методов SecureRandom без аргумента SecureRandomParameters. Вызов одного из методов SecureRandom с аргументом SecureRandomParameters никогда не вернет экземпляр этой реализации. Метод engineGetParameters() должен возвращать null.

См. SecureRandom для получения дополнительных сведений о потоковой безопасности. По умолчанию реализация SecureRandomSpi не считается безопасной для использования несколькими потоками одновременно, и SecureRandom будет синхронизировать доступ к каждому из применимых методов движка (см. SecureRandom для списка методов). Однако, если реализация SecureRandomSpi потокобезопасна, атрибут поставщика сервиса "ThreadSafe" должен быть установлен в значение "true" во время его регистрации, следующим образом:

put("SecureRandom.AlgName ThreadSafe", "true");
или
putService(new Service(this, "SecureRandom", "AlgName", className,
         null, Map.of("ThreadSafe", "true")));
SecureRandom будут вызывать соответствующие методы движка без синхронизации.
С:
1.2
См. также:
Сериализованная форма

Конструкторы

МодификаторКонструкторОписание
SecureRandomSpi()

Конструктор без параметров.

protected SecureRandomSpi​(SecureRandomParameters params)

Конструктор с параметром.

Методы

Модификатор и типМетодОписание
protected abstract byte[]engineGenerateSeed​(int numBytes)

Возвращает заданное количество байтов семян.

protected SecureRandomParametersengineGetParameters()

Возвращает эффективные параметры SecureRandomParameters для данного экземпляра SecureRandom.

protected abstract voidengineNextBytes​(byte[] bytes)

Генерирует заданное количество случайных байтов.

protected voidengineNextBytes​(byte[] bytes, SecureRandomParameters params)

Генерирует заданное количество случайных байтов с дополнительными параметрами.

protected voidengineReseed​(SecureRandomParameters params)

Перезапускает этот объект генератора случайных чисел с помощью входных данных энтропии, полученных из источника энтропии с дополнительными параметрами.

protected abstract voidengineSetSeed​(byte[] seed)

Перезапускает этот объект генератора случайных чисел с заданным семенем.

StringtoString()

Возвращает строку представления этого объекта SecureRandom в удобочитаемом формате.

Методы, объявленные в классе java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait

Конструкторы

SecureRandomSpi

public SecureRandomSpi()

Конструктор без параметров.

SecureRandomSpi

protected SecureRandomSpi(SecureRandomParameters params)

Конструктор с параметром.

Параметры:
params - объект SecureRandomParameters. Этот аргумент может быть null.
Исключения:
IllegalArgumentException - если params не распознаётся или не поддерживается данным SecureRandom
С:
9

Методы

engineSetSeed

protected abstract void engineSetSeed(byte[] seed)

Перезапускает этот объект генератора случайных чисел с заданным семенем. Семено дополняет, а не заменяет, существующее семя. Таким образом, повторяющиеся вызовы гарантированно не уменьшат случайность.

Параметры:
seed - семя.

engineNextBytes

protected abstract void engineNextBytes(byte[] bytes)

Генерирует заданное количество случайных байтов.

Некоторые генераторы случайных чисел могут генерировать только ограниченное количество случайных байтов за один вызов. Если размер bytes превышает этот предел, реализация должна вызывать свой процесс генерации несколько раз, чтобы полностью заполнить буфер, прежде чем возвращаться из этого метода.

Параметры:
bytes - массив, который нужно заполнить случайными байтами.

engineNextBytes

protected void engineNextBytes(byte[] bytes,
                               SecureRandomParameters params)

Генерирует заданное количество случайных байтов с дополнительными параметрами.

Некоторые генераторы случайных чисел могут генерировать только ограниченное количество случайных байтов за один вызов. Если размер bytes превышает этот предел, реализация должна вызывать свой процесс генерации несколько раз, чтобы полностью заполнить буфер, прежде чем возвращаться из этого метода.

Требования к реализации:
Реализация по умолчанию выбрасывает UnsupportedOperationException.
Параметры:
bytes - массив, который нужно заполнить случайными байтами
params - дополнительные параметры
Исключения:
UnsupportedOperationException - если реализация не переопределила этот метод
IllegalArgumentException - если params является null, незаконным или не поддерживается данным SecureRandom
С:
9

engineGenerateSeed

protected abstract byte[] engineGenerateSeed(int numBytes)

Возвращает заданное количество байтов семян. Этот вызов может быть использован для инициализации других генераторов случайных чисел.

Параметры:
numBytes - количество байтов семян для генерации.
Возвращает:
байты семян.

engineReseed

protected void engineReseed(SecureRandomParameters params)

Перезапускает этот объект генератора случайных чисел с помощью входных данных энтропии, полученных из источника энтропии с дополнительными параметрами.

Если этот метод вызывается методом SecureRandom.reseed(), params будет null.

Не переопределяйте этот метод, если реализация не поддерживает перезапуск.

Требования к реализации:
Реализация по умолчанию выбрасывает UnsupportedOperationException.
Параметры:
params - дополнительные параметры, могут быть null.
Исключения:
UnsupportedOperationException - если реализация не переопределила этот метод
IllegalArgumentException - если params незаконно или не поддерживается данным SecureRandom
С:
9

engineGetParameters

protected SecureRandomParameters engineGetParameters()

Возвращает эффективные параметры SecureRandomParameters для данного экземпляра SecureRandom.

Требования к реализации:
Реализация по умолчанию возвращает null.
Возвращает:
эффективные параметры SecureRandomParameters, или null если параметры не использовались.
С:
9

toString

public String toString()

Возвращает строку представления этого объекта SecureRandom в удобочитаемом формате.

Переопределяет:
toString в классе Object
Возвращает:
строковое представление

© 1993, 2020, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/security/SecureRandomSpi.html

Spec-Zone .ru
спецификации, руководства, описания, API