remove useless VERIFY_SIGNATURE #ifdef
[platform/upstream/crda.git] / README
1  Central Regulatory Domain Agent (CRDA)
2 ========================================
3
4 This is the Central Regulatory Domain Agent for Linux. It serves two
5 purposes: keep a database of world-wide regulatory information and
6 tell the Linux kernel what to enforce.
7
8  REQUIREMENTS
9 ==============
10
11 The package requirements currently are:
12  * python and the m2crypto package (python-m2crypto)
13  * libgcrypt or libssl (openssl) header files
14  * MoinMoin (http://moinmo.in) for the web viewer
15
16  OVERVIEW
17 ==========
18
19 The regulatory information is collected in a text file, `db.txt'. This
20 text file is then compiled into a binary database `regulatory.bin' and
21 digitally signed with the key in `key.priv.pem'. The binary database
22 is then used by the regulatory agent to update the in-kernel enforcement
23 table.
24
25  TECHNICAL INFORMATION
26 =======================
27
28 The regulatory information in `db.txt' is stored in a human-readable
29 format which can be read using the `dbparse.py' python module. This
30 python module is used by the web viewer (web/Regulatory.py) which is
31 implemented as a MoinMoin macro (and used on http://linuxwireless.org)
32 to allow viewing the database for verification.
33
34 The dbparse module is also used by db2bin.py, the `compiler', which
35 compiles and signs the binary database.
36
37 The binary database file format is described in `regdb.h' (which has
38 to be kept in sync with the compiler.
39
40 The key file, key.priv.pem, has to be an RSA key, for example created
41 with openssl using `openssl genrsa -out key.priv.pem 1024'. Building
42 without such a key file causes the test-key to be used to allow the
43 build to succeed without generating a key first. This key is not meant
44 to be used for deployments, however.
45
46 Under certain circumstances it may be desirable to have the regulatory
47 agent accept multiple keys, this can be achieved by compiling it when
48 more than one key is present in the source directory (named *.pem). In
49 this case, the agent will accept a signature of any of those keys.