RandonautEntroPy/randonautentropy/temporal.py
2023-06-03 10:33:45 +03:00

21 lines
No EOL
817 B
Python

import os
import shutil
from subprocess import check_output as exec
from .install import install
def get(length=10, channel=0):
"""
Fetch data from the local TemporalLib RNG and returns a string of hex16
length (int): length of bytes to get from the RNG
channel (int): 0 for slower but higher quality entropy, 1 for faster but lower quality entropy
"""
length *= 2 # returns nibbles by default, so let's make that bytes
module_path = os.path.abspath(os.path.dirname(__file__))
temporal_path = os.path.abspath(f"{module_path}/temporal")
exe_path = f'{temporal_path}/result/{os.uname().sysname}/temporal'
if shutil.which('temporal') is None:
install()
temporal = exec(f'temporal hexdump {channel} {length}', shell=True)
return temporal[:-1].decode('UTF-8')