15
by Gema Gomez
Separating password generation for deletion of tenant purposes |
1 |
#!/usr/bin/env python
|
2 |
import base64 |
|
3 |
import argparse |
|
4 |
||
5 |
from Crypto import Random |
|
6 |
from Crypto.Protocol.KDF import PBKDF2 |
|
7 |
||
8 |
# dd if=/dev/random of=password.key bs=64 count=1
|
|
9 |
with open('password.key', 'r') as f: |
|
10 |
password_salt = f.read() |
|
11 |
||
12 |
def password_random(length): |
|
13 |
random_bytes = Random.new().read(length) |
|
14 |
return base64.b64encode(random_bytes) |
|
15 |
||
16 |
def tenant_password(tenant_name, salt_key): |
|
17 |
# dd if=/dev/random of=password.key bs=64 count=1
|
|
18 |
with open(salt_key, 'r') as f: |
|
19 |
password_salt = f.read() |
|
20 |
return base64.b64encode(PBKDF2(tenant_name, password_salt, 18)) |
|
21 |
||
22 |
if __name__ == '__main__': |
|
23 |
parser = argparse.ArgumentParser() |
|
24 |
parser.add_argument("tenant_name", help="Provide tenant name") |
|
25 |
parser.add_argument("salt_file", help="Provide filename for salt.", default="password.key") |
|
26 |
||
27 |
args = parser.parse_args() |
|
28 |
print tenant_password(args.tenant_name, args.salt_file) |