summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--README.md16
-rw-r--r--docs/architecture.md47
-rw-r--r--docs/security.md30
3 files changed, 91 insertions, 2 deletions
diff --git a/README.md b/README.md
index 9d79961df6..e5086d5a9e 100644
--- a/README.md
+++ b/README.md
@@ -4,14 +4,26 @@ The system service/daemon, GUI and CLI for the Mullvad VPN app.
## Releases
-There are built and signed releases for macOS, Windows and Linux available on
+There are built and signed releases for macOS, Windows, Linux and Android available on
[our website](https://mullvad.net/download/) and on
[Github](https://github.com/mullvad/mullvadvpn-app/releases/).
-Support for Android and iOS is in the making.
+Support for iOS is in the making.
You can find our code signing keys as well as instructions for how to cryptographically verify
your download on [Mullvad's Open Source page].
+## Features
+
+Here is a table containing the features of the app accross platforms. This reflects the current
+state of latest master, not necessarily any existing release.
+
+| | Windows | Linux | macOS | Android |
+|-------------------------------|:-------:|:-----:|:-----:|:-------:|
+| OpenVPN | ✓ | ✓ | ✓ | |
+| WireGuard | | ✓ | ✓ | ✓ |
+| OpenVPN over Shadowsocks | ✓ | ✓ | ✓ | |
+| Optional local network access | ✓ | ✓ | ✓ | |
+
## Checking out the code
This repository contains submodules needed for building the app. However, some of those submodules
diff --git a/docs/architecture.md b/docs/architecture.md
new file mode 100644
index 0000000000..f87c18fb33
--- /dev/null
+++ b/docs/architecture.md
@@ -0,0 +1,47 @@
+# Mullvad VPN app architecture
+
+This document describes the code architecture and how everything fits together.
+
+For security and anonymity properties, please see [security](security.md).
+
+## Mullvad vs talpid
+
+Explain the differences between these layers and why the distinction exists.
+My thought was that after this section every aspect of the app is explained
+under either the Mullvad or the Talpid header. So it's clear which part they
+belong to. I yet don't know if this makes sense though.
+
+
+## Mullvad part of daemon
+
+### Frontend <-> system service communication
+
+### Talking to api.mullvad.net
+
+### Selecting relay and bridge servers
+
+### Problem reports
+
+
+## Talpid part of daemon
+
+### Tunnel state machine
+
+### System DNS management
+
+### Firewall integration
+
+### Detecting device offline
+
+### OpenVPN plugin and communication back to system service
+
+
+## Frontends
+
+### Desktop Electron app
+
+### Android
+
+### iOS
+
+### CLI
diff --git a/docs/security.md b/docs/security.md
new file mode 100644
index 0000000000..af2d8f5f3d
--- /dev/null
+++ b/docs/security.md
@@ -0,0 +1,30 @@
+# Mullvad VPN app security
+
+This document describes the security properties of the Mullvad VPN app. It describes it for all
+platforms and their differences.
+
+This document does not describe *how* we reach and uphold these properties, just what they are.
+See the [architecture](architecture.md) document for details on how this security is implemented.
+
+
+## App states
+
+### Disconnected
+
+### Connecting
+
+### Connected
+
+### Disconnecting
+
+### Blocked
+
+
+## Firewall
+
+The states above should probably explain what can and can't be reached in the different states.
+But we might need/want this section in case there is something that does not fit above.
+
+## DNS
+
+Where are DNS requests sent?