[SRU][PULL][F] merge upstream wireguard

Stefan Bader stefan.bader at canonical.com
Wed Dec 7 14:09:05 UTC 2022


On 06.12.22 11:57, Andrea Righi wrote:
> BugLink: https://bugs.launchpad.net/bugs/1998902
> 
> [Impact]
> 
> In older kernels, like focal, Wireguard used to be maintained as an
> external module (wireguard-dkms). This dkms is not maintained anymore,
> but upstream maintainer periodically provides backported patches for
> older kernels (like 5.4) in this git repository
> https://git.zx2c4.com/wireguard-linux.
> 
> In order to properly support Wireguard with all the recent security
> updates, fixes, etc. it would be more efficient for us to apply the
> backported patch set officially provided by the upstream maintainer,
> instead of maintaining these changes in a separate dkms.
> 
> [Test case]
> 
> We need to figure out a proper test case to verify that wireguard is
> applied and it's working correctly.
> 
> Right now the best option is to verify the availability of the
> wireguard.ko module and run the kernel selftests in
> tools/testing/selftests/wireguard/ (specifically
> ./tools/testing/selftests/wireguard/netns.sh - we can just run it
> directly, but it requires iperf3 and ncat installed and a
> `modprobe nf_conntrack` before starting the test).
> 
> [Fix]
> 
> Apply the backported wireguard patch set provided by the upstream
> maintainer as UBUNTU SAUCE patches (patch set available in
> https://git.zx2c4.com/wireguard-linux branch backport-5.4.y).

Not really liking that much. Mostly the part of changes which modify crypto and 
the one or two places that change networking code in general. Not looked closer 
but it feels like replacing an unmaintainable driver with an unmaintainable 
kernel which has to be supported at least another 8y.
There probably is also the question how this works out for fips (since that has 
a kind of lockdown for crypto).
This will also introduce a huge amount of change which is not covered by 
upstream stable. At least things should be separated into its own directory 
subdomain.
But generally, this seems to become a burden to maintain either way. In which 
case I would more tend to maintain what is already there and settled to be working.

-Stefan

> 
> [Where things could go wrong]
> 
> We don't have a precise plan to keep the wireguard patches updated after
> some SRU patches are applied to our kernel. A quick and dirty solution
> could be to revert the wireguard patch set entirely, apply the SRU
> patches, then re-apply the latest wireguard patch set on top. But we
> probably need to figure out a better workflow.
> 
> Also this patch set is probably going to conflict with wireguard-dkms,
> but that is the whole point, we want to deprecate this dkms and merge
> wireguard into our kernel directly.
> 
> ---
> 
> The following changes since commit b3f6cc8080a4bb1693c308f0586edc8de13d8ecf:
> 
>    UBUNTU: Upstream stable to v5.4.222 (2022-11-28 15:25:46 +0100)
> 
> are available in the Git repository at:
> 
>    git://git.launchpad.net/~arighi/+git/focal wireguard-backport
> 
> for you to fetch changes up to 3cf8b3b59573a62263302f1b3196829c54661c91:
> 
>    UBUNTU: [Packaging] drop wireguard dkms (2022-12-06 11:54:12 +0100)
> 
> ----------------------------------------------------------------
> Andrea Righi (2):
>        UBUNTU: [Config] enable wireguard
>        UBUNTU: [Packaging] drop wireguard dkms
> 
> Antonio Quartulli (1):
>        UBUNTU: SAUCE: wireguard: avoid double unlikely() notation when using IS_ERR()
> 
> Ard Biesheuvel (29):
>        UBUNTU: SAUCE: crypto: lib - tidy up lib/crypto Kconfig and Makefile
>        UBUNTU: SAUCE: crypto: chacha - move existing library code into lib/crypto
>        UBUNTU: SAUCE: crypto: x86/chacha - depend on generic chacha library instead of crypto driver
>        UBUNTU: SAUCE: crypto: x86/chacha - expose SIMD ChaCha routine as library function
>        UBUNTU: SAUCE: crypto: arm64/chacha - depend on generic chacha library instead of crypto driver
>        UBUNTU: SAUCE: crypto: arm64/chacha - expose arm64 ChaCha routine as library function
>        UBUNTU: SAUCE: crypto: arm/chacha - import Eric Biggers's scalar accelerated ChaCha code
>        UBUNTU: SAUCE: crypto: arm/chacha - remove dependency on generic ChaCha driver
>        UBUNTU: SAUCE: crypto: arm/chacha - expose ARM ChaCha routine as library function
>        UBUNTU: SAUCE: crypto: mips/chacha - wire up accelerated 32r2 code from Zinc
>        UBUNTU: SAUCE: crypto: chacha - unexport chacha_generic routines
>        UBUNTU: SAUCE: crypto: poly1305 - move core routines into a separate library
>        UBUNTU: SAUCE: crypto: x86/poly1305 - unify Poly1305 state struct with generic code
>        UBUNTU: SAUCE: crypto: poly1305 - expose init/update/final library interface
>        UBUNTU: SAUCE: crypto: x86/poly1305 - depend on generic library not generic shash
>        UBUNTU: SAUCE: crypto: x86/poly1305 - expose existing driver as poly1305 library
>        UBUNTU: SAUCE: crypto: arm64/poly1305 - incorporate OpenSSL/CRYPTOGAMS NEON implementation
>        UBUNTU: SAUCE: crypto: arm/poly1305 - incorporate OpenSSL/CRYPTOGAMS NEON implementation
>        UBUNTU: SAUCE: crypto: mips/poly1305 - incorporate OpenSSL/CRYPTOGAMS optimized implementation
>        UBUNTU: SAUCE: crypto: curve25519 - add kpp selftest
>        UBUNTU: SAUCE: crypto: curve25519 - implement generic KPP driver
>        UBUNTU: SAUCE: crypto: lib/curve25519 - work around Clang stack spilling issue
>        UBUNTU: SAUCE: crypto: chacha20poly1305 - import construction and selftest from Zinc
>        UBUNTU: SAUCE: crypto: lib/chacha20poly1305 - reimplement crypt_from_sg() routine
>        UBUNTU: SAUCE: crypto: arm/chacha - fix build failured when kernel mode NEON is disabled
>        UBUNTU: SAUCE: crypto: x86/chacha-sse3 - use unaligned loads for state array
>        UBUNTU: SAUCE: crypto: arm/chacha-neon - optimize for non-block size multiples
>        UBUNTU: SAUCE: crypto: arm64/chacha - simplify tail block handling
>        UBUNTU: SAUCE: crypto: arm/chacha-neon - add missing counter increment
> 
> Arnd Bergmann (1):
>        UBUNTU: SAUCE: crypto: poly1305 - fix poly1305_core_setkey() declaration
> 
> Eric Biggers (4):
>        UBUNTU: SAUCE: crypto: chacha_generic - remove unnecessary setkey() functions
>        UBUNTU: SAUCE: crypto: x86/chacha - only unregister algorithms if registered
>        UBUNTU: SAUCE: crypto: lib/chacha20poly1305 - use chacha20_crypt()
>        UBUNTU: SAUCE: crypto: x86/poly1305 - add back a needed assignment
> 
> Eric Dumazet (1):
>        UBUNTU: SAUCE: wireguard: allowedips: fix use-after-free in root_remove_peer_lists
> 
> Fabio Estevam (1):
>        UBUNTU: SAUCE: crypto: arm/curve25519 - include <linux/scatterlist.h>
> 
> Frank Werner-Krippendorf (1):
>        UBUNTU: SAUCE: wireguard: noise: do not assign initiation time in if condition
> 
> Gustavo A. R. Silva (1):
>        UBUNTU: SAUCE: wireguard: ratelimiter: use kvcalloc() instead of kvzalloc()
> 
> Hangbin Liu (1):
>        UBUNTU: SAUCE: crypto: x86/curve25519 - fix cpu feature checking logic in mod_exit
> 
> Herbert Xu (5):
>        UBUNTU: SAUCE: crypto: curve25519 - Fix selftest build error
>        UBUNTU: SAUCE: crypto: lib/chacha20poly1305 - Add missing function declaration
>        UBUNTU: SAUCE: crypto: x86/curve25519 - Remove unused carry variables
>        UBUNTU: SAUCE: crypto: arm/poly1305 - Add prototype for poly1305_blocks_neon
>        UBUNTU: SAUCE: crypto: x86/poly1305 - Remove assignments with no effect
> 
> Ilya Lipnitskiy (1):
>        UBUNTU: SAUCE: crypto: mips: add poly1305-core.S to .gitignore
> 
> Jann Horn (1):
>        UBUNTU: SAUCE: wireguard: socket: remove bogus __be32 annotation
> 
> Jason A. Donenfeld (94):
>        UBUNTU: SAUCE: crypto: mips/chacha - import 32r2 ChaCha code from Zinc
>        UBUNTU: SAUCE: crypto: curve25519 - generic C library implementations
>        UBUNTU: SAUCE: crypto: curve25519 - x86_64 library and KPP implementations
>        UBUNTU: SAUCE: crypto: arm/curve25519 - import Bernstein and Schwabe's Curve25519 ARM implementation
>        UBUNTU: SAUCE: crypto: arm/curve25519 - wire up NEON implementation
>        UBUNTU: SAUCE: crypto: arch - conditionalize crypto api in arch glue for lib code
>        UBUNTU: SAUCE: crypto: arm/curve25519 - add arch-specific key generation function
>        UBUNTU: SAUCE: crypto: lib/curve25519 - re-add selftests
>        UBUNTU: SAUCE: crypto: poly1305 - add new 32 and 64-bit generic versions
>        UBUNTU: SAUCE: crypto: x86/poly1305 - import unmodified cryptogams implementation
>        UBUNTU: SAUCE: crypto: x86/poly1305 - wire up faster implementations for kernel
>        UBUNTU: SAUCE: crypto: {arm,arm64,mips}/poly1305 - remove redundant non-reduction from emit
>        UBUNTU: SAUCE: crypto: x86/poly1305 - fix .gitignore typo
>        UBUNTU: SAUCE: crypto: chacha20poly1305 - add back missing test vectors and test chunking
>        UBUNTU: SAUCE: crypto: x86/poly1305 - emit does base conversion itself
>        UBUNTU: SAUCE: crypto: Kconfig - allow tests to be disabled when manager is disabled
>        UBUNTU: SAUCE: crypto: chacha20poly1305 - prevent integer overflow on large input
>        UBUNTU: SAUCE: crypto: x86/curve25519 - support assemblers with no adx support
>        UBUNTU: SAUCE: crypto: arm64/chacha - correctly walk through blocks
>        UBUNTU: SAUCE: crypto: x86/curve25519 - replace with formally verified implementation
>        UBUNTU: SAUCE: crypto: x86/curve25519 - leave r12 as spare register
>        UBUNTU: SAUCE: crypto: arm[64]/poly1305 - add artifact to .gitignore files
>        UBUNTU: SAUCE: crypto: arch/lib - limit simd usage to 4k chunks
>        UBUNTU: SAUCE: crypto: Kconfig - CRYPTO_MANAGER_EXTRA_TESTS requires the manager
>        UBUNTU: SAUCE: crypto: lib/chacha20poly1305 - define empty module exit function
>        UBUNTU: SAUCE: net: WireGuard secure network tunnel
>        UBUNTU: SAUCE: wireguard: selftests: import harness makefile for test suite
>        UBUNTU: SAUCE: wireguard: Kconfig: select parent dependency for crypto
>        UBUNTU: SAUCE: wireguard: selftests: remove ancient kernel compatibility code
>        UBUNTU: SAUCE: wireguard: queueing: do not account for pfmemalloc when clearing skb header
>        UBUNTU: SAUCE: wireguard: socket: mark skbs as not on list when receiving via gro
>        UBUNTU: SAUCE: wireguard: noise: reject peers with low order public keys
>        UBUNTU: SAUCE: wireguard: selftests: ensure non-addition of peers with failed precomputation
>        UBUNTU: SAUCE: wireguard: selftests: tie socket waiting to target pid
>        UBUNTU: SAUCE: wireguard: device: use icmp_ndo_send helper
>        UBUNTU: SAUCE: wireguard: selftests: reduce complexity and fix make races
>        UBUNTU: SAUCE: wireguard: receive: reset last_under_load to zero
>        UBUNTU: SAUCE: wireguard: send: account for mtu=0 devices
>        UBUNTU: SAUCE: wireguard: socket: remove extra call to synchronize_net
>        UBUNTU: SAUCE: wireguard: queueing: account for skb->protocol==0
>        UBUNTU: SAUCE: wireguard: receive: remove dead code from default packet type case
>        UBUNTU: SAUCE: wireguard: noise: error out precomputed DH during handshake rather than config
>        UBUNTU: SAUCE: wireguard: queueing: cleanup ptr_ring in error path of packet_queue_init
>        UBUNTU: SAUCE: wireguard: selftests: use normal kernel stack size on ppc64
>        UBUNTU: SAUCE: wireguard: socket: remove errant restriction on looping to self
>        UBUNTU: SAUCE: wireguard: send/receive: cond_resched() when processing worker ringbuffers
>        UBUNTU: SAUCE: wireguard: selftests: initalize ipv6 members to NULL to squelch clang warning
>        UBUNTU: SAUCE: wireguard: send/receive: use explicit unlikely branch instead of implicit coalescing
>        UBUNTU: SAUCE: wireguard: selftests: use newer iproute2 for gcc-10
>        UBUNTU: SAUCE: wireguard: noise: read preshared key while taking lock
>        UBUNTU: SAUCE: wireguard: queueing: preserve flow hash across packet scrubbing
>        UBUNTU: SAUCE: wireguard: noise: separate receive counter from send counter
>        UBUNTU: SAUCE: wireguard: device: avoid circular netns references
>        UBUNTU: SAUCE: wireguard: receive: account for napi_gro_receive never returning GRO_DROP
>        UBUNTU: SAUCE: net: ip_tunnel: add header_ops for layer 3 devices
>        UBUNTU: SAUCE: wireguard: implement header_ops->parse_protocol for AF_PACKET
>        UBUNTU: SAUCE: wireguard: queueing: make use of ip_tunnel_parse_protocol
>        UBUNTU: SAUCE: wireguard: noise: take lock when removing handshake entry from table
>        UBUNTU: SAUCE: wireguard: peerlookup: take lock before checking hash in replace operation
>        UBUNTU: SAUCE: wireguard: selftests: check that route_me_harder packets use the right sk
>        UBUNTU: SAUCE: wireguard: selftests: test multiple parallel streams
>        UBUNTU: SAUCE: wireguard: peer: put frequently used members above cache lines
>        UBUNTU: SAUCE: wireguard: device: do not generate ICMP for non-IP packets
>        UBUNTU: SAUCE: wireguard: queueing: get rid of per-peer ring buffers
>        UBUNTU: SAUCE: wireguard: kconfig: use arm chacha even with no neon
>        UBUNTU: SAUCE: wireguard: selftests: remove old conntrack kconfig value
>        UBUNTU: SAUCE: wireguard: selftests: make sure rp_filter is disabled on vethc
>        UBUNTU: SAUCE: wireguard: do not use -O3
>        UBUNTU: SAUCE: wireguard: use synchronize_net rather than synchronize_rcu
>        UBUNTU: SAUCE: wireguard: peer: allocate in kmem_cache
>        UBUNTU: SAUCE: wireguard: allowedips: initialize list head in selftest
>        UBUNTU: SAUCE: wireguard: allowedips: remove nodes in O(1)
>        UBUNTU: SAUCE: wireguard: allowedips: allocate nodes in kmem_cache
>        UBUNTU: SAUCE: wireguard: allowedips: free empty intermediate nodes when removing single node
>        UBUNTU: SAUCE: wireguard: allowedips: add missing __rcu annotation to satisfy sparse
>        UBUNTU: SAUCE: wireguard: selftests: increase default dmesg log size
>        UBUNTU: SAUCE: wireguard: selftests: actually test for routing loops
>        UBUNTU: SAUCE: wireguard: device: reset peer src endpoint when netns exits
>        UBUNTU: SAUCE: wireguard: receive: use ring buffer for incoming handshakes
>        UBUNTU: SAUCE: wireguard: receive: drop handshakes if queue lock is contended
>        UBUNTU: SAUCE: crypto: x86/curve25519 - use in/out register constraints more precisely
>        UBUNTU: SAUCE: wireguard: queueing: use CFI-safe ptr_ring cleanup function
>        UBUNTU: SAUCE: wireguard: selftests: simplify RNG seeding
>        UBUNTU: SAUCE: wireguard: socket: ignore v6 endpoints when ipv6 is disabled
>        UBUNTU: SAUCE: wireguard: selftests: enable ACPI for SMP
>        UBUNTU: SAUCE: wireguard: selftests: make routing loop test non-fatal
>        UBUNTU: SAUCE: wireguard: selftests: limit parallelism to $(nproc) tests at once
>        UBUNTU: SAUCE: wireguard: selftests: use newer toolchains to fill out architectures
>        UBUNTU: SAUCE: wireguard: selftests: restore support for ccache
>        UBUNTU: SAUCE: wireguard: selftests: bump package deps
>        UBUNTU: SAUCE: wireguard: selftests: set panic_on_warn=1 from cmdline
>        UBUNTU: SAUCE: wireguard: selftests: set fake real time in init
>        UBUNTU: SAUCE: wireguard: selftests: always call kernel makefile
>        UBUNTU: SAUCE: wireguard: selftests: use microvm on x86
> 
> Johannes Berg (2):
>        UBUNTU: SAUCE: netlink: consistently use NLA_POLICY_EXACT_LEN()
>        UBUNTU: SAUCE: netlink: consistently use NLA_POLICY_MIN_LEN()
> 
> Josh Soref (1):
>        UBUNTU: SAUCE: wireguard: global: fix spelling mistakes in comments
> 
> Li Zhijian (1):
>        UBUNTU: SAUCE: wireguard: selftests: rename DEBUG_PI_LIST to DEBUG_PLIST
> 
> Maciej W. Rozycki (1):
>        UBUNTU: SAUCE: crypto: mips/poly1305 - enable for all MIPS processors
> 
> Nikolay Aleksandrov (1):
>        UBUNTU: SAUCE: wireguard: device: check for metadata_dst with skb_valid_dst()
> 
> Randy Dunlap (1):
>        UBUNTU: SAUCE: wireguard: main: rename 'mod_init' & 'mod_exit' functions to be module-specific
> 
> Sultan Alsawaf (1):
>        UBUNTU: SAUCE: wireguard: send: remove errant newline from packet_encrypt_worker
> 
> Toke Høiland-Jørgensen (1):
>        UBUNTU: SAUCE: wireguard: receive: use tunnel helpers for decapsulating ECN markings
> 
> Uros Bizjak (2):
>        UBUNTU: SAUCE: crypto: curve25519-x86_64 - Use XORL r32,32
>        UBUNTU: SAUCE: crypto: poly1305-x86_64 - Use XORL r32,32
> 
> Valdis Kletnieks (1):
>        UBUNTU: SAUCE: crypto: chacha - fix warning message in header file
> 
> Wang Hai (1):
>        UBUNTU: SAUCE: wireguard: socket: free skb in send6 when ipv6 is disabled
> 
> Wei Yongjun (1):
>        UBUNTU: SAUCE: wireguard: allowedips: use kfree_rcu() instead of call_rcu()
> 
> YueHaibing (2):
>        UBUNTU: SAUCE: wireguard: main: remove unused include <linux/version.h>
>        UBUNTU: SAUCE: wireguard: selftests: remove duplicated include <sys/types.h>
> 
>   MAINTAINERS                                        |    8 +
>   arch/arm/crypto/.gitignore                         |    1 +
>   arch/arm/crypto/Kconfig                            |   16 +-
>   arch/arm/crypto/Makefile                           |   17 +-
>   arch/arm/crypto/chacha-glue.c                      |  358 +
>   arch/arm/crypto/chacha-neon-core.S                 |   97 +-
>   arch/arm/crypto/chacha-neon-glue.c                 |  202 -
>   arch/arm/crypto/chacha-scalar-core.S               |  460 +
>   arch/arm/crypto/curve25519-core.S                  | 2062 +++++
>   arch/arm/crypto/curve25519-glue.c                  |  136 +
>   arch/arm/crypto/poly1305-armv4.pl                  | 1236 +++
>   arch/arm/crypto/poly1305-core.S_shipped            | 1158 +++
>   arch/arm/crypto/poly1305-glue.c                    |  273 +
>   arch/arm64/crypto/.gitignore                       |    1 +
>   arch/arm64/crypto/Kconfig                          |    9 +-
>   arch/arm64/crypto/Makefile                         |   10 +-
>   arch/arm64/crypto/chacha-neon-core.S               |  193 +-
>   arch/arm64/crypto/chacha-neon-glue.c               |  100 +-
>   arch/arm64/crypto/poly1305-armv8.pl                |  913 ++
>   arch/arm64/crypto/poly1305-core.S_shipped          |  835 ++
>   arch/arm64/crypto/poly1305-glue.c                  |  231 +
>   arch/mips/Makefile                                 |    2 +-
>   arch/mips/crypto/.gitignore                        |    2 +
>   arch/mips/crypto/Makefile                          |   18 +
>   arch/mips/crypto/chacha-core.S                     |  497 ++
>   arch/mips/crypto/chacha-glue.c                     |  152 +
>   arch/mips/crypto/poly1305-glue.c                   |  191 +
>   arch/mips/crypto/poly1305-mips.pl                  | 1273 +++
>   arch/x86/Makefile                                  |    5 +-
>   arch/x86/crypto/.gitignore                         |    1 +
>   arch/x86/crypto/Makefile                           |   17 +-
>   arch/x86/crypto/chacha-ssse3-x86_64.S              |   16 +-
>   arch/x86/crypto/chacha_glue.c                      |  194 +-
>   arch/x86/crypto/curve25519-x86_64.c                | 1724 ++++
>   arch/x86/crypto/poly1305-avx2-x86_64.S             |  390 -
>   arch/x86/crypto/poly1305-sse2-x86_64.S             |  590 --
>   arch/x86/crypto/poly1305-x86_64-cryptogams.pl      | 4265 +++++++++
>   arch/x86/crypto/poly1305_glue.c                    |  327 +-
>   crypto/Kconfig                                     |   53 +-
>   crypto/Makefile                                    |    1 +
>   crypto/adiantum.c                                  |    9 +-
>   crypto/chacha_generic.c                            |   94 +-
>   crypto/curve25519-generic.c                        |   90 +
>   crypto/nhpoly1305.c                                |    5 +-
>   crypto/poly1305_generic.c                          |  213 +-
>   crypto/testmgr.c                                   |    6 +
>   crypto/testmgr.h                                   | 1225 +++
>   debian.master/config/amd64/config.common.amd64     |    1 +
>   debian.master/config/annotations                   |    2 +
>   debian.master/config/arm64/config.common.arm64     |    1 +
>   debian.master/config/armhf/config.common.armhf     |    1 +
>   debian.master/config/config.common.ubuntu          |   17 +
>   debian.master/config/i386/config.common.i386       |    1 +
>   debian.master/config/ppc64el/config.common.ppc64el |    1 +
>   debian.master/config/s390x/config.common.s390x     |    1 +
>   debian.master/rules.d/amd64.mk                     |    1 -
>   debian.master/rules.d/arm64.mk                     |    1 -
>   debian.master/rules.d/armhf.mk                     |    2 -
>   debian.master/rules.d/ppc64el.mk                   |    1 -
>   debian.master/rules.d/s390x.mk                     |    1 -
>   debian/dkms-versions                               |    1 -
>   debian/rules                                       |    6 -
>   debian/rules.d/2-binary-arch.mk                    |    2 -
>   drivers/net/Kconfig                                |   41 +
>   drivers/net/Makefile                               |    1 +
>   drivers/net/wireguard/Makefile                     |   17 +
>   drivers/net/wireguard/allowedips.c                 |  386 +
>   drivers/net/wireguard/allowedips.h                 |   59 +
>   drivers/net/wireguard/cookie.c                     |  236 +
>   drivers/net/wireguard/cookie.h                     |   59 +
>   drivers/net/wireguard/device.c                     |  461 +
>   drivers/net/wireguard/device.h                     |   62 +
>   drivers/net/wireguard/main.c                       |   78 +
>   drivers/net/wireguard/messages.h                   |  128 +
>   drivers/net/wireguard/netlink.c                    |  646 ++
>   drivers/net/wireguard/netlink.h                    |   12 +
>   drivers/net/wireguard/noise.c                      |  861 ++
>   drivers/net/wireguard/noise.h                      |  135 +
>   drivers/net/wireguard/peer.c                       |  240 +
>   drivers/net/wireguard/peer.h                       |   86 +
>   drivers/net/wireguard/peerlookup.c                 |  226 +
>   drivers/net/wireguard/peerlookup.h                 |   64 +
>   drivers/net/wireguard/queueing.c                   |  108 +
>   drivers/net/wireguard/queueing.h                   |  214 +
>   drivers/net/wireguard/ratelimiter.c                |  223 +
>   drivers/net/wireguard/ratelimiter.h                |   19 +
>   drivers/net/wireguard/receive.c                    |  593 ++
>   drivers/net/wireguard/selftest/allowedips.c        |  676 ++
>   drivers/net/wireguard/selftest/counter.c           |  111 +
>   drivers/net/wireguard/selftest/ratelimiter.c       |  226 +
>   drivers/net/wireguard/send.c                       |  413 +
>   drivers/net/wireguard/socket.c                     |  437 +
>   drivers/net/wireguard/socket.h                     |   44 +
>   drivers/net/wireguard/timers.c                     |  243 +
>   drivers/net/wireguard/timers.h                     |   31 +
>   drivers/net/wireguard/version.h                    |    1 +
>   include/crypto/chacha.h                            |   79 +-
>   include/crypto/chacha20poly1305.h                  |   50 +
>   include/crypto/curve25519.h                        |   73 +
>   include/crypto/internal/chacha.h                   |   43 +
>   include/crypto/internal/poly1305.h                 |   34 +
>   include/crypto/nhpoly1305.h                        |    4 +-
>   include/crypto/poly1305.h                          |   95 +-
>   include/net/dst_cache.h                            |   11 +
>   include/net/ip_tunnels.h                           |    3 +
>   include/uapi/linux/wireguard.h                     |  196 +
>   lib/Makefile                                       |    3 +-
>   lib/crypto/Kconfig                                 |  105 +
>   lib/crypto/Makefile                                |   44 +-
>   lib/{ => crypto}/chacha.c                          |   20 +-
>   lib/crypto/chacha20poly1305-selftest.c             | 9082 ++++++++++++++++++++
>   lib/crypto/chacha20poly1305.c                      |  375 +
>   lib/crypto/curve25519-fiat32.c                     |  864 ++
>   lib/crypto/curve25519-generic.c                    |   24 +
>   lib/crypto/curve25519-hacl64.c                     |  788 ++
>   lib/crypto/curve25519-selftest.c                   | 1321 +++
>   lib/crypto/curve25519.c                            |   35 +
>   lib/crypto/libchacha.c                             |   35 +
>   lib/crypto/poly1305-donna32.c                      |  205 +
>   lib/crypto/poly1305-donna64.c                      |  186 +
>   lib/crypto/poly1305.c                              |   78 +
>   net/core/dst_cache.c                               |   19 +
>   net/ipv4/ip_tunnel_core.c                          |   18 +
>   tools/testing/selftests/wireguard/netns.sh         |  674 ++
>   tools/testing/selftests/wireguard/qemu/.gitignore  |    4 +
>   tools/testing/selftests/wireguard/qemu/Makefile    |  421 +
>   .../selftests/wireguard/qemu/arch/aarch64.config   |    8 +
>   .../wireguard/qemu/arch/aarch64_be.config          |    9 +
>   .../selftests/wireguard/qemu/arch/arm.config       |   13 +
>   .../selftests/wireguard/qemu/arch/armeb.config     |   14 +
>   .../selftests/wireguard/qemu/arch/i686.config      |   10 +
>   .../selftests/wireguard/qemu/arch/m68k.config      |   10 +
>   .../selftests/wireguard/qemu/arch/mips.config      |   12 +
>   .../selftests/wireguard/qemu/arch/mips64.config    |   14 +
>   .../selftests/wireguard/qemu/arch/mips64el.config  |   15 +
>   .../selftests/wireguard/qemu/arch/mipsel.config    |   13 +
>   .../selftests/wireguard/qemu/arch/powerpc.config   |   11 +
>   .../selftests/wireguard/qemu/arch/powerpc64.config |   13 +
>   .../wireguard/qemu/arch/powerpc64le.config         |   13 +
>   .../selftests/wireguard/qemu/arch/s390x.config     |    6 +
>   .../selftests/wireguard/qemu/arch/x86_64.config    |    9 +
>   .../testing/selftests/wireguard/qemu/debug.config  |   67 +
>   tools/testing/selftests/wireguard/qemu/init.c      |  277 +
>   .../testing/selftests/wireguard/qemu/kernel.config |   90 +
>   144 files changed, 40385 insertions(+), 1961 deletions(-)
>   create mode 100644 arch/arm/crypto/chacha-glue.c
>   delete mode 100644 arch/arm/crypto/chacha-neon-glue.c
>   create mode 100644 arch/arm/crypto/chacha-scalar-core.S
>   create mode 100644 arch/arm/crypto/curve25519-core.S
>   create mode 100644 arch/arm/crypto/curve25519-glue.c
>   create mode 100644 arch/arm/crypto/poly1305-armv4.pl
>   create mode 100644 arch/arm/crypto/poly1305-core.S_shipped
>   create mode 100644 arch/arm/crypto/poly1305-glue.c
>   create mode 100644 arch/arm64/crypto/poly1305-armv8.pl
>   create mode 100644 arch/arm64/crypto/poly1305-core.S_shipped
>   create mode 100644 arch/arm64/crypto/poly1305-glue.c
>   create mode 100644 arch/mips/crypto/.gitignore
>   create mode 100644 arch/mips/crypto/chacha-core.S
>   create mode 100644 arch/mips/crypto/chacha-glue.c
>   create mode 100644 arch/mips/crypto/poly1305-glue.c
>   create mode 100644 arch/mips/crypto/poly1305-mips.pl
>   create mode 100644 arch/x86/crypto/.gitignore
>   create mode 100644 arch/x86/crypto/curve25519-x86_64.c
>   delete mode 100644 arch/x86/crypto/poly1305-avx2-x86_64.S
>   delete mode 100644 arch/x86/crypto/poly1305-sse2-x86_64.S
>   create mode 100644 arch/x86/crypto/poly1305-x86_64-cryptogams.pl
>   create mode 100644 crypto/curve25519-generic.c
>   create mode 100644 drivers/net/wireguard/Makefile
>   create mode 100644 drivers/net/wireguard/allowedips.c
>   create mode 100644 drivers/net/wireguard/allowedips.h
>   create mode 100644 drivers/net/wireguard/cookie.c
>   create mode 100644 drivers/net/wireguard/cookie.h
>   create mode 100644 drivers/net/wireguard/device.c
>   create mode 100644 drivers/net/wireguard/device.h
>   create mode 100644 drivers/net/wireguard/main.c
>   create mode 100644 drivers/net/wireguard/messages.h
>   create mode 100644 drivers/net/wireguard/netlink.c
>   create mode 100644 drivers/net/wireguard/netlink.h
>   create mode 100644 drivers/net/wireguard/noise.c
>   create mode 100644 drivers/net/wireguard/noise.h
>   create mode 100644 drivers/net/wireguard/peer.c
>   create mode 100644 drivers/net/wireguard/peer.h
>   create mode 100644 drivers/net/wireguard/peerlookup.c
>   create mode 100644 drivers/net/wireguard/peerlookup.h
>   create mode 100644 drivers/net/wireguard/queueing.c
>   create mode 100644 drivers/net/wireguard/queueing.h
>   create mode 100644 drivers/net/wireguard/ratelimiter.c
>   create mode 100644 drivers/net/wireguard/ratelimiter.h
>   create mode 100644 drivers/net/wireguard/receive.c
>   create mode 100644 drivers/net/wireguard/selftest/allowedips.c
>   create mode 100644 drivers/net/wireguard/selftest/counter.c
>   create mode 100644 drivers/net/wireguard/selftest/ratelimiter.c
>   create mode 100644 drivers/net/wireguard/send.c
>   create mode 100644 drivers/net/wireguard/socket.c
>   create mode 100644 drivers/net/wireguard/socket.h
>   create mode 100644 drivers/net/wireguard/timers.c
>   create mode 100644 drivers/net/wireguard/timers.h
>   create mode 100644 drivers/net/wireguard/version.h
>   create mode 100644 include/crypto/chacha20poly1305.h
>   create mode 100644 include/crypto/curve25519.h
>   create mode 100644 include/crypto/internal/chacha.h
>   create mode 100644 include/crypto/internal/poly1305.h
>   create mode 100644 include/uapi/linux/wireguard.h
>   create mode 100644 lib/crypto/Kconfig
>   rename lib/{ => crypto}/chacha.c (88%)
>   create mode 100644 lib/crypto/chacha20poly1305-selftest.c
>   create mode 100644 lib/crypto/chacha20poly1305.c
>   create mode 100644 lib/crypto/curve25519-fiat32.c
>   create mode 100644 lib/crypto/curve25519-generic.c
>   create mode 100644 lib/crypto/curve25519-hacl64.c
>   create mode 100644 lib/crypto/curve25519-selftest.c
>   create mode 100644 lib/crypto/curve25519.c
>   create mode 100644 lib/crypto/libchacha.c
>   create mode 100644 lib/crypto/poly1305-donna32.c
>   create mode 100644 lib/crypto/poly1305-donna64.c
>   create mode 100644 lib/crypto/poly1305.c
>   create mode 100755 tools/testing/selftests/wireguard/netns.sh
>   create mode 100644 tools/testing/selftests/wireguard/qemu/.gitignore
>   create mode 100644 tools/testing/selftests/wireguard/qemu/Makefile
>   create mode 100644 tools/testing/selftests/wireguard/qemu/arch/aarch64.config
>   create mode 100644 tools/testing/selftests/wireguard/qemu/arch/aarch64_be.config
>   create mode 100644 tools/testing/selftests/wireguard/qemu/arch/arm.config
>   create mode 100644 tools/testing/selftests/wireguard/qemu/arch/armeb.config
>   create mode 100644 tools/testing/selftests/wireguard/qemu/arch/i686.config
>   create mode 100644 tools/testing/selftests/wireguard/qemu/arch/m68k.config
>   create mode 100644 tools/testing/selftests/wireguard/qemu/arch/mips.config
>   create mode 100644 tools/testing/selftests/wireguard/qemu/arch/mips64.config
>   create mode 100644 tools/testing/selftests/wireguard/qemu/arch/mips64el.config
>   create mode 100644 tools/testing/selftests/wireguard/qemu/arch/mipsel.config
>   create mode 100644 tools/testing/selftests/wireguard/qemu/arch/powerpc.config
>   create mode 100644 tools/testing/selftests/wireguard/qemu/arch/powerpc64.config
>   create mode 100644 tools/testing/selftests/wireguard/qemu/arch/powerpc64le.config
>   create mode 100644 tools/testing/selftests/wireguard/qemu/arch/s390x.config
>   create mode 100644 tools/testing/selftests/wireguard/qemu/arch/x86_64.config
>   create mode 100644 tools/testing/selftests/wireguard/qemu/debug.config
>   create mode 100644 tools/testing/selftests/wireguard/qemu/init.c
>   create mode 100644 tools/testing/selftests/wireguard/qemu/kernel.config
> 

-------------- next part --------------
A non-text attachment was scrubbed...
Name: OpenPGP_signature
Type: application/pgp-signature
Size: 833 bytes
Desc: OpenPGP digital signature
URL: <https://lists.ubuntu.com/archives/kernel-team/attachments/20221207/9621588e/attachment-0001.sig>


More information about the kernel-team mailing list