Использование RNDADDENTROPY для добавления энтропии в / dev / random
У меня есть устройство, которое генерирует некоторый шум, который я хочу добавить в пул энтропии для устройства / dev / random во встроенной системе Linux.
Я читаюСтраница man на / dev / random и я не очень понимаю структуру, которую вы передаете в вызов RNDADDENTROPY ioctl.
RNDADDENTROPY
Add some additional entropy to the input pool, incrementing
the entropy count. This differs from writing to /dev/random
or /dev/urandom, which only adds some data but does not
increment the entropy count. The following structure is used:
struct rand_pool_info {
int entropy_count;
int buf_size;
__u32 buf[0];
};
Here entropy_count is the value added to (or subtracted from)
the entropy count, and buf is the buffer of size buf_size
which gets added to the entropy pool.
Являетсяentropy_count
в этой структуре количество бит, которые я добавляю? Почему это не всегда такbuf_size * 8
(при условии, чтоbuf_size
это в байтах)?
Дополнительно почемуbuf
массив нулевого размера? Как я должен назначить значение для него?
Спасибо за любую помощь здесь!