random.c Entropy pool enhancements for external TRNG connection.

From: Lorenzo Hernandez Garcia-Hierro
Date: Thu Sep 02 2004 - 15:33:29 EST


Hi,
I'm working together with a friend of my secondary school on a True
Random Number Generator,following the schemas of Fourmilab HotBits TRNG,
hardware based and connected by the standard serial connector.
The idea is to provide a big quality random numbers to inject in the
kernel entropy pool, receiving all of them by the serial cable.
I'm trying to modify random.c to implement some of these things but i'm
a bit stuck (i'm not a C master, i'm just 15 old and learning it since 2
months).

This is what i have done yet:
=====
/*******************************************************
* True Random Number Generator (TRNG) routines *
*******************************************************
* Author: Lorenzo Hernández García-Hierro <lorenzo@xxxxxxx>
* Description:
* These routines are intended to make use of an external TRNG device
* by the COM1 port (serial conector), adding more strong entropy to the
* pool.These routines have been tested using the Fourmilab HotBits
Atomic
* TRNG, which uses a Geiger counter to make true random bits based on
* the atoms' (unpredictable) destruction times.
*/

void add_trng_randomless(unsigned char trngflow)
{
[HERE SHOULD COME THE STUFF TO GET THE DATA FROM THE TRNG]
add_timer_randomness(&trng_timer_state, trngflowsc);
}

/*****************************************************
* End of True Random Number Generator (TRNG) routines *
*****************************************************/

memset(&trng_timer_state, 0, sizeof(struct timer_rand_state));
====

trngflow should be the data that comes from the TRNG, also i want to
know if i should add the symbols in the end of random.c, for
add_trng_randomless function as each other (blk,irq,kb,mouse).

Is anybody interested in this project?
I will appreciate any idea or tip.

Best regards,
--
Lorenzo Hernandez Garcia-Hierro <lorenzo@xxxxxxx>

Attachment: signature.asc
Description: Esta parte del mensaje =?ISO-8859-1?Q?est=E1?= firmadadigitalmente