A while ago a posted a dmesg for a TRNG USB device (the MoonBase Otago
OneRNG) per
<http://openbsd-archive.7691.n7.nabble.com/dmesg-OneRNG-hardware-RNG-plugged-into-Soekris-5501-td276480.html>.

I'm looking at adding support for this device but haven't splunked too
much into the OpenBSD kernel before, and I'm looking for advice.

The OneRNG was manufactured to present itself as a modem and in the Linux
sample source code the (user space) process to first initialize the device
by echoing some commands to the device and then cat its output to rngd.

For the OpenBSD side, I found /usr/src/sys/dev/usb/ualea.c which is
another USB-based TRNG.  The model there would be to usbd_transfer(9)
from the device and then forward it via add_true_randomness(9).

However, because the OneRNG was manufactured to look like a modem,
the other possibility is to have it recognised in
/usr/src/sys/dev/usb/umodem.c.  If that's the case, though, it's
unclear to me what the mechanism should be to pull the data from the
OneRNG and give it to the kernel; presumably we don't want any
userspace code here.

Am I correct in assuming that the ualea mechanism is probabably the
right way to go?

Devin

Reply via email to