├── .gitignore ├── .gitlab-ci.yml ├── CODEOWNERS ├── LICENSE ├── Makefile ├── README.md ├── conn ├── bind_linux.go ├── bind_std.go ├── bind_std_tcp.go ├── bind_windows.go ├── bindtest │ └── bindtest.go ├── boundif_android.go ├── conn.go ├── default.go ├── mark_default.go ├── mark_unix.go ├── server_name_utils │ ├── consistent_hash.go │ ├── consistent_hash_test.go │ └── server_name_utils.go ├── tcp_tls_utils.go └── winrio │ └── rio_windows.go ├── device ├── allowedips.go ├── allowedips_rand_test.go ├── allowedips_test.go ├── bind_test.go ├── channels.go ├── constants.go ├── cookie.go ├── cookie_test.go ├── device.go ├── device_test.go ├── devicestate_string.go ├── endpoint_test.go ├── indextable.go ├── ip.go ├── kdf_test.go ├── keypair.go ├── logger.go ├── mobilequirks.go ├── noise-helpers.go ├── noise-protocol.go ├── noise-types.go ├── noise_test.go ├── peer.go ├── pools.go ├── pools_test.go ├── queueconstants_android.go ├── queueconstants_default.go ├── queueconstants_ios.go ├── queueconstants_windows.go ├── race_disabled_test.go ├── race_enabled_test.go ├── receive.go ├── send.go ├── statemanager.go ├── statemanager_test.go ├── sticky_default.go ├── sticky_linux.go ├── timers.go ├── tun.go └── uapi.go ├── format_test.go ├── go.mod ├── go.sum ├── ipc ├── namedpipe │ ├── file.go │ ├── namedpipe.go │ └── namedpipe_test.go ├── uapi_bsd.go ├── uapi_js.go ├── uapi_linux.go ├── uapi_unix.go └── uapi_windows.go ├── main.go ├── main_windows.go ├── ratelimiter ├── ratelimiter.go └── ratelimiter_test.go ├── replay ├── replay.go └── replay_test.go ├── rwcancel ├── rwcancel.go └── rwcancel_stub.go ├── tai64n ├── tai64n.go └── tai64n_test.go ├── tests └── netns.sh ├── tun ├── alignment_windows_test.go ├── netstack │ ├── examples │ │ ├── http_client.go │ │ ├── http_server.go │ │ └── ping_client.go │ └── tun.go ├── operateonfd.go ├── tun.go ├── tun_darwin.go ├── tun_freebsd.go ├── tun_linux.go ├── tun_openbsd.go ├── tun_windows.go └── tuntest │ └── tuntest.go └── version.go /.gitignore: -------------------------------------------------------------------------------- 1 | wireguard-go 2 | -------------------------------------------------------------------------------- /.gitlab-ci.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonVPN/wireguard-go/HEAD/.gitlab-ci.yml -------------------------------------------------------------------------------- /CODEOWNERS: -------------------------------------------------------------------------------- 1 | # ownership: loose 2 | * @ProtonVPN/groups/android-developers 3 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonVPN/wireguard-go/HEAD/LICENSE -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonVPN/wireguard-go/HEAD/Makefile -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonVPN/wireguard-go/HEAD/README.md -------------------------------------------------------------------------------- /conn/bind_linux.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonVPN/wireguard-go/HEAD/conn/bind_linux.go -------------------------------------------------------------------------------- /conn/bind_std.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonVPN/wireguard-go/HEAD/conn/bind_std.go -------------------------------------------------------------------------------- /conn/bind_std_tcp.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonVPN/wireguard-go/HEAD/conn/bind_std_tcp.go -------------------------------------------------------------------------------- /conn/bind_windows.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonVPN/wireguard-go/HEAD/conn/bind_windows.go -------------------------------------------------------------------------------- /conn/bindtest/bindtest.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonVPN/wireguard-go/HEAD/conn/bindtest/bindtest.go -------------------------------------------------------------------------------- /conn/boundif_android.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonVPN/wireguard-go/HEAD/conn/boundif_android.go -------------------------------------------------------------------------------- /conn/conn.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonVPN/wireguard-go/HEAD/conn/conn.go -------------------------------------------------------------------------------- /conn/default.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonVPN/wireguard-go/HEAD/conn/default.go -------------------------------------------------------------------------------- /conn/mark_default.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonVPN/wireguard-go/HEAD/conn/mark_default.go -------------------------------------------------------------------------------- /conn/mark_unix.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonVPN/wireguard-go/HEAD/conn/mark_unix.go -------------------------------------------------------------------------------- /conn/server_name_utils/consistent_hash.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonVPN/wireguard-go/HEAD/conn/server_name_utils/consistent_hash.go -------------------------------------------------------------------------------- /conn/server_name_utils/consistent_hash_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonVPN/wireguard-go/HEAD/conn/server_name_utils/consistent_hash_test.go -------------------------------------------------------------------------------- /conn/server_name_utils/server_name_utils.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonVPN/wireguard-go/HEAD/conn/server_name_utils/server_name_utils.go -------------------------------------------------------------------------------- /conn/tcp_tls_utils.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonVPN/wireguard-go/HEAD/conn/tcp_tls_utils.go -------------------------------------------------------------------------------- /conn/winrio/rio_windows.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonVPN/wireguard-go/HEAD/conn/winrio/rio_windows.go -------------------------------------------------------------------------------- /device/allowedips.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonVPN/wireguard-go/HEAD/device/allowedips.go -------------------------------------------------------------------------------- /device/allowedips_rand_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonVPN/wireguard-go/HEAD/device/allowedips_rand_test.go -------------------------------------------------------------------------------- /device/allowedips_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonVPN/wireguard-go/HEAD/device/allowedips_test.go -------------------------------------------------------------------------------- /device/bind_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonVPN/wireguard-go/HEAD/device/bind_test.go -------------------------------------------------------------------------------- /device/channels.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonVPN/wireguard-go/HEAD/device/channels.go -------------------------------------------------------------------------------- /device/constants.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonVPN/wireguard-go/HEAD/device/constants.go -------------------------------------------------------------------------------- /device/cookie.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonVPN/wireguard-go/HEAD/device/cookie.go -------------------------------------------------------------------------------- /device/cookie_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonVPN/wireguard-go/HEAD/device/cookie_test.go -------------------------------------------------------------------------------- /device/device.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonVPN/wireguard-go/HEAD/device/device.go -------------------------------------------------------------------------------- /device/device_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonVPN/wireguard-go/HEAD/device/device_test.go -------------------------------------------------------------------------------- /device/devicestate_string.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonVPN/wireguard-go/HEAD/device/devicestate_string.go -------------------------------------------------------------------------------- /device/endpoint_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonVPN/wireguard-go/HEAD/device/endpoint_test.go -------------------------------------------------------------------------------- /device/indextable.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonVPN/wireguard-go/HEAD/device/indextable.go -------------------------------------------------------------------------------- /device/ip.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonVPN/wireguard-go/HEAD/device/ip.go -------------------------------------------------------------------------------- /device/kdf_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonVPN/wireguard-go/HEAD/device/kdf_test.go -------------------------------------------------------------------------------- /device/keypair.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonVPN/wireguard-go/HEAD/device/keypair.go -------------------------------------------------------------------------------- /device/logger.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonVPN/wireguard-go/HEAD/device/logger.go -------------------------------------------------------------------------------- /device/mobilequirks.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonVPN/wireguard-go/HEAD/device/mobilequirks.go -------------------------------------------------------------------------------- /device/noise-helpers.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonVPN/wireguard-go/HEAD/device/noise-helpers.go -------------------------------------------------------------------------------- /device/noise-protocol.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonVPN/wireguard-go/HEAD/device/noise-protocol.go -------------------------------------------------------------------------------- /device/noise-types.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonVPN/wireguard-go/HEAD/device/noise-types.go -------------------------------------------------------------------------------- /device/noise_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonVPN/wireguard-go/HEAD/device/noise_test.go -------------------------------------------------------------------------------- /device/peer.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonVPN/wireguard-go/HEAD/device/peer.go -------------------------------------------------------------------------------- /device/pools.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonVPN/wireguard-go/HEAD/device/pools.go -------------------------------------------------------------------------------- /device/pools_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonVPN/wireguard-go/HEAD/device/pools_test.go -------------------------------------------------------------------------------- /device/queueconstants_android.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonVPN/wireguard-go/HEAD/device/queueconstants_android.go -------------------------------------------------------------------------------- /device/queueconstants_default.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonVPN/wireguard-go/HEAD/device/queueconstants_default.go -------------------------------------------------------------------------------- /device/queueconstants_ios.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonVPN/wireguard-go/HEAD/device/queueconstants_ios.go -------------------------------------------------------------------------------- /device/queueconstants_windows.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonVPN/wireguard-go/HEAD/device/queueconstants_windows.go -------------------------------------------------------------------------------- /device/race_disabled_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonVPN/wireguard-go/HEAD/device/race_disabled_test.go -------------------------------------------------------------------------------- /device/race_enabled_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonVPN/wireguard-go/HEAD/device/race_enabled_test.go -------------------------------------------------------------------------------- /device/receive.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonVPN/wireguard-go/HEAD/device/receive.go -------------------------------------------------------------------------------- /device/send.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonVPN/wireguard-go/HEAD/device/send.go -------------------------------------------------------------------------------- /device/statemanager.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonVPN/wireguard-go/HEAD/device/statemanager.go -------------------------------------------------------------------------------- /device/statemanager_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonVPN/wireguard-go/HEAD/device/statemanager_test.go -------------------------------------------------------------------------------- /device/sticky_default.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonVPN/wireguard-go/HEAD/device/sticky_default.go -------------------------------------------------------------------------------- /device/sticky_linux.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonVPN/wireguard-go/HEAD/device/sticky_linux.go -------------------------------------------------------------------------------- /device/timers.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonVPN/wireguard-go/HEAD/device/timers.go -------------------------------------------------------------------------------- /device/tun.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonVPN/wireguard-go/HEAD/device/tun.go -------------------------------------------------------------------------------- /device/uapi.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonVPN/wireguard-go/HEAD/device/uapi.go -------------------------------------------------------------------------------- /format_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonVPN/wireguard-go/HEAD/format_test.go -------------------------------------------------------------------------------- /go.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonVPN/wireguard-go/HEAD/go.mod -------------------------------------------------------------------------------- /go.sum: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonVPN/wireguard-go/HEAD/go.sum -------------------------------------------------------------------------------- /ipc/namedpipe/file.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonVPN/wireguard-go/HEAD/ipc/namedpipe/file.go -------------------------------------------------------------------------------- /ipc/namedpipe/namedpipe.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonVPN/wireguard-go/HEAD/ipc/namedpipe/namedpipe.go -------------------------------------------------------------------------------- /ipc/namedpipe/namedpipe_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonVPN/wireguard-go/HEAD/ipc/namedpipe/namedpipe_test.go -------------------------------------------------------------------------------- /ipc/uapi_bsd.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonVPN/wireguard-go/HEAD/ipc/uapi_bsd.go -------------------------------------------------------------------------------- /ipc/uapi_js.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonVPN/wireguard-go/HEAD/ipc/uapi_js.go -------------------------------------------------------------------------------- /ipc/uapi_linux.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonVPN/wireguard-go/HEAD/ipc/uapi_linux.go -------------------------------------------------------------------------------- /ipc/uapi_unix.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonVPN/wireguard-go/HEAD/ipc/uapi_unix.go -------------------------------------------------------------------------------- /ipc/uapi_windows.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonVPN/wireguard-go/HEAD/ipc/uapi_windows.go -------------------------------------------------------------------------------- /main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonVPN/wireguard-go/HEAD/main.go -------------------------------------------------------------------------------- /main_windows.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonVPN/wireguard-go/HEAD/main_windows.go -------------------------------------------------------------------------------- /ratelimiter/ratelimiter.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonVPN/wireguard-go/HEAD/ratelimiter/ratelimiter.go -------------------------------------------------------------------------------- /ratelimiter/ratelimiter_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonVPN/wireguard-go/HEAD/ratelimiter/ratelimiter_test.go -------------------------------------------------------------------------------- /replay/replay.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonVPN/wireguard-go/HEAD/replay/replay.go -------------------------------------------------------------------------------- /replay/replay_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonVPN/wireguard-go/HEAD/replay/replay_test.go -------------------------------------------------------------------------------- /rwcancel/rwcancel.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonVPN/wireguard-go/HEAD/rwcancel/rwcancel.go -------------------------------------------------------------------------------- /rwcancel/rwcancel_stub.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonVPN/wireguard-go/HEAD/rwcancel/rwcancel_stub.go -------------------------------------------------------------------------------- /tai64n/tai64n.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonVPN/wireguard-go/HEAD/tai64n/tai64n.go -------------------------------------------------------------------------------- /tai64n/tai64n_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonVPN/wireguard-go/HEAD/tai64n/tai64n_test.go -------------------------------------------------------------------------------- /tests/netns.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonVPN/wireguard-go/HEAD/tests/netns.sh -------------------------------------------------------------------------------- /tun/alignment_windows_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonVPN/wireguard-go/HEAD/tun/alignment_windows_test.go -------------------------------------------------------------------------------- /tun/netstack/examples/http_client.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonVPN/wireguard-go/HEAD/tun/netstack/examples/http_client.go -------------------------------------------------------------------------------- /tun/netstack/examples/http_server.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonVPN/wireguard-go/HEAD/tun/netstack/examples/http_server.go -------------------------------------------------------------------------------- /tun/netstack/examples/ping_client.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonVPN/wireguard-go/HEAD/tun/netstack/examples/ping_client.go -------------------------------------------------------------------------------- /tun/netstack/tun.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonVPN/wireguard-go/HEAD/tun/netstack/tun.go -------------------------------------------------------------------------------- /tun/operateonfd.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonVPN/wireguard-go/HEAD/tun/operateonfd.go -------------------------------------------------------------------------------- /tun/tun.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonVPN/wireguard-go/HEAD/tun/tun.go -------------------------------------------------------------------------------- /tun/tun_darwin.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonVPN/wireguard-go/HEAD/tun/tun_darwin.go -------------------------------------------------------------------------------- /tun/tun_freebsd.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonVPN/wireguard-go/HEAD/tun/tun_freebsd.go -------------------------------------------------------------------------------- /tun/tun_linux.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonVPN/wireguard-go/HEAD/tun/tun_linux.go -------------------------------------------------------------------------------- /tun/tun_openbsd.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonVPN/wireguard-go/HEAD/tun/tun_openbsd.go -------------------------------------------------------------------------------- /tun/tun_windows.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonVPN/wireguard-go/HEAD/tun/tun_windows.go -------------------------------------------------------------------------------- /tun/tuntest/tuntest.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonVPN/wireguard-go/HEAD/tun/tuntest/tuntest.go -------------------------------------------------------------------------------- /version.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | const Version = "0.0.20230223" 4 | --------------------------------------------------------------------------------