Added allowed_identities file support to rncp
This commit is contained in:
parent
874d76b343
commit
839b72469c
@ -60,10 +60,42 @@ def receive(configdir, verbosity = 0, quietness = 0, allowed = [], display_ident
|
|||||||
if disable_auth:
|
if disable_auth:
|
||||||
allow_all = True
|
allow_all = True
|
||||||
else:
|
else:
|
||||||
|
dest_len = (RNS.Reticulum.TRUNCATED_HASHLENGTH//8)*2
|
||||||
|
try:
|
||||||
|
allowed_file_name = "allowed_identities"
|
||||||
|
allowed_file = None
|
||||||
|
if os.path.isfile(os.path.expanduser("/etc/rncp/"+allowed_file_name)):
|
||||||
|
allowed_file = os.path.expanduser("/etc/rncp/"+allowed_file_name)
|
||||||
|
elif os.path.isfile(os.path.expanduser("~/.config/rncp/"+allowed_file_name)):
|
||||||
|
allowed_file = os.path.expanduser("~/.config/rncp/"+allowed_file_name)
|
||||||
|
elif os.path.isfile(os.path.expanduser("~/.rncp/"+allowed_file_name)):
|
||||||
|
allowed_file = os.path.expanduser("~/.rncp/"+allowed_file_name)
|
||||||
|
if allowed_file != None:
|
||||||
|
af = open(allowed_file, "r")
|
||||||
|
al = af.read().replace("\r", "").split("\n")
|
||||||
|
ali = []
|
||||||
|
for a in al:
|
||||||
|
if len(a) == dest_len:
|
||||||
|
ali.append(a)
|
||||||
|
|
||||||
|
if len(ali) > 0:
|
||||||
|
if not allowed:
|
||||||
|
allowed = ali
|
||||||
|
else:
|
||||||
|
allowed.extend(ali)
|
||||||
|
if al == 1:
|
||||||
|
ms = "y"
|
||||||
|
else:
|
||||||
|
ms = "ies"
|
||||||
|
|
||||||
|
RNS.log("Loaded "+str(len(ali))+" allowed identit"+ms+" from "+str(allowed_file), RNS.LOG_VERBOSE)
|
||||||
|
|
||||||
|
except Exception as e:
|
||||||
|
RNS.log("Error while parsing allowed_identities file. The contained exception was: "+str(e), RNS.LOG_ERROR)
|
||||||
|
|
||||||
if allowed != None:
|
if allowed != None:
|
||||||
for a in allowed:
|
for a in allowed:
|
||||||
try:
|
try:
|
||||||
dest_len = (RNS.Reticulum.TRUNCATED_HASHLENGTH//8)*2
|
|
||||||
if len(a) != dest_len:
|
if len(a) != dest_len:
|
||||||
raise ValueError("Allowed destination length is invalid, must be {hex} hexadecimal characters ({byte} bytes).".format(hex=dest_len, byte=dest_len//2))
|
raise ValueError("Allowed destination length is invalid, must be {hex} hexadecimal characters ({byte} bytes).".format(hex=dest_len, byte=dest_len//2))
|
||||||
try:
|
try:
|
||||||
|
Loading…
Reference in New Issue
Block a user