SKEYID derivation based on libstrongswan
[strongswan.git] / src / pluto / vendor.h
1 /* FreeS/WAN ISAKMP VendorID
2 * Copyright (C) 2002-2003 Mathieu Lafon - Arkoon Network Security
3 *
4 * This program is free software; you can redistribute it and/or modify it
5 * under the terms of the GNU General Public License as published by the
6 * Free Software Foundation; either version 2 of the License, or (at your
7 * option) any later version. See <http://www.fsf.org/copyleft/gpl.txt>.
8 *
9 * This program is distributed in the hope that it will be useful, but
10 * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
11 * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12 * for more details.
13 */
14
15 #ifndef _VENDOR_H_
16 #define _VENDOR_H_
17
18 enum known_vendorid {
19 /* 1 - 100 : Implementation names */
20 VID_OPENPGP = 1,
21 VID_KAME_RACOON = 2,
22 VID_MS_NT5 = 3,
23 VID_SSH_SENTINEL = 4,
24 VID_SSH_SENTINEL_1_1 = 5,
25 VID_SSH_SENTINEL_1_2 = 6,
26 VID_SSH_SENTINEL_1_3 = 7,
27 VID_SSH_SENTINEL_1_4 = 8,
28 VID_SSH_SENTINEL_1_4_1 = 9,
29 VID_SSH_IPSEC_1_1_0 = 10,
30 VID_SSH_IPSEC_1_1_1 = 11,
31 VID_SSH_IPSEC_1_1_2 = 12,
32 VID_SSH_IPSEC_1_2_1 = 13,
33 VID_SSH_IPSEC_1_2_2 = 14,
34 VID_SSH_IPSEC_2_0_0 = 15,
35 VID_SSH_IPSEC_2_1_0 = 16,
36 VID_SSH_IPSEC_2_1_1 = 17,
37 VID_SSH_IPSEC_2_1_2 = 18,
38 VID_SSH_IPSEC_3_0_0 = 19,
39 VID_SSH_IPSEC_3_0_1 = 20,
40 VID_SSH_IPSEC_4_0_0 = 21,
41 VID_SSH_IPSEC_4_0_1 = 22,
42 VID_SSH_IPSEC_4_1_0 = 23,
43 VID_SSH_IPSEC_4_2_0 = 24,
44 VID_CISCO_UNITY = 25,
45 VID_CISCO3K = 26,
46 VID_CISCO_IOS = 27,
47 VID_TIMESTEP = 28,
48 VID_SAFENET = 29,
49 VID_MACOSX = 30,
50 VID_NCP_SERVER = 31,
51 VID_NCP_CLIENT = 32,
52 VID_VISTA_AUTHIP = 33,
53 VID_VISTA_AUTHIP2 = 34,
54 VID_VISTA_AUTHIP3 = 35,
55
56 VID_STRONGSWAN = 37,
57 VID_STRONGSWAN_2_2_0 = 38,
58 VID_STRONGSWAN_2_2_1 = 39,
59 VID_STRONGSWAN_2_2_2 = 40,
60 VID_STRONGSWAN_2_3_0 = 41,
61 VID_STRONGSWAN_2_3_1 = 42,
62 VID_STRONGSWAN_2_3_2 = 43,
63 VID_STRONGSWAN_2_4_0 = 44,
64 VID_STRONGSWAN_2_4_1 = 45,
65 VID_STRONGSWAN_2_4_2 = 46,
66 VID_STRONGSWAN_2_4_3 = 47,
67 VID_STRONGSWAN_2_4_4 = 48,
68 VID_STRONGSWAN_2_5_0 = 49,
69 VID_STRONGSWAN_2_5_1 = 50,
70 VID_STRONGSWAN_2_5_2 = 51,
71 VID_STRONGSWAN_2_5_3 = 52,
72 VID_STRONGSWAN_2_5_4 = 53,
73 VID_STRONGSWAN_2_5_5 = 54,
74 VID_STRONGSWAN_2_5_6 = 55,
75 VID_STRONGSWAN_2_5_7 = 56,
76 VID_STRONGSWAN_2_6_0 = 57,
77 VID_STRONGSWAN_2_6_1 = 58,
78 VID_STRONGSWAN_2_6_2 = 59,
79 VID_STRONGSWAN_2_6_3 = 60,
80 VID_STRONGSWAN_2_6_4 = 61,
81 VID_STRONGSWAN_2_7_0 = 62,
82 VID_STRONGSWAN_2_7_1 = 63,
83 VID_STRONGSWAN_2_7_2 = 64,
84 VID_STRONGSWAN_2_7_3 = 65,
85 VID_STRONGSWAN_2_8_0 = 66,
86 VID_STRONGSWAN_2_8_1 = 67,
87 VID_STRONGSWAN_2_8_2 = 68,
88 VID_STRONGSWAN_2_8_3 = 69,
89 VID_STRONGSWAN_2_8_4 = 70,
90 VID_STRONGSWAN_2_8_5 = 71,
91 VID_STRONGSWAN_2_8_6 = 72,
92 VID_STRONGSWAN_2_8_7 = 73,
93 VID_STRONGSWAN_2_8_8 = 74,
94 VID_STRONGSWAN_2_8_9 = 75,
95
96 VID_STRONGSWAN_4_0_0 = 80,
97 VID_STRONGSWAN_4_0_1 = 81,
98 VID_STRONGSWAN_4_0_2 = 82,
99 VID_STRONGSWAN_4_0_3 = 83,
100 VID_STRONGSWAN_4_0_4 = 84,
101 VID_STRONGSWAN_4_0_5 = 85,
102 VID_STRONGSWAN_4_0_6 = 86,
103 VID_STRONGSWAN_4_0_7 = 87,
104 VID_STRONGSWAN_4_1_0 = 88,
105 VID_STRONGSWAN_4_1_1 = 89,
106 VID_STRONGSWAN_4_1_2 = 90,
107 VID_STRONGSWAN_4_1_3 = 91,
108 VID_STRONGSWAN_4_1_4 = 92,
109 VID_STRONGSWAN_4_1_5 = 93,
110 VID_STRONGSWAN_4_1_6 = 94,
111 VID_STRONGSWAN_4_1_7 = 95,
112 VID_STRONGSWAN_4_1_8 = 96,
113 VID_STRONGSWAN_4_1_9 = 97,
114 VID_STRONGSWAN_4_1_10 = 98,
115 VID_STRONGSWAN_4_1_11 = 99,
116
117 VID_STRONGSWAN_4_2_0 =100,
118 VID_STRONGSWAN_4_2_1 =101,
119 VID_STRONGSWAN_4_2_2 =102,
120 VID_STRONGSWAN_4_2_3 =103,
121 VID_STRONGSWAN_4_2_4 =104,
122 VID_STRONGSWAN_4_2_5 =105,
123 VID_STRONGSWAN_4_2_6 =106,
124 VID_STRONGSWAN_4_2_7 =107,
125 VID_STRONGSWAN_4_2_8 =108,
126 VID_STRONGSWAN_4_2_9 =109,
127 VID_STRONGSWAN_4_2_10 =110,
128 VID_STRONGSWAN_4_2_11 =111,
129 VID_STRONGSWAN_4_2_12 =112,
130 VID_STRONGSWAN_4_2_13 =113,
131 VID_STRONGSWAN_4_2_14 =114,
132 VID_STRONGSWAN_4_3_0 =115,
133
134 /* 101 - 200 : NAT-Traversal */
135 VID_NATT_STENBERG_01 =151,
136 VID_NATT_STENBERG_02 =152,
137 VID_NATT_HUTTUNEN =153,
138 VID_NATT_HUTTUNEN_ESPINUDP =154,
139 VID_NATT_IETF_00 =155,
140 VID_NATT_IETF_02_N =156,
141 VID_NATT_IETF_02 =157,
142 VID_NATT_IETF_03 =158,
143 VID_NATT_RFC =159,
144
145 /* 201 - 300 : Misc */
146 VID_MISC_XAUTH =201,
147 VID_MISC_DPD =202,
148 VID_MISC_HEARTBEAT_NOTIFY =203,
149 VID_MISC_FRAGMENTATION =204,
150 VID_INITIAL_CONTACT =205,
151 VID_CISCO3K_FRAGMENTATION =206
152 };
153
154 void init_vendorid(void);
155 void free_vendorid(void);
156
157 struct msg_digest;
158 void handle_vendorid (struct msg_digest *md, const char *vid, size_t len);
159
160 bool out_vendorid (u_int8_t np, pb_stream *outs, enum known_vendorid vid);
161
162 #endif /* _VENDOR_H_ */
163