chiark / gitweb /
secnet.8, magic.h: Rephrase documentation of `capab-num' settings.
[secnet.git] / magic.h
1 /* Magic numbers used within secnet */
2 /*
3  * This file is part of secnet.
4  * See README for full list of copyright holders.
5  *
6  * secnet is free software; you can redistribute it and/or modify it
7  * under the terms of the GNU General Public License as published by
8  * the Free Software Foundation; either version 3 of the License, or
9  * (at your option) any later version.
10  * 
11  * secnet is distributed in the hope that it will be useful, but
12  * WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14  * General Public License for more details.
15  * 
16  * You should have received a copy of the GNU General Public License
17  * version 3 along with secnet; if not, see
18  * https://www.gnu.org/licenses/gpl.html.
19  */
20
21 #ifndef magic_h
22 #define magic_h
23
24 #define LABEL_NAK     0x00000000
25 #define LABEL_MSG0    0x00020200
26 #define LABEL_MSG1    0x01010101
27 #define LABEL_MSG2    0x02020202
28 #define LABEL_MSG3    0x03030303
29 #define LABEL_MSG3BIS 0x13030313
30 #define LABEL_MSG4    0x04040404
31 #define LABEL_MSG5    0x05050505
32 #define LABEL_MSG6    0x06060606
33 #define LABEL_MSG7    0x07070707
34 #define LABEL_MSG8    0x08080808
35 #define LABEL_MSG9    0x09090909
36 #define LABEL_PROD    0x0a0a0a0a
37
38 /* uses of the 32-bit capability bitmap */
39 #define CAPAB_EARLY           CAPAB_PRIORITY_MOBILE
40 #define CAPAB_TRANSFORM_MASK  0x0000ffff
41 #define CAPAB_PRIORITY_MOBILE 0x80000000 /* mobile site has MSG1 priority */
42 /* remaining bits are unused */
43
44 /*
45  * The capability mask is a set of bits, one for each optional feature
46  * supported.  The capability numbers for transforms are set in the
47  * configuration (and should correspond between the two sites), although
48  * there are sensible defaults.
49  *
50  * Advertising a nonzero capability mask promises that the receiver
51  * understands LABEL_MSG3BIS messages, which contain an additional byte
52  * specifying the transform capability number actually chosen by the MSG3
53  * sender.
54  *
55  * Aside from that, an empty bitmask is treated the same as
56  *  1u<<CAPAB_BIT_ANCIENTTRANSFORM
57  */
58
59 /* bit indices, 0 is ls bit */
60 #define CAPAB_BIT_USER_MIN              0
61 #define CAPAB_BIT_USER_MAX              7
62 #define CAPAB_BIT_SERPENT256CBC         8
63 #define CAPAB_BIT_EAXSERPENT            9
64 #define CAPAB_BIT_MAX                  15
65
66 #define CAPAB_BIT_ANCIENTTRANSFORM CAPAB_BIT_SERPENT256CBC
67
68 #endif /* magic_h */