File: README.md

package info (click to toggle)
infnoise 0.3.3%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, forky, sid, trixie
  • size: 27,304 kB
  • sloc: ansic: 2,177; sh: 251; python: 146; makefile: 65
file content (37 lines) | stat: -rw-r--r-- 1,804 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# Usage examples for Infinite Noise

## Integrate the binary to python

See the python examples `serial-numbers.py` and `randomserver.py` to see how you could integrate it with python.

#### serial-numbers.py
An extended version of this script was used to generate the serial numbers of all Infinite Noise's made by 13-37.org. The numbers generated by this simpler one are not guaranteed to be unique, thats why I use the UNIQUE constraint of a database when storing them.

This simple version just prints the serials to stdout. Call like this:

    $ ./serial-numbers.py -c 3 -l 8
    0A8BBA15
    0341F762
    813DC0BD

#### randomserver.py

A simple webserver based on the web.py framework to serve random data via a REST interface. 
An improved version is hosted on [rng.13-37.org](https://rng.13-37.org).

## libinfnoise

Under libinfnoise/examples you'll find two examples on how to integrate libinfnoise, which consist of the following functions:

    // returns a struct of infnoise_devlist_node listing all connected FTDI FT240 devices by their USB descriptors
    devlist_node listUSBDevices(char **message);

    // initialize the Infinite Noise TRNG - must be called once before readData() works
    bool initInfnoise(struct infnoise_context *context, char *serial, bool keccak, bool debug);

    // Reads some bytes from the TRNG and stores them in the "result" byte array.
    // The array has to be of sufficient size. Please refer to the example programs. 
    // (64 byte for normal operation or 128byte for multiplier mode)
    uint32_t readData(struct infnoise_context *context, uint8_t *result, bool raw, uint32_t outputMultiplier);

The infnoise_context struct is also part of the interface. See [libinfnoise.h](../libinfnoise.h) for it's definition and the interface documentation.