Files
otp/HARDWARE_RNG_STATUS.md
2025-10-09 10:45:04 -04:00

1.9 KiB

Hardware RNG Implementation Status

Overview

The OTP cipher application now includes comprehensive hardware Random Number Generator (RNG) device support with automatic detection, device identification, and graceful handling of different device types.

Supported Devices

Fully Supported (TrueRNG Family)

  • TrueRNG Original (VID: 04d8, PID: f5fe)
  • TrueRNG Pro (VID: 04d8, PID: 0aa0)
  • TrueRNG Pro V2 (VID: 04d8, PID: ebb5)

These devices work via serial port communication and are fully integrated into the entropy collection system.

⚠️ Detected but Not Supported (SwiftRNG Family)

  • SwiftRNG (VID: 1fc9, PID: 8111)

SwiftRNG devices are detected and identified but cannot be used via serial port communication. They require the official SwiftRNG API with libusb-1.0 integration.

Implementation Features

Device Detection

  • Automatic scanning of /dev/ttyUSB* and /dev/ttyACM* devices
  • VID/PID identification via sysfs to distinguish device types
  • Multi-device support with interactive selection menus
  • Real-time status indicators showing device availability

Device Communication

  • Optimized serial port configuration for each device type
  • Timeout protection to prevent hanging on unresponsive devices
  • Error handling with clear diagnostic messages
  • Progress tracking with speed estimation for large entropy collections

Integration Points

  • Pad enhancement via entropy addition to existing pads
  • Interactive menus for device selection when multiple devices are present
  • Command-line support for automated workflows
  • Graceful fallback to other entropy sources when no hardware RNG is available

Technical Implementation

Core Functions

  • detect_all_hardware_rng_devices() - Scans and identifies all connected devices
  • collect_truerng_entropy_from_device() - Collects entropy from TrueRNG devices