-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathenv_vars.py
59 lines (49 loc) · 1.8 KB
/
env_vars.py
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
from ecdsa import SigningKey, NIST256p
from random import choice
from string import ascii_letters, digits
from io import open
from os import urandom
from base64 import urlsafe_b64encode
def get_random_str(size=32):
return ''.join(choice(ascii_letters + digits) for _ in range(size))
def main():
with open('volgactf-final-auth.env', 'w', encoding='utf-8') as f1:
master_pwd = get_random_str()
checker_pwd = get_random_str()
template1 = (
'VOLGACTF_FINAL_AUTH_MASTER_USERNAME={0}\n'
'VOLGACTF_FINAL_AUTH_MASTER_PASSWORD={1}\n'
'VOLGACTF_FINAL_AUTH_CHECKER_USERNAME={2}\n'
'VOLGACTF_FINAL_AUTH_CHECKER_PASSWORD={3}'
).format(
'master',
master_pwd,
'checker',
checker_pwd
)
f1.write(template1)
private_key = SigningKey.generate(curve=NIST256p)
public_key = private_key.get_verifying_key()
with open('volgactf-final-public.env', 'w', encoding='utf-8') as f2:
template2 = (
'VOLGACTF_FINAL_FLAG_SIGN_KEY_PUBLIC={0}\n'
'VOLGACTF_FINAL_FLAG_WRAP_PREFIX={1}\n'
'VOLGACTF_FINAL_FLAG_WRAP_SUFFIX={2}'
).format(
public_key.to_pem().decode('ascii').strip().replace('\n', '\\n'),
'VolgaCTF{',
'}'
)
f2.write(template2)
secret = urlsafe_b64encode(urandom(32)).decode('ascii')
with open('volgactf-final-private.env', 'w', encoding='utf-8') as f3:
template3 = (
'VOLGACTF_FINAL_FLAG_SIGN_KEY_PRIVATE={0}\n'
'VOLGACTF_FINAL_FLAG_GENERATOR_SECRET={1}'
).format(
private_key.to_pem().decode('ascii').strip().replace('\n', '\\n'),
secret
)
f3.write(template3)
if __name__ == '__main__':
main()