• The current exported interfaces for gathering environmental noise
  • from the devices are:

  • void add_device_randomness(const void *buf, unsigned int size);
  • void add_input_randomness(unsigned int type, unsigned int code,

    1. unsigned int value);
  • void add_interrupt_randomness(int irq, int irq_flags);

  • void add_disk_randomness(struct gendisk *disk);

  • 一、随机数的产生

    用熵池产生随机数,下面是一些操作熵池的函数:
    2.6版本
序号 方法 描述 分析
1 add_interrupt_randomness(int irq) 使用中断产生的时间间隔更新熵池 三种产生随机数的方法
2 add_disk_randomness(struct gendisk *disk) 连续两次磁盘操作的时间间隔更新熵池
3 add_input_randomness(unsigned int type, unsigned int code, unsigned int value) 使用输入源设备之间的时间间隔
4 add_timer_randomness(struct timer_rand_state *state, unsigned num) 将计算后的熵更新到熵池 上面三种最终使用此方法更新熵池

5.2版本:
The current exported interfaces for gathering environmental noise
from the devices are:

void add_device_randomness(const void buf, unsigned int size);
void add_input_randomness(unsigned int type, unsigned int code,
unsigned int value);
void add_interrupt_randomness(int irq, int irq_flags);
void add_disk_randomness(struct gendisk disk);
*

序号 方法 描述 分析
1 add_interrupt_randomness(int irq) 使用中断产生的时间间隔更新熵池 三种产生随机数的方法
2 add_disk_randomness(struct gendisk *disk) 连续两次磁盘操作的时间间隔更新熵池
3 add_input_randomness(unsigned int type, unsigned int code, unsigned int value) 使用输入源设备之间的时间间隔
4 add_timer_randomness(struct timer_rand_state *state, unsigned num) 将计算后的熵更新到熵池 上面三种最终使用此方法更新熵池