1.9 KiB
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 devicescollect_truerng_entropy_from_device()- Collects entropy from TrueRNG devices