В Linux любые данные, записанные в /dev /random или /dev /urandom, копируются в блокирующий пул (источник случайности для /dev /random) и неблокирующий пул (источник случайности для /dev /urandom).
Просто посмотрите на функцию random_write .
Но данные, записанные в /dev /random, не учитываются внутренним оценщиком энтропии (в конце концов, некоторые локальные злоумышленники могут попытаться просто перенаправить /dev /zero или какой-либо другой весьма неслучайный источник в /dev /random), так что если у вас есть проблемы с блокировкой /dev /random просто запись в /dev /random не помогает.
В Linux пишите в /dev /random (или /dev /urandom, без разницы), но всегда читайте из /dev /urandom (как только он будет заполнен - на самом деле лучший способ - использовать новый системный вызов getrandom).
Я не знаю, как это работает в других Unices.