24 lines
831 B
Python
24 lines
831 B
Python
#!/usr/bin/env python3
|
|
"""launch_vpn.py — auth = static+TOTP, конкатенация без разделителя."""
|
|
import subprocess, pyotp, keyring, tempfile, os
|
|
|
|
USERNAME = "boyko_vn"
|
|
OVPN_CONFIG = r"C:\Users\User\app\vpn\ovpn-config-ano.ovpn"
|
|
OPENVPN_BIN = r"C:\Program Files\OpenVPN\bin\openvpn.exe"
|
|
|
|
def main():
|
|
secret = keyring.get_password("openvpn-totp", "secret")
|
|
static = keyring.get_password("openvpn-totp", "static")
|
|
code = pyotp.TOTP(secret).now()
|
|
fd, path = tempfile.mkstemp(suffix=".txt")
|
|
try:
|
|
with os.fdopen(fd, "w", newline="\n") as f:
|
|
f.write(f"{USERNAME}\n{static}{code}\n")
|
|
subprocess.run([OPENVPN_BIN, "--config", OVPN_CONFIG,
|
|
"--auth-user-pass", path])
|
|
finally:
|
|
os.remove(path)
|
|
|
|
if __name__ == "__main__":
|
|
main()
|