1. 17 Jul, 2013 2 commits
    • Luis R. Rodriguez's avatar
      reglib: add reglib_is_valid_rd() and verify data upon build · 6145db24
      Luis R. Rodriguez authored
      This will verify the sanity of a regulatory domain upon build
      time. This is useful if you are making modifications to
      wireless-regdb and need to verify the regulatory domains
      won't be rejected by a similar checker. In the case of the
      Linux kernel regulatory domain data structures that get
      a complaint would have been rejected completely.
      Signed-off-by: 's avatarLuis R. Rodriguez <mcgrof@do-not-panic.com>
      6145db24
    • Ben Hutchings's avatar
      reglib: Validate all structure and array lengths · f4c3e3fc
      Ben Hutchings authored
      Add checks that:
      - Signature length does not exceed the file length (this was already
        checked, but did not account for signature lengths greater than 2 GB)
      - Database length is long enough for all structures we expect in it
      - Array length calculations will not overflow
      
      To keep these checks simple, change the types of array length and index
      variables to unsigned int (must be at least 32-bit, matching the file
      format) and the types of byte-length variables to size_t.
      
      Alexandre Rebert <alexandre@cmu.edu> reported and provided a test case
      for the signature length issue; the others I found by inspection.
      Signed-off-by: Ben Hutchings's avatarBen Hutchings <ben@decadent.org.uk>
      Signed-off-by: 's avatarLuis R. Rodriguez <mcgrof@do-not-panic.com>
      f4c3e3fc
  2. 31 May, 2013 10 commits
  3. 30 May, 2013 3 commits
  4. 29 May, 2013 3 commits
  5. 24 May, 2013 2 commits
  6. 21 Jan, 2013 1 commit
    • Luis R. Rodriguez's avatar
      crda: fix compile warning on pcc for reglib for string.h · 6a7fd50c
      Luis R. Rodriguez authored
      This fixes these compile warnings:
      
      make -j5 -l4 UDEV_RULE_DIR=/lib/udev/rules.d
      REG_BIN=/usr/lib64/crda/regulatory.bin USE_OPENSSL=1
      CC=x86_64-pc-linux-gnu-gcc all_noverify V=1
      x86_64-pc-linux-gnu-gcc -c  -Os -pipe -march=native
      -frecord-gcc-switches -ggdb -Wall -g -DUSE_OPENSSL
      -DPUBKEY_DIR=\"/etc/wireless-regdb/pubkeys\" `pkg-config --cflags
      openssl` -DCONFIG_LIBNL30 `pkg-config --cflags libnl-3.0` -o crda.o crda.c
      x86_64-pc-linux-gnu-gcc -c  -Os -pipe -march=native
      -frecord-gcc-switches -ggdb -Wall -g -DUSE_OPENSSL
      -DPUBKEY_DIR=\"/etc/wireless-regdb/pubkeys\" `pkg-config --cflags
      openssl` -DCONFIG_LIBNL30 `pkg-config --cflags libnl-3.0` -o intersect.o
      intersect.c
      ./utils/key2pub.py --ssl pubkeys/linville.key.pub.pem keys-ssl.c
      x86_64-pc-linux-gnu-gcc -c  -Os -pipe -march=native
      -frecord-gcc-switches -ggdb -Wall -g -DUSE_OPENSSL
      -DPUBKEY_DIR=\"/etc/wireless-regdb/pubkeys\" `pkg-config --cflags
      openssl` -DCONFIG_LIBNL30 `pkg-config --cflags libnl-3.0` -o
      print-regdom.o print-regdom.c
      x86_64-pc-linux-gnu-gcc -c  -Os -pipe -march=native
      -frecord-gcc-switches -ggdb -Wall -g -DUSE_OPENSSL
      -DPUBKEY_DIR=\"/etc/wireless-regdb/pubkeys\" `pkg-config --cflags
      openssl` -DCONFIG_LIBNL30 `pkg-config --cflags libnl-3.0` -o regdbdump.o
      regdbdump.c
      x86_64-pc-linux-gnu-gcc -c  -Os -pipe -march=native
      -frecord-gcc-switches -ggdb -Wall -g -DUSE_OPENSSL
      -DPUBKEY_DIR=\"/etc/wireless-regdb/pubkeys\" `pkg-config --cflags
      openssl` -DCONFIG_LIBNL30 `pkg-config --cflags libnl-3.0` -o reglib.o
      reglib.c
      reglib.c: In function ‘country2rd’:
      reglib.c:213:2: warning: implicit declaration of function ‘memset’
      [-Wimplicit-function-declaration]
      reglib.c:213:2: warning: incompatible implicit declaration of built-in
      function ‘memset’ [enabled by default]
      reglib.c: In function ‘reglib_get_rd_alpha2’:
      reglib.c:344:3: warning: implicit declaration of function ‘memcmp’
      [-Wimplicit-function-declaration]
      x86_64-pc-linux-gnu-gcc -Os -pipe -march=native -frecord-gcc-switches
      -ggdb -Wall -g -DUSE_OPENSSL
      -DPUBKEY_DIR=\"/etc/wireless-regdb/pubkeys\" `pkg-config --cflags
      openssl` -DCONFIG_LIBNL30 `pkg-config --cflags libnl-3.0` -Wl,-O1
      -Wl,--as-needed -Wl,--hash-style=gnu -o crda reglib.o crda.o `pkg-config
      --libs openssl` -lnl-genl-3 -lnl-3   `pkg-config --libs libnl-3.0`
      x86_64-pc-linux-gnu-gcc -Os -pipe -march=native -frecord-gcc-switches
      -ggdb -Wall -g -DUSE_OPENSSL
      -DPUBKEY_DIR=\"/etc/wireless-regdb/pubkeys\" `pkg-config --cflags
      openssl` -DCONFIG_LIBNL30 `pkg-config --cflags libnl-3.0` -Wl,-O1
      -Wl,--as-needed -Wl,--hash-style=gnu -o intersect reglib.o intersect.o
      print-regdom.o `pkg-config --libs openssl`
      x86_64-pc-linux-gnu-gcc -Os -pipe -march=native -frecord-gcc-switches
      -ggdb -Wall -g -DUSE_OPENSSL
      -DPUBKEY_DIR=\"/etc/wireless-regdb/pubkeys\" `pkg-config --cflags
      openssl` -DCONFIG_LIBNL30 `pkg-config --cflags libnl-3.0` -Wl,-O1
      -Wl,--as-needed -Wl,--hash-style=gnu -o regdbdump reglib.o regdbdump.o
      print-regdom.o `pkg-config --libs openssl`
      Reported-by: 's avatarRichard Farina <sidhayn@gmail.com>
      Signed-off-by: 's avatarLuis R. Rodriguez <mcgrof@do-not-panic.com>
      6a7fd50c
  7. 19 Jan, 2012 5 commits
  8. 18 Jan, 2012 2 commits
    • Luis R. Rodriguez's avatar
      crda: add a reglib iterator reglib_for_each_country() · ebcbfcf4
      Luis R. Rodriguez authored
      To allow for a simple library on reglib.c we want to enable
      an iterator over the regulatory database that does not have
      to lock the file, or pass references to the file. We instead
      add an iterator reglib_get_country_idx() which will use a
      new reglib_get_country_idx(), that does an O(n) search for
      each new regulatory domain it needs to read.
      
      The trade off here is to allow for a simple reglib.c implementation
      at the cost that upon each iteration reglib_get_country_idx()
      we will will be opening the regdb, and verifying the db signature.
      Given that the only user of this iterator is regdbdump though and
      that this is used for debugging for now this is trade off I am
      willing to live with.
      
      Systems that want to use the regdb as a database for fine tuning
      radio parameters dynamically and reading this file very *often*
      (seconds, minutes, who knows what the future holds) may want to
      consider a slight optimization of exporting the direct mmap()
      through the library but we are I think light years away from that.
      Signed-off-by: 's avatarLuis R. Rodriguez <mcgrof@qca.qualcomm.com>
      ebcbfcf4
    • Luis R. Rodriguez's avatar
      crda: move country2rd() and its helper to reglib.c · 0d421c28
      Luis R. Rodriguez authored
      Start cleaning the way we deal with reglib.c as the goal
      is to make that stuff a library to be shared first in
      userspace with the regulatory simulator [0]. We start
      off by moving country2rd() and its helper over to
      reglib.c.
      
      [0] git://github.com/mcgrof/regsim.gitSigned-off-by: 's avatarLuis R. Rodriguez <mcgrof@frijolero.org>
      0d421c28
  9. 15 Nov, 2011 1 commit
  10. 25 Jan, 2010 2 commits
    • Luis R. Rodriguez's avatar
      Space fix · 52300e7e
      Luis R. Rodriguez authored
      Signed-off-by: 's avatarLuis R. Rodriguez <lrodriguez@atheros.com>
      52300e7e
    • Paul Fertser's avatar
      Implement runtime loading of RSA public keys · 7429427a
      Paul Fertser authored
      This patch allows crda to load and use additional keys from a
      pre-configured location for the database signature verification. This
      provides a convenient way for distro maintainers and card manufacturers to
      supply a custom regulatory database along with their public keys, without
      the need to recompile crda.
      
      Implemented for USE_OPENSSL=1 case only because libgcrypt lacks PEM parser.
      
      Default location for public keys in PEM format is
      /etc/wireless-regdb/pubkeys and can be changed by specifying
      RUNTIME_PUBKEY_DIR at the make command line.
      Signed-off-by: 's avatarPaul Fertser <fercerpav@gmail.com>
      7429427a
  11. 17 Apr, 2009 1 commit
  12. 01 Dec, 2008 4 commits
  13. 29 Oct, 2008 2 commits
  14. 28 Oct, 2008 2 commits