Usando RNDADDENTROPY para adicionar entropy a / dev / random

Eu tenho um dispositivo que gera algum ruído que eu quero adicionar ao pool de entropia para o dispositivo / dev / random em um sistema Linux embarcado.

Eu estou lendo oPágina man on / dev / random e eu realmente não entendo a estrutura que você passa para a chamada ioctl RNDADDENTROPY.

   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 nessa estrutura o número de bits que estou adicionando? Por que isso não seria semprebuf_size * 8 (assumindo quebuf_size está em termos de bytes)?

Além disso, porque é quebuf uma matriz de tamanho zero? Como devo atribuir um valor a ele?

Obrigado por qualquer ajuda aqui!

questionAnswers(3)

yourAnswerToTheQuestion