mitmproxy/test/wg-test-client/LICENSE
Fabio Valentini 2d495c093c
add transparent server mode based on WireGuard (#5562)
* add mode spec for WireGuard mode

* add WireGuard server implementation

* remove coverage excludes

* simplify wireguard spec

* lint!

* remove superfluous tests

* bump to mitmproxy_wireguard 0.1.1

* proxy/test_mode_specs: remove unused import

* fix wireguard server mode

* WireGuard: move keyfile gen into `.start()`

This way any file format errors result in `.last_exception` being set.

* fixup UDP support

* bump to mitmproxy_wireguard v0.1.2

This release fixes TCP connections which were broken in v0.1.1.

* fix crash handler

* add simple test for WireGuard server instances

* bump to mitmproxy_wireguard v0.1.5 and fix launching wg-test-client

* fixups

 - monkeypatch `handle_client` instead of the handlers.
 - fix OS detection
 - ctx.log -> logging

* nits

* bump to mitmproxy_wireguard 0.1.6 for fixed test client

* move WireGuardDatagramTransport into dedicated module

this allows us to exclude it from individual coverage, which makes no sense.
Also improve type checking to make sure that it's a full replacement.

* cover WireGuardServerInstance.is_running property with tests

* enable specialized server instance creation

* test wireguard conf generation

* deduplicate tcp/udp handlers

* update CHANGELOG

Co-authored-by: Maximilian Hils <git@maximilianhils.com>
2022-09-18 17:15:15 +02:00

90 lines
3.5 KiB
Plaintext

The mitmproxy_wireguard test client is available under the same license (MIT)
as the mitmproxy_wireguard Python package and mitmproxy itself:
--------------------------------------------------------------------------------
Copyright (c) 2022, Fabio Valentini and Maximilian Hils
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
--------------------------------------------------------------------------------
The test client also contains code from third-party Rust crates, which are
available under the following licenses:
aead v0.5.1: MIT OR Apache-2.0
anyhow v1.0.65: MIT OR Apache-2.0
base64 v0.13.0: MIT/Apache-2.0
bitflags v1.3.2: MIT/Apache-2.0
blake2 v0.10.4: MIT OR Apache-2.0
block-buffer v0.10.3: MIT OR Apache-2.0
boringtun v0.5.2: BSD-3-Clause
byteorder v1.4.3: Unlicense OR MIT
cfg-if v1.0.0: MIT/Apache-2.0
chacha20poly1305 v0.10.1: Apache-2.0 OR MIT
chacha20 v0.9.0: Apache-2.0 OR MIT
cipher v0.4.3: MIT OR Apache-2.0
cpufeatures v0.2.5: MIT OR Apache-2.0
crypto-common v0.1.6: MIT OR Apache-2.0
curve25519-dalek v3.2.0: BSD-3-Clause
digest v0.10.5: MIT OR Apache-2.0
digest v0.9.0: MIT OR Apache-2.0
generic-array v0.14.6: MIT
getrandom v0.1.16: MIT OR Apache-2.0
getrandom v0.2.7: MIT OR Apache-2.0
hex v0.4.3: MIT OR Apache-2.0
hmac v0.12.1: MIT OR Apache-2.0
inout v0.1.3: MIT OR Apache-2.0
ip_network_table-deps-treebitmap v0.5.0: MIT
ip_network_table v0.2.0: BSD-2-Clause
ip_network v0.4.1: BSD-2-Clause
libc v0.2.132: MIT OR Apache-2.0
lock_api v0.4.8: MIT OR Apache-2.0
log v0.4.17: MIT OR Apache-2.0
managed v0.8.0: 0BSD
once_cell v1.14.0: MIT OR Apache-2.0
opaque-debug v0.3.0: MIT OR Apache-2.0
parking_lot_core v0.9.3: MIT OR Apache-2.0
parking_lot v0.12.1: MIT OR Apache-2.0
pin-project-lite v0.2.9: Apache-2.0 OR MIT
poly1305 v0.8.0: Apache-2.0 OR MIT
rand_core v0.5.1: MIT OR Apache-2.0
rand_core v0.6.4: MIT OR Apache-2.0
ring v0.16.20:
scopeguard v1.1.0: MIT/Apache-2.0
smallvec v1.9.0: MIT OR Apache-2.0
smoltcp v0.8.1: 0BSD
spin v0.5.2: MIT
subtle v2.4.1: BSD-3-Clause
tracing-core v0.1.29: MIT
tracing v0.1.36: MIT
typenum v1.15.0: MIT OR Apache-2.0
universal-hash v0.5.0: MIT OR Apache-2.0
untrusted v0.7.1: ISC
untrusted v0.9.0: ISC
x25519-dalek v2.0.0-pre.1: BSD-3-Clause
zeroize v1.5.7: Apache-2.0 OR MIT
--------------------------------------------------------------------------------
This list of third-party crates and their licenses was collected for v0.1.6 of
the test client by running this command:
$ cargo tree --prefix none --edges no-build,no-dev,no-proc-macro --format "{p}: {l}" --no-dedupe | sort -u