#!/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()