Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 2c7f16ce51 | |||
| 6251aa5be8 |
@@ -1,46 +0,0 @@
|
||||
|
||||
# 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
|
||||
3
TODO.md
3
TODO.md
@@ -1,3 +0,0 @@
|
||||
# TODO
|
||||
|
||||
## The pad menu in interactive encrypt mode gives numbers instead of checksum selection
|
||||
4
build.sh
4
build.sh
@@ -269,7 +269,6 @@ build_project() {
|
||||
else
|
||||
# Build both architectures
|
||||
print_status "Building OTP project for x86_64..."
|
||||
make clean
|
||||
make CC=gcc ARCH=x86_64
|
||||
if [ $? -eq 0 ]; then
|
||||
print_success "x86_64 build completed successfully"
|
||||
@@ -279,7 +278,8 @@ build_project() {
|
||||
fi
|
||||
|
||||
print_status "Building OTP project for ARM64/AArch64..."
|
||||
make clean
|
||||
# Clean only object files, not the x86_64 binary
|
||||
rm -f src/*.o
|
||||
make CC=aarch64-linux-gnu-gcc ARCH=arm64
|
||||
if [ $? -eq 0 ]; then
|
||||
print_success "ARM64/AArch64 build completed successfully"
|
||||
|
||||
1
debug.c
1
debug.c
@@ -1 +0,0 @@
|
||||
int main() { printf("Testing direct filename: %d\n", strncmp("97d9d82b5414a9439102f3811fb90ab1d6368a00d33229a18b306476f9d04f82.pad", "97", 2)); return 0; }
|
||||
@@ -1,22 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
echo "Manual OTP Test"
|
||||
echo "==============="
|
||||
|
||||
# Generate a test pad
|
||||
echo "Generating test pad..."
|
||||
./otp generate demo 1
|
||||
echo
|
||||
|
||||
# Create a test message file for encryption
|
||||
echo "Creating test message..."
|
||||
echo "This is a secret message for testing OTP encryption!" > test_message.txt
|
||||
|
||||
# Test encryption interactively
|
||||
echo "Testing encryption (will prompt for input):"
|
||||
echo "Please enter: This is a secret message for testing OTP encryption!"
|
||||
./otp encrypt demo
|
||||
|
||||
echo
|
||||
echo "Files created:"
|
||||
ls -la demo.*
|
||||
Reference in New Issue
Block a user