Diminuer ou vider le pool d'entropie?

Je travaille beaucoup avec les machines virtuelles, et elles semblent généralement faibles en entropie (pas de souris ni d'autres inputs générant de l'entropie). Un bug avec mon logiciel est apparu, et je pense que c'est dû au manque d'entropie. Je veux le tester, mais cela n'arrive que de time en time et est difficile à reproduire.

Comment puis-je vider le pool d'entropie pour tester le comportement de mon logiciel lorsqu'il est épuisé?

(Note: j'appelle le code de quelqu'un d'autre qui utilise dev/random , donc utiliser dev/urandom pour empêcher le blocage n'est pas une option).

cat /dev/random utilisera continuellement l'entropie au fur et à mesure de sa disponibilité, le gardant à ou proche de zéro. Ce n'est pas parfait, mais c'est simple.

Tout d'abord, vous devriez vous assurer que c'est vraiment l'épuisement du pool random qui produit le bogue dans votre logiciel. Vous pouvez exécuter cat /proc/sys/kernel/random/entropy_avail pour tester l'entropie disponible sur votre système et vérifier s'il atteint zéro.

Deuxièmement, AFAIK (je n'ai pas testé ces commands), vous pouvez diminuer le pool d'entropie en définissant la variable appropriée dans / proc. Pour le définir sur 32 bits:

echo 32 > /proc/sys/kernel/random/poolsize

ou

sysctl -w kernel.random.poolsize=32