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

Andrea Righi andrea.righi at canonical.com
Tue Dec 6 10:57:08 UTC 2022


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).

[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



More information about the kernel-team mailing list