~gema/+junk/tenant-manager

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#!/usr/bin/env python
import base64
import argparse

from Crypto import Random
from Crypto.Protocol.KDF import PBKDF2

# dd if=/dev/random of=password.key bs=64 count=1
with open('password.key', 'r') as f:
    password_salt = f.read()

def password_random(length):
    random_bytes = Random.new().read(length)
    return base64.b64encode(random_bytes)

def tenant_password(tenant_name, salt_key):
    # dd if=/dev/random of=password.key bs=64 count=1
    with open(salt_key, 'r') as f:
        password_salt = f.read()
    return base64.b64encode(PBKDF2(tenant_name, password_salt, 18))

if __name__ == '__main__':
    parser = argparse.ArgumentParser()
    parser.add_argument("tenant_name", help="Provide tenant name")
    parser.add_argument("salt_file", help="Provide filename for salt.", default="password.key")

    args = parser.parse_args()
    print tenant_password(args.tenant_name, args.salt_file)