id = "tunnelblick" name = "Tunnelblick" homepage = "https://tunnelblick.net" description = "Free open source OpenVPN VPN client software for macOS." # The app icon, the favicon on tunnelblick.net. icon = "https://tunnelblick.net/common/favicon.v1.png" # Tunnelblick ships no command-line tool, so `detect` is the bundle identifier # — the one the Homebrew cask quits and whose launchd jobs it unloads # (`uninstall quit: "net.tunnelblick.tunnelblick"`, launchctl # net.tunnelblick.tunnelblick.LaunchAtLogin and .tunnelblickd). executables = [] platforms = ["macos"] [installation] macos_bundle_ids = ["net.tunnelblick.tunnelblick"] [dotfiles] # Tunnelblick's own File Locations page (https://tunnelblick.net/cFileLocations.html) # is the source for both halves. # # Preferences: "A user's Tunnelblick preferences are contained in # ~/Library/Preferences/net.tunnelblick.tunnelblick.plist." (The same page adds # that 3.2beta10 and earlier used com.openvpn.tunnelblick.plist; that spelling # is old enough not to be worth carrying.) # # Configuration Files: "Private configurations, including both types of files, # are stored in '~/Library/Application Support/Tunnelblick/Configurations'." # That is the credential half — see below. paths = ["[preferences]/net.tunnelblick.tunnelblick.plist"] exclude = [] # ~/Library/Application Support/Tunnelblick/Configurations is a VPN identity, # not a settings file. The same page's "Key and Certificate Files" section: # "Key and certificate files associated with a Tunnelblick VPN Configuration # (.tblk) are stored inside the configuration itself", with extensions ".cer, # .crt, .der, .key, .p12, .p7b, .p7c, .pem, or .pfx" — so each .tblk carries # the private key that authenticates this user to the VPN, and the .ovpn beside # it may carry an auth-user-pass file too. The whole directory is a credential # end to end, and it is where this application's configuration would otherwise # be. # # The shared, deployed and shadow copies the same page lists are all under # /Library or inside Tunnelblick.app, outside the user's home directory. secret = ["~/Library/Application Support/Tunnelblick/Configurations/"] # No machine_lines: the preferences file is a property list, which neither # prefix nor key_path matching can read.