in otp.py [0:0]
def load_passwords():
"Load password from the storage file."
path = otp_path()
try:
s = os.lstat(path)
except OSError:
return { }
if not stat.S_ISREG(s.st_mode):
print('ERROR: not a regular file:', path)
sys.exit(1)
# Only user read/write. Nobody else.
if (s.st_mode & (stat.S_IRWXU | stat.S_IRWXG | stat.S_IRWXO)) != 0o600:
print('ERROR: should be mode 0600:', path)
sys.exit(1)
pwds = { }
for l in open(path).readlines():
m = RE_STORAGE.match(l)
if m:
#print('MATCH:', m.groups())
if m.group(2):
algo = m.group(2).lower()
else:
algo = DEFAULT_ALGO
pwds[m.group(4).encode()] = (m.group(5).encode(), algo)
return pwds