BoringTun is an implementation of the WireGuard protocol designed for

portability and speed.

The project consists of two parts:

* The executable boringtun, a userspace WireGuard implementation for
  Linux and macOS.
* The library boringtun that can be used to implement fast and efficient
  WireGuard client apps on various platforms, including iOS and Android.
  It implements the underlying WireGuard protocol, without the network
  or tunnel stacks, those can be implemented in a platform idiomatic way.

NOTE: This crate is still undergoing review for security concerns.
Therefore, we recommend that you take caution before using it in a
production application.

WWW: https://github.com/cloudflare/boringtun
This commit is contained in:
Bernhard Froehlich 2019-03-29 12:40:41 +00:00
parent 5b5493b8c0
commit 8141bcb894
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=497112
5 changed files with 186 additions and 0 deletions

View file

@ -62,6 +62,7 @@
SUBDIR += boclient
SUBDIR += boinc-client
SUBDIR += boinc_curses
SUBDIR += boringtun
SUBDIR += bosh-bootloader
SUBDIR += bosh-cli
SUBDIR += bounce

73
net/boringtun/Makefile Normal file
View file

@ -0,0 +1,73 @@
# $FreeBSD$
PORTNAME= boringtun
DISTVERSIONPREFIX= v
DISTVERSION= 0.2.0
CATEGORIES= net
PATCH_SITES= https://github.com/${GH_ACCOUNT}/${GH_PROJECT}/commit/
PATCHFILES= b10df0ef427cea425f6eeedb372da372055de308.patch:-p1
MAINTAINER= decke@bluelife.at
COMMENT= Userspace WireGuard implementation in Rust
LICENSE= BSD3CLAUSE
LICENSE_FILE= ${WRKSRC}/LICENSE.md
RUN_DEPENDS= wg-quick:net/wireguard
USES= cargo
USE_GITHUB= yes
GH_ACCOUNT= cloudflare
CARGO_CRATES= ascii-0.9.1 \
autocfg-0.1.2 \
backtrace-0.3.14 \
backtrace-sys-0.1.28 \
base64-0.9.3 \
bitflags-1.0.4 \
boxfnonce-0.1.1 \
byteorder-1.3.1 \
cc-1.0.30 \
cesu8-1.1.0 \
cfg-if-0.1.7 \
chrono-0.4.6 \
clap-2.32.0 \
combine-3.6.7 \
daemonize-0.4.1 \
either-1.5.1 \
error-chain-0.12.0 \
hex-0.3.2 \
jni-0.10.2 \
jni-sys-0.3.0 \
lazy_static-1.3.0 \
libc-0.2.50 \
log-0.4.6 \
memchr-2.2.0 \
num-integer-0.1.39 \
num-traits-0.2.6 \
redox_syscall-0.1.51 \
ring-0.14.6 \
rustc-demangle-0.1.13 \
safemem-0.3.0 \
same-file-1.0.4 \
spin-0.5.0 \
strsim-0.7.0 \
textwrap-0.10.0 \
time-0.1.42 \
unicode-width-0.1.5 \
unreachable-1.0.0 \
untrusted-0.6.2 \
void-1.0.2 \
walkdir-2.2.7 \
winapi-0.3.6 \
winapi-i686-pc-windows-gnu-0.4.0 \
winapi-util-0.1.2 \
winapi-x86_64-pc-windows-gnu-0.4.0
PLIST_FILES= bin/${PORTNAME}
post-patch:
${MV} ${WRKSRC}/src/device/tun_darwin.rs ${WRKSRC}/src/device/tun_bsd.rs
.include <bsd.port.mk>

93
net/boringtun/distinfo Normal file
View file

@ -0,0 +1,93 @@
TIMESTAMP = 1553851149
SHA256 (rust/crates/ascii-0.9.1.tar.gz) = a5fc969a8ce2c9c0c4b0429bb8431544f6658283c8326ba5ff8c762b75369335
SIZE (rust/crates/ascii-0.9.1.tar.gz) = 25317
SHA256 (rust/crates/autocfg-0.1.2.tar.gz) = a6d640bee2da49f60a4068a7fae53acde8982514ab7bae8b8cea9e88cbcfd799
SIZE (rust/crates/autocfg-0.1.2.tar.gz) = 10444
SHA256 (rust/crates/backtrace-0.3.14.tar.gz) = cd5a90e2b463010cd0e0ce9a11d4a9d5d58d9f41d4a6ba3dcaf9e68b466e88b4
SIZE (rust/crates/backtrace-0.3.14.tar.gz) = 33452
SHA256 (rust/crates/backtrace-sys-0.1.28.tar.gz) = 797c830ac25ccc92a7f8a7b9862bde440715531514594a6154e3d4a54dd769b6
SIZE (rust/crates/backtrace-sys-0.1.28.tar.gz) = 522603
SHA256 (rust/crates/base64-0.9.3.tar.gz) = 489d6c0ed21b11d038c31b6ceccca973e65d73ba3bd8ecb9a2babf5546164643
SIZE (rust/crates/base64-0.9.3.tar.gz) = 37993
SHA256 (rust/crates/bitflags-1.0.4.tar.gz) = 228047a76f468627ca71776ecdebd732a3423081fcf5125585bcd7c49886ce12
SIZE (rust/crates/bitflags-1.0.4.tar.gz) = 15282
SHA256 (rust/crates/boxfnonce-0.1.1.tar.gz) = 5988cb1d626264ac94100be357308f29ff7cbdd3b36bda27f450a4ee3f713426
SIZE (rust/crates/boxfnonce-0.1.1.tar.gz) = 9698
SHA256 (rust/crates/byteorder-1.3.1.tar.gz) = a019b10a2a7cdeb292db131fc8113e57ea2a908f6e7894b0c3c671893b65dbeb
SIZE (rust/crates/byteorder-1.3.1.tar.gz) = 20959
SHA256 (rust/crates/cc-1.0.30.tar.gz) = d01c69d08ff207f231f07196e30f84c70f1c815b04f980f8b7b01ff01f05eb92
SIZE (rust/crates/cc-1.0.30.tar.gz) = 43009
SHA256 (rust/crates/cesu8-1.1.0.tar.gz) = 6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c
SIZE (rust/crates/cesu8-1.1.0.tar.gz) = 10555
SHA256 (rust/crates/cfg-if-0.1.7.tar.gz) = 11d43355396e872eefb45ce6342e4374ed7bc2b3a502d1b28e36d6e23c05d1f4
SIZE (rust/crates/cfg-if-0.1.7.tar.gz) = 7360
SHA256 (rust/crates/chrono-0.4.6.tar.gz) = 45912881121cb26fad7c38c17ba7daa18764771836b34fab7d3fbd93ed633878
SIZE (rust/crates/chrono-0.4.6.tar.gz) = 133108
SHA256 (rust/crates/clap-2.32.0.tar.gz) = b957d88f4b6a63b9d70d5f454ac8011819c6efa7727858f458ab71c756ce2d3e
SIZE (rust/crates/clap-2.32.0.tar.gz) = 196073
SHA256 (rust/crates/combine-3.6.7.tar.gz) = d2623b3542b48f4427e15ddd4995186decb594ebbd70271463886584b4a114b9
SIZE (rust/crates/combine-3.6.7.tar.gz) = 102847
SHA256 (rust/crates/daemonize-0.4.1.tar.gz) = 70c24513e34f53b640819f0ac9f705b673fcf4006d7aab8778bee72ebfc89815
SIZE (rust/crates/daemonize-0.4.1.tar.gz) = 14494
SHA256 (rust/crates/either-1.5.1.tar.gz) = c67353c641dc847124ea1902d69bd753dee9bb3beff9aa3662ecf86c971d1fac
SIZE (rust/crates/either-1.5.1.tar.gz) = 11532
SHA256 (rust/crates/error-chain-0.12.0.tar.gz) = 07e791d3be96241c77c43846b665ef1384606da2cd2a48730abe606a12906e02
SIZE (rust/crates/error-chain-0.12.0.tar.gz) = 27056
SHA256 (rust/crates/hex-0.3.2.tar.gz) = 805026a5d0141ffc30abb3be3173848ad46a1b1664fe632428479619a3644d77
SIZE (rust/crates/hex-0.3.2.tar.gz) = 9053
SHA256 (rust/crates/jni-0.10.2.tar.gz) = 1ecfa3b81afc64d9a6539c4eece96ac9a93c551c713a313800dade8e33d7b5c1
SIZE (rust/crates/jni-0.10.2.tar.gz) = 43630
SHA256 (rust/crates/jni-sys-0.3.0.tar.gz) = 8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130
SIZE (rust/crates/jni-sys-0.3.0.tar.gz) = 10232
SHA256 (rust/crates/lazy_static-1.3.0.tar.gz) = bc5729f27f159ddd61f4df6228e827e86643d4d3e7c32183cb30a1c08f604a14
SIZE (rust/crates/lazy_static-1.3.0.tar.gz) = 10616
SHA256 (rust/crates/libc-0.2.50.tar.gz) = aab692d7759f5cd8c859e169db98ae5b52c924add2af5fbbca11d12fefb567c1
SIZE (rust/crates/libc-0.2.50.tar.gz) = 392277
SHA256 (rust/crates/log-0.4.6.tar.gz) = c84ec4b527950aa83a329754b01dbe3f58361d1c5efacd1f6d68c494d08a17c6
SIZE (rust/crates/log-0.4.6.tar.gz) = 22303
SHA256 (rust/crates/memchr-2.2.0.tar.gz) = 2efc7bc57c883d4a4d6e3246905283d8dae951bb3bd32f49d6ef297f546e1c39
SIZE (rust/crates/memchr-2.2.0.tar.gz) = 20939
SHA256 (rust/crates/num-integer-0.1.39.tar.gz) = e83d528d2677f0518c570baf2b7abdcf0cd2d248860b68507bdcb3e91d4c0cea
SIZE (rust/crates/num-integer-0.1.39.tar.gz) = 17881
SHA256 (rust/crates/num-traits-0.2.6.tar.gz) = 0b3a5d7cc97d6d30d8b9bc8fa19bf45349ffe46241e8816f50f62f6d6aaabee1
SIZE (rust/crates/num-traits-0.2.6.tar.gz) = 39923
SHA256 (rust/crates/redox_syscall-0.1.51.tar.gz) = 423e376fffca3dfa06c9e9790a9ccd282fafb3cc6e6397d01dbf64f9bacc6b85
SIZE (rust/crates/redox_syscall-0.1.51.tar.gz) = 15646
SHA256 (rust/crates/ring-0.14.6.tar.gz) = 426bc186e3e95cac1e4a4be125a4aca7e84c2d616ffc02244eef36e2a60a093c
SIZE (rust/crates/ring-0.14.6.tar.gz) = 5428922
SHA256 (rust/crates/rustc-demangle-0.1.13.tar.gz) = adacaae16d02b6ec37fdc7acfcddf365978de76d1983d3ee22afc260e1ca9619
SIZE (rust/crates/rustc-demangle-0.1.13.tar.gz) = 11726
SHA256 (rust/crates/safemem-0.3.0.tar.gz) = 8dca453248a96cb0749e36ccdfe2b0b4e54a61bfef89fb97ec621eb8e0a93dd9
SIZE (rust/crates/safemem-0.3.0.tar.gz) = 6947
SHA256 (rust/crates/same-file-1.0.4.tar.gz) = 8f20c4be53a8a1ff4c1f1b2bd14570d2f634628709752f0702ecdd2b3f9a5267
SIZE (rust/crates/same-file-1.0.4.tar.gz) = 8678
SHA256 (rust/crates/spin-0.5.0.tar.gz) = 44363f6f51401c34e7be73db0db371c04705d35efbe9f7d6082e03a921a32c55
SIZE (rust/crates/spin-0.5.0.tar.gz) = 10493
SHA256 (rust/crates/strsim-0.7.0.tar.gz) = bb4f380125926a99e52bc279241539c018323fab05ad6368b56f93d9369ff550
SIZE (rust/crates/strsim-0.7.0.tar.gz) = 8435
SHA256 (rust/crates/textwrap-0.10.0.tar.gz) = 307686869c93e71f94da64286f9a9524c0f308a9e1c87a583de8e9c9039ad3f6
SIZE (rust/crates/textwrap-0.10.0.tar.gz) = 15986
SHA256 (rust/crates/time-0.1.42.tar.gz) = db8dcfca086c1143c9270ac42a2bbd8a7ee477b78ac8e45b19abfb0cbede4b6f
SIZE (rust/crates/time-0.1.42.tar.gz) = 30005
SHA256 (rust/crates/unicode-width-0.1.5.tar.gz) = 882386231c45df4700b275c7ff55b6f3698780a650026380e72dabe76fa46526
SIZE (rust/crates/unicode-width-0.1.5.tar.gz) = 15761
SHA256 (rust/crates/unreachable-1.0.0.tar.gz) = 382810877fe448991dfc7f0dd6e3ae5d58088fd0ea5e35189655f84e6814fa56
SIZE (rust/crates/unreachable-1.0.0.tar.gz) = 6355
SHA256 (rust/crates/untrusted-0.6.2.tar.gz) = 55cd1f4b4e96b46aeb8d4855db4a7a9bd96eeeb5c6a1ab54593328761642ce2f
SIZE (rust/crates/untrusted-0.6.2.tar.gz) = 7526
SHA256 (rust/crates/void-1.0.2.tar.gz) = 6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d
SIZE (rust/crates/void-1.0.2.tar.gz) = 2356
SHA256 (rust/crates/walkdir-2.2.7.tar.gz) = 9d9d7ed3431229a144296213105a390676cc49c9b6a72bd19f3176c98e129fa1
SIZE (rust/crates/walkdir-2.2.7.tar.gz) = 23507
SHA256 (rust/crates/winapi-0.3.6.tar.gz) = 92c1eb33641e276cfa214a0522acad57be5c56b10cb348b3c5117db75f3ac4b0
SIZE (rust/crates/winapi-0.3.6.tar.gz) = 1029391
SHA256 (rust/crates/winapi-i686-pc-windows-gnu-0.4.0.tar.gz) = ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6
SIZE (rust/crates/winapi-i686-pc-windows-gnu-0.4.0.tar.gz) = 2918815
SHA256 (rust/crates/winapi-util-0.1.2.tar.gz) = 7168bab6e1daee33b4557efd0e95d5ca70a03706d39fa5f3fe7a236f584b03c9
SIZE (rust/crates/winapi-util-0.1.2.tar.gz) = 7810
SHA256 (rust/crates/winapi-x86_64-pc-windows-gnu-0.4.0.tar.gz) = 712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f
SIZE (rust/crates/winapi-x86_64-pc-windows-gnu-0.4.0.tar.gz) = 2947998
SHA256 (cloudflare-boringtun-v0.2.0_GH0.tar.gz) = 544c72fc482b636e7f6460bfee205adafc55de534067819e4e4914980f0d1350
SIZE (cloudflare-boringtun-v0.2.0_GH0.tar.gz) = 411351
SHA256 (b10df0ef427cea425f6eeedb372da372055de308.patch) = 6285d529181398bfe0121acf50da2dd9999e4d174adfcf59d9ca09a2761849ee
SIZE (b10df0ef427cea425f6eeedb372da372055de308.patch) = 14603

17
net/boringtun/pkg-descr Normal file
View file

@ -0,0 +1,17 @@
BoringTun is an implementation of the WireGuard protocol designed for
portability and speed.
The project consists of two parts:
* The executable boringtun, a userspace WireGuard implementation for
Linux and macOS.
* The library boringtun that can be used to implement fast and efficient
WireGuard client apps on various platforms, including iOS and Android.
It implements the underlying WireGuard protocol, without the network
or tunnel stacks, those can be implemented in a platform idiomatic way.
NOTE: This crate is still undergoing review for security concerns.
Therefore, we recommend that you take caution before using it in a
production application.
WWW: https://github.com/cloudflare/boringtun

View file

@ -0,0 +1,2 @@
To enable boringtun you need to add the following to /etc/rc.conf:
wireguard_impl="boringtun"