mirror of
https://github.com/apache/nuttx.git
synced 2026-08-07 21:47:17 +00:00
Documentation/examples/rng90: add RNG90 application documentation
Document configuration, usage, Kconfig enable path, and hardware validation for the RNG90 example. Signed-off-by: Felipe Moura <moura.fmo@gmail.com>
This commit is contained in:
parent
3d059ad1d5
commit
71dfc30922
1 changed files with 118 additions and 0 deletions
118
Documentation/applications/examples/rng90/index.rst
Normal file
118
Documentation/applications/examples/rng90/index.rst
Normal file
|
|
@ -0,0 +1,118 @@
|
|||
=============================
|
||||
``rng90`` RNG90 TRNG Example
|
||||
=============================
|
||||
|
||||
The ``rng90`` example is a simple NuttX application that opens an RNG90 device
|
||||
node, reads random bytes, and prints them in hexadecimal format.
|
||||
|
||||
RNG90 is a dedicated hardware random number generator IC from Microchip. It can
|
||||
be used as a companion device for microcontrollers that do not provide native
|
||||
true random number generation (TRNG).
|
||||
|
||||
According to the Microchip RNG90 product page and linked validation artifacts,
|
||||
the device is presented as a FIPS 140-3 compliant random number generator with
|
||||
SP 800-90 A/B/C alignment, with references to NIST validation entries such as
|
||||
entropy certificate E194 and DRBG validation A3013.
|
||||
|
||||
Microchip also positions this device for disposable/ecosystem-control
|
||||
applications, which makes it a practical choice for cost-sensitive designs.
|
||||
|
||||
Configuration
|
||||
=============
|
||||
|
||||
Enable this application in ``menuconfig``:
|
||||
|
||||
- ``Application Configuration -> Examples -> Microchip RNG90 TRNG example``
|
||||
|
||||
Required dependency:
|
||||
|
||||
- Enable the driver in ``menuconfig``:
|
||||
``Device Drivers -> Cryptographic Device Drivers -> Enable Microchip RNG90 TRNG``
|
||||
(``CONFIG_DEV_RNG90``)
|
||||
|
||||
Application options:
|
||||
|
||||
- ``CONFIG_EXAMPLES_RNG90``
|
||||
- ``CONFIG_EXAMPLES_RNG90_PROGNAME`` (default: ``"rng90"``)
|
||||
- ``CONFIG_EXAMPLES_RNG90_DEVPATH`` (default: ``"/dev/rng0"``)
|
||||
- ``CONFIG_EXAMPLES_RNG90_PRIORITY``
|
||||
- ``CONFIG_EXAMPLES_RNG90_STACKSIZE``
|
||||
|
||||
Usage
|
||||
=====
|
||||
|
||||
From NSH::
|
||||
|
||||
rng90 [<devpath>] [<count>]
|
||||
|
||||
Arguments:
|
||||
|
||||
- ``<devpath>``: RNG90 device path (default from
|
||||
``CONFIG_EXAMPLES_RNG90_DEVPATH``)
|
||||
- ``<count>``: number of random bytes to read (``1..32``, default ``32``)
|
||||
|
||||
Examples::
|
||||
|
||||
rng90
|
||||
rng90 /dev/rng0 16
|
||||
|
||||
Expected output
|
||||
===============
|
||||
|
||||
::
|
||||
|
||||
RNG90 example: device /dev/rng0
|
||||
Read 16 random byte(s):
|
||||
3f a1 7c ...
|
||||
|
||||
Notes
|
||||
=====
|
||||
|
||||
- Opening the device wakes up RNG90.
|
||||
- Closing the device puts RNG90 back to sleep.
|
||||
- If ``<count>`` is outside ``1..32``, the app clamps it to ``32``.
|
||||
|
||||
Hardware validation log
|
||||
=======================
|
||||
|
||||
The following session was executed on real hardware to validate this example.
|
||||
|
||||
Test setup:
|
||||
|
||||
- Host: macOS
|
||||
- Board: ``esp32c3-devkit``
|
||||
- Serial port: ``/dev/cu.wchusbserial140``
|
||||
- Serial settings: ``115200 8N1``
|
||||
|
||||
Console transcript::
|
||||
|
||||
nsh> uname -a
|
||||
NuttX 12.6.0-RC1 4130050287-dirty Jun 7 2026 22:11:21 risc-v esp32c3-devkit
|
||||
nsh> ls /dev/rng0
|
||||
/dev/rng0
|
||||
nsh> rng90
|
||||
RNG90 example: device /dev/rng0
|
||||
Read 32 random byte(s):
|
||||
0d b2 71 d1 40 1f 3c 50 52 3d c6 2c a9 74 ec 60
|
||||
44 ab 67 bb c4 34 1b ac 48 62 fe b9 fd 95 c9 cb
|
||||
nsh> rng90 /dev/rng0 16
|
||||
RNG90 example: device /dev/rng0
|
||||
Read 16 random byte(s):
|
||||
ef 82 5f b7 41 f1 48 13 5a 41 16 3a 67 1b 90 f2
|
||||
nsh> rng90 /dev/rng0 64
|
||||
Invalid count 64, clamping to 32
|
||||
RNG90 example: device /dev/rng0
|
||||
Read 32 random byte(s):
|
||||
bb be 2f 20 7f c8 33 8d 18 90 c8 fb 94 db bc e6
|
||||
84 41 17 6f 5a be 5a 06 c3 7b f1 30 ac f2 a6 f5
|
||||
nsh>
|
||||
|
||||
References
|
||||
==========
|
||||
|
||||
- Microchip product page:
|
||||
https://www.microchip.com/en-us/product/RNG90
|
||||
- NIST CMVP entropy certificate E194:
|
||||
https://csrc.nist.gov/projects/cryptographic-module-validation-program/entropy-validations/certificate/194
|
||||
- NIST CAVP DRBG validation A3013:
|
||||
https://csrc.nist.gov/projects/cryptographic-algorithm-validation-program/details?validation=35623
|
||||
Loading…
Add table
Add a link
Reference in a new issue