Skip to content
Snippets Groups Projects
  1. Jun 06, 2021
    • Toke Høiland-Jørgensen's avatar
      Babel: Add MAC authentication support · b218a28f
      Toke Høiland-Jørgensen authored and Ondřej Zajíček's avatar Ondřej Zajíček committed
      This implements support for MAC authentication in the Babel protocol, as
      specified by RFC 8967. The implementation seeks to follow the RFC as close
      as possible, with the only deliberate deviation being the addition of
      support for all the HMAC algorithms already supported by Bird, as well as
      the Blake2b variant of the Blake algorithm.
      
      For description of applicability, assumptions and security properties,
      see RFC 8967 sections 1.1 and 1.2.
      b218a28f
    • Toke Høiland-Jørgensen's avatar
      Babel: Refactor TLV parsing code for easier reuse · 69d10132
      Toke Høiland-Jørgensen authored and Ondřej Zajíček's avatar Ondřej Zajíček committed
      In preparation for adding authentication checks, refactor the TLV
      walking code so it can be reused for a separate pass of the packet
      for authentication checks.
      69d10132
    • Toke Høiland-Jørgensen's avatar
      Nest: Allow MAC algorithms to specify min/max key length · 589f7d1e
      Toke Høiland-Jørgensen authored and Ondřej Zajíček's avatar Ondřej Zajíček committed
      Add min/max key length fields to the MAC algorithm description and
      validate configured keys before they are used.
      589f7d1e
    • Toke Høiland-Jørgensen's avatar
      Nest: Allow specifying security keys as hex bytes as well as strings · 35f88b30
      Toke Høiland-Jørgensen authored and Ondřej Zajíček's avatar Ondřej Zajíček committed
      Add support for specifying a password in hexadecimal format, The result
      is the same whether a password is specified as a quoted string or a
      hex-encoded byte string, this just makes it more convenient to input
      high-entropy byte strings as MAC keys.
      35f88b30
    • Toke Høiland-Jørgensen's avatar
      Lib: Add tests for blake2s and blake2b · f1a82419
      Toke Høiland-Jørgensen authored and Ondřej Zajíček's avatar Ondřej Zajíček committed
      Import the blake2-kat.h header with test vector output from the blake
      reference implementation, and add tests to mac_test.c to compare the
      output of the Bird MAC algorithm implementations with that reference
      output.
      
      Since the reference implementation only has test vectors for the full
      output size, there are no tests for the smaller-sized output variants.
      f1a82419
    • Toke Høiland-Jørgensen's avatar
      Lib: Add Blake2s and Blake2b hash functions · 725d9af9
      Toke Høiland-Jørgensen authored and Ondřej Zajíček's avatar Ondřej Zajíček committed
      The Babel MAC authentication RFC recommends implementing Blake2s as one of
      the supported algorithms. In order to achieve do this, add the blake2b and
      blake2s hash functions for MAC authentication. The hashing function
      implementations are the reference implementations from blake2.net.
      
      The Blake2 algorithms allow specifying an arbitrary output size, and the
      Babel MAC spec says to implement Blake2s with 128-bit output. To satisfy
      this, we add two different variants of each of the algorithms, one using
      the default size (256 bits for Blake2s, 512 bits for Blake2b), and one
      using half the default output size.
      
      Update to BIRD coding style done by committer.
      725d9af9
    • Ondřej Zajíček's avatar
      sysdep: Add wrapper to get random bytes - update · e5724f71
      Ondřej Zajíček authored
      Simplify the code and fix an issue with getentropy() return value.
      e5724f71
    • Toke Høiland-Jørgensen's avatar
      sysdep: Add wrapper to get random bytes · c48ebde5
      Toke Høiland-Jørgensen authored and Ondřej Zajíček's avatar Ondřej Zajíček committed
      Add a wrapper function in sysdep to get random bytes, and required checks
      in configure.ac to select how to do it. The configure script tries, in
      order, getrandom(), getentropy() and reading from /dev/urandom.
      c48ebde5
  2. Jun 01, 2021
    • Ondřej Zajíček's avatar
      BGP: Ensure that freed neighbor entry is not accessed · 91d04583
      Ondřej Zajíček authored
      Routes from downed protocols stay in rtable (until next rtable prune
      cycle ends) and may be even exported to another protocol. In BGP case,
      source BGP protocol is examined, although dynamic parts (including
      neighbor entries) are already freed. That may lead to crash under some
      race conditions. Ensure that freed neighbor entry is not accessed to
      avoid this issue.
      91d04583
  3. May 30, 2021
    • Maria Matejka's avatar
      Babel: Seqno requests are properly decoupled from neighbors when the... · ebd5751c
      Maria Matejka authored
      Babel: Seqno requests are properly decoupled from neighbors when the underlying interface disappears
      
      When an interface disappears, all the neighbors are freed as well. Seqno
      requests were anyway not decoupled from them, leading to strange
      segfaults. This fix adds a proper seqno request list inside neighbors to
      make sure that no pointer to neighbor is kept after free.
      ebd5751c
  4. May 26, 2021
  5. May 20, 2021
  6. May 19, 2021
  7. May 18, 2021
  8. May 17, 2021
  9. May 14, 2021
  10. May 10, 2021
  11. May 09, 2021
  12. Apr 25, 2021
    • Ondřej Zajíček's avatar
      CI: Fix debian-10-i386 docker file · 255722e0
      Ondřej Zajíček authored
      255722e0
    • Ondřej Zajíček's avatar
      Doc: Include full LinuxDocTools code · 58510024
      Ondřej Zajíček authored
      BIRD uses hacked LinuxDocTools for building documentation, keeping some
      parts locally and using remaining parts from system-installed one. This
      setup breaks when LinuxDocTools makes some internal changes and is hard
      to keep consistent.
      
      Just include full LinuxDocTools code (both hacked and unmodified parts)
      to avoid consistency issues. Note that we still need some binaries from
      LinuxDocTools, so it still needs to be installed to build documentation.
      58510024
  13. Apr 21, 2021
    • Matous's avatar
      CI/CD: some latest releases added. · b646c009
      Matous authored
      /misc/docker/:
      + debian 11 (i386+amd64) added,
      + fedora 32 added,
      + fedora 33 added,
      + fedora 34 added,
      + opensuse 15.2 added,
      + opensuse 15.3 added,
      + ubuntu 20.04 added,
      + ubuntu 20.10 added,
      + ubuntu 21.04 added,
      - ubuntu 19.10 removed.
      
      /.gitlab-ci.yml:
      + stages 'image' and 'build' updated.
      b646c009
  14. Apr 19, 2021
  15. Apr 12, 2021
Loading