distribution/packages/sysutils/entropy/sources/add-entropy
2022-02-05 09:23:32 -05:00

24 lines
556 B
Python

#!/usr/bin/python
import os
import struct
RNDADDENTROPY = 0x40085203
import fcntl
def add_entropy(fd, data):
add = struct.pack('ii', len(data)*8, len(data)) + data
fcntl.ioctl(fd, RNDADDENTROPY, add)
if not os.path.isfile("/storage/.cache/random.data"):
os.system("dd if=/dev/urandom of=/storage/.cache/random.data count=4 >/dev/null")
cache=os.open("/storage/.cache/random.data", os.O_RDONLY)
rnd=os.open("/dev/random", os.O_RDWR)
while True:
data=os.read(cache, 512)
if len(data) == 0:
break
add_entropy(rnd, data)