Merge "cmd: Extract methods to allow import from external"
This commit is contained in:
@@ -54,6 +54,44 @@ def generate_RSA(bits=4096):
|
|||||||
return private_key, public_key
|
return private_key, public_key
|
||||||
|
|
||||||
|
|
||||||
|
def genpwd(passwords_file, length, uuid_keys, ssh_keys, blank_keys,
|
||||||
|
fernet_keys, hmac_md5_keys):
|
||||||
|
with open(passwords_file, 'r') as f:
|
||||||
|
passwords = yaml.safe_load(f.read())
|
||||||
|
|
||||||
|
for k, v in passwords.items():
|
||||||
|
if (k in ssh_keys and
|
||||||
|
(v is None
|
||||||
|
or v.get('public_key') is None
|
||||||
|
and v.get('private_key') is None)):
|
||||||
|
private_key, public_key = generate_RSA()
|
||||||
|
passwords[k] = {
|
||||||
|
'private_key': private_key,
|
||||||
|
'public_key': public_key
|
||||||
|
}
|
||||||
|
continue
|
||||||
|
if v is None:
|
||||||
|
if k in blank_keys and v is None:
|
||||||
|
continue
|
||||||
|
if k in uuid_keys:
|
||||||
|
passwords[k] = uuidutils.generate_uuid()
|
||||||
|
elif k in hmac_md5_keys:
|
||||||
|
passwords[k] = (hmac.new(
|
||||||
|
uuidutils.generate_uuid().encode(), ''.encode(), md5)
|
||||||
|
.hexdigest())
|
||||||
|
elif k in fernet_keys:
|
||||||
|
passwords[k] = fernet.Fernet.generate_key()
|
||||||
|
else:
|
||||||
|
passwords[k] = ''.join([
|
||||||
|
random.SystemRandom().choice(
|
||||||
|
string.ascii_letters + string.digits)
|
||||||
|
for n in range(length)
|
||||||
|
])
|
||||||
|
|
||||||
|
with open(passwords_file, 'w') as f:
|
||||||
|
f.write(yaml.safe_dump(passwords, default_flow_style=False))
|
||||||
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
parser = argparse.ArgumentParser()
|
parser = argparse.ArgumentParser()
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
@@ -91,40 +129,9 @@ def main():
|
|||||||
# length of password
|
# length of password
|
||||||
length = 40
|
length = 40
|
||||||
|
|
||||||
with open(passwords_file, 'r') as f:
|
genpwd(passwords_file, length, uuid_keys, ssh_keys, blank_keys,
|
||||||
passwords = yaml.safe_load(f.read())
|
fernet_keys, hmac_md5_keys)
|
||||||
|
|
||||||
for k, v in passwords.items():
|
|
||||||
if (k in ssh_keys and
|
|
||||||
(v is None
|
|
||||||
or v.get('public_key') is None
|
|
||||||
and v.get('private_key') is None)):
|
|
||||||
private_key, public_key = generate_RSA()
|
|
||||||
passwords[k] = {
|
|
||||||
'private_key': private_key,
|
|
||||||
'public_key': public_key
|
|
||||||
}
|
|
||||||
continue
|
|
||||||
if v is None:
|
|
||||||
if k in blank_keys and v is None:
|
|
||||||
continue
|
|
||||||
if k in uuid_keys:
|
|
||||||
passwords[k] = uuidutils.generate_uuid()
|
|
||||||
elif k in hmac_md5_keys:
|
|
||||||
passwords[k] = (hmac.new(
|
|
||||||
uuidutils.generate_uuid().encode(), ''.encode(), md5)
|
|
||||||
.hexdigest())
|
|
||||||
elif k in fernet_keys:
|
|
||||||
passwords[k] = fernet.Fernet.generate_key()
|
|
||||||
else:
|
|
||||||
passwords[k] = ''.join([
|
|
||||||
random.SystemRandom().choice(
|
|
||||||
string.ascii_letters + string.digits)
|
|
||||||
for n in range(length)
|
|
||||||
])
|
|
||||||
|
|
||||||
with open(passwords_file, 'w') as f:
|
|
||||||
f.write(yaml.safe_dump(passwords, default_flow_style=False))
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
main()
|
main()
|
||||||
|
|||||||
@@ -16,23 +16,26 @@ import argparse
|
|||||||
import yaml
|
import yaml
|
||||||
|
|
||||||
|
|
||||||
|
def mergepwd(old, new, final):
|
||||||
|
with open(old, "r") as old_file:
|
||||||
|
old_passwords = yaml.safe_load(old_file)
|
||||||
|
|
||||||
|
with open(new, "r") as new_file:
|
||||||
|
new_passwords = yaml.safe_load(new_file)
|
||||||
|
|
||||||
|
new_passwords.update(old_passwords)
|
||||||
|
|
||||||
|
with open(final, "w") as destination:
|
||||||
|
yaml.safe_dump(new_passwords, destination, default_flow_style=False)
|
||||||
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
parser = argparse.ArgumentParser()
|
parser = argparse.ArgumentParser()
|
||||||
parser.add_argument("--old", help="old password file", required=True)
|
parser.add_argument("--old", help="old password file", required=True)
|
||||||
parser.add_argument("--new", help="new password file", required=True)
|
parser.add_argument("--new", help="new password file", required=True)
|
||||||
parser.add_argument("--final", help="merged password file", required=True)
|
parser.add_argument("--final", help="merged password file", required=True)
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
|
mergepwd(args.old, args.new, args.final)
|
||||||
with open(args.old, "r") as old_file:
|
|
||||||
old_passwords = yaml.safe_load(old_file)
|
|
||||||
|
|
||||||
with open(args.new, "r") as new_file:
|
|
||||||
new_passwords = yaml.safe_load(new_file)
|
|
||||||
|
|
||||||
new_passwords.update(old_passwords)
|
|
||||||
|
|
||||||
with open(args.final, "w") as destination:
|
|
||||||
yaml.safe_dump(new_passwords, destination, default_flow_style=False)
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
|
|||||||
Reference in New Issue
Block a user