Proprietary software by ® Rudoysecurity™

Класс THardwareEntropy

Модуль

Объявления

type THardwareEntropy = class(TObject)

Описание

Класс для получения энтропии с использованием аппаратных генераторов RDRAND и RDSEED Автор: © Рудой Андрей Игоревич, 2005 - 2025 г.

Использует инструкции RDRAND и RDSEED современных процессоров Intel/AMD

Требует поддержки соответствующих инструкций процессором

<author> © Рудой Андрей Игоревич</author>

Иерархия

Обзор

Поля

Private FSupportRDRAND: Boolean;
Private FSupportRDSEED: Boolean;
Private FProgressBar: TProgressBar;

Методы

Public constructor Create;
Public function CollectEntropy(Count: Integer; ProgressBar: TProgressBar): TBytes;
Public function CollectRDRAND(Count: Integer; ProgressBar: TProgressBar): TBytes;
Public function CollectRDSEED(Count: Integer; ProgressBar: TProgressBar): TBytes;
Public function IsHardwareEntropyAvailable: Boolean;
Private function CheckRDRANDSupport: Boolean;
Private function CheckRDSEEDSupport: Boolean;
Private function TryRDRAND32(out Value: UInt32): Boolean;
Private function TryRDSEED32(out Value: UInt32): Boolean;
Public procedure GetHardwareSupport(out RDRAND, RDSEED: Boolean);
Private procedure UpdateProgress(Current, Total: Integer);

Описание

Поля

Private FSupportRDRAND: Boolean;

This item has no description.

Private FSupportRDSEED: Boolean;

This item has no description.

Private FProgressBar: TProgressBar;

This item has no description.

Методы

Public constructor Create;

Создает экземпляр сборщика аппаратной энтропии

Public function CollectEntropy(Count: Integer; ProgressBar: TProgressBar): TBytes;

Собирает энтропию используя оба доступных аппаратных генератора с визуализацией прогресса

Предпочтительно использует RDSEED, если доступен, иначе RDRAND

Параметры
Count
Количество байт для сбора
ProgressBar
Компонент ProgressBar для отображения прогресса сбора
Возвращаемые значения

Массив байт содержащий запрошенное количество энтропии

Public function CollectRDRAND(Count: Integer; ProgressBar: TProgressBar): TBytes;

Собирает энтропию используя RDRAND с визуализацией прогресса

Параметры
Count
Количество байт для сбора
ProgressBar
Компонент ProgressBar для отображения прогресса сбора
Возвращаемые значения

Массив байт содержащий запрошенное количество энтропии

Вызывает исключения
EHardwareEntropyError
Вызывается если RDRAND не поддерживается или произошла ошибка
Public function CollectRDSEED(Count: Integer; ProgressBar: TProgressBar): TBytes;

Собирает энтропию используя RDSEED с визуализацией прогресса

Параметры
Count
Количество байт для сбора
ProgressBar
Компонент ProgressBar для отображения прогресса сбора
Возвращаемые значения

Массив байт содержащий запрошенное количество энтропии

Вызывает исключения
EHardwareEntropyError
Вызывается если RDSEED не поддерживается или произошла ошибка
Public function IsHardwareEntropyAvailable: Boolean;

Проверяет, доступны ли аппаратные генераторы энтропии

Возвращаемые значения

True если хотя бы один генератор доступен

Private function CheckRDRANDSupport: Boolean;

Проверяет поддержку инструкции RDRAND (NIST SP 800-90A, FIPS 140-2, ANSI X9.82) процессором. Автор: © Рудой Андрей Игоревич, 2005 - 2025 г.

<author> © Рудой Андрей Игоревич</author>

Возвращаемые значения

True если процессор поддерживает RDRAND, иначе False

Private function CheckRDSEEDSupport: Boolean;

Проверяет поддержку инструкции RDSEED процессором

Возвращаемые значения

True если процессор поддерживает RDSEED, иначе False

Private function TryRDRAND32(out Value: UInt32): Boolean;

Пытается получить случайное 32-битное значение через RDRAND

Параметры
Value
Ссылка на переменную для сохранения полученного значения
Возвращаемые значения

True если значение успешно получено, иначе False

Private function TryRDSEED32(out Value: UInt32): Boolean;

Пытается получить случайное 32-битное значение через RDSEED

Параметры
Value
Ссылка на переменную для сохранения полученного значения
Возвращаемые значения

True если значение успешно получено, иначе False

Public procedure GetHardwareSupport(out RDRAND, RDSEED: Boolean);

Получает информацию о поддержке аппаратных генераторов

Параметры
RDRAND
Возвращает True если поддерживается RDRAND
RDSEED
Возвращает True если поддерживается RDSEED
Private procedure UpdateProgress(Current, Total: Integer);

Обновляет прогресс-бар

Параметры
Current
Текущее количество собранных байт
Total
Общее количество байт для сбора
© Andrey Igorevich Rudoy, 2005-2025 jear
Сгенерировал PasDoc 0.16.0-snapshot.