25 lines
556 B
Text
25 lines
556 B
Text
|
#!/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)
|