Diffstat (limited to 'noncore/net/opierdesktop/constants.h') (more/less context) (show whitespace changes)
-rw-r--r-- | noncore/net/opierdesktop/constants.h | 259 |
1 files changed, 259 insertions, 0 deletions
diff --git a/noncore/net/opierdesktop/constants.h b/noncore/net/opierdesktop/constants.h new file mode 100644 index 0000000..6dfbf93 --- a/dev/null +++ b/noncore/net/opierdesktop/constants.h | |||
@@ -0,0 +1,259 @@ | |||
1 | /* | ||
2 | rdesktop: A Remote Desktop Protocol client. | ||
3 | Miscellaneous protocol constants | ||
4 | Copyright (C) Matthew Chapman 1999-2002 | ||
5 | |||
6 | This program is free software; you can redistribute it and/or modify | ||
7 | it under the terms of the GNU General Public License as published by | ||
8 | the Free Software Foundation; either version 2 of the License, or | ||
9 | (at your option) any later version. | ||
10 | |||
11 | This program is distributed in the hope that it will be useful, | ||
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
14 | GNU General Public License for more details. | ||
15 | |||
16 | You should have received a copy of the GNU General Public License | ||
17 | along with this program; if not, write to the Free Software | ||
18 | Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | ||
19 | */ | ||
20 | |||
21 | /* TCP port for Remote Desktop Protocol */ | ||
22 | #define TCP_PORT_RDP 3389 | ||
23 | |||
24 | /* ISO PDU codes */ | ||
25 | enum ISO_PDU_CODE | ||
26 | { | ||
27 | ISO_PDU_CR = 0xE0,/* Connection Request */ | ||
28 | ISO_PDU_CC = 0xD0,/* Connection Confirm */ | ||
29 | ISO_PDU_DR = 0x80,/* Disconnect Request */ | ||
30 | ISO_PDU_DT = 0xF0,/* Data */ | ||
31 | ISO_PDU_ER = 0x70/* Error */ | ||
32 | }; | ||
33 | |||
34 | /* MCS PDU codes */ | ||
35 | enum MCS_PDU_TYPE | ||
36 | { | ||
37 | MCS_EDRQ = 1, /* Erect Domain Request */ | ||
38 | MCS_DPUM = 8, /* Disconnect Provider Ultimatum */ | ||
39 | MCS_AURQ = 10, /* Attach User Request */ | ||
40 | MCS_AUCF = 11, /* Attach User Confirm */ | ||
41 | MCS_CJRQ = 14, /* Channel Join Request */ | ||
42 | MCS_CJCF = 15, /* Channel Join Confirm */ | ||
43 | MCS_SDRQ = 25, /* Send Data Request */ | ||
44 | MCS_SDIN = 26 /* Send Data Indication */ | ||
45 | }; | ||
46 | |||
47 | #define MCS_CONNECT_INITIAL0x7f65 | ||
48 | #define MCS_CONNECT_RESPONSE0x7f66 | ||
49 | |||
50 | #define BER_TAG_BOOLEAN 1 | ||
51 | #define BER_TAG_INTEGER 2 | ||
52 | #define BER_TAG_OCTET_STRING4 | ||
53 | #define BER_TAG_RESULT 10 | ||
54 | #define MCS_TAG_DOMAIN_PARAMS0x30 | ||
55 | |||
56 | #define MCS_GLOBAL_CHANNEL1003 | ||
57 | |||
58 | /* RDP secure transport constants */ | ||
59 | #define SEC_RANDOM_SIZE 32 | ||
60 | #define SEC_MODULUS_SIZE64 | ||
61 | #define SEC_PADDING_SIZE8 | ||
62 | #define SEC_EXPONENT_SIZE4 | ||
63 | |||
64 | #define SEC_CLIENT_RANDOM0x0001 | ||
65 | #define SEC_ENCRYPT 0x0008 | ||
66 | #define SEC_LOGON_INFO 0x0040 | ||
67 | #define SEC_LICENCE_NEG 0x0080 | ||
68 | |||
69 | #define SEC_TAG_SRV_INFO0x0c01 | ||
70 | #define SEC_TAG_SRV_CRYPT0x0c02 | ||
71 | #define SEC_TAG_SRV_3 0x0c03 | ||
72 | |||
73 | #define SEC_TAG_CLI_INFO0xc001 | ||
74 | #define SEC_TAG_CLI_CRYPT0xc002 | ||
75 | |||
76 | #define SEC_TAG_PUBKEY 0x0006 | ||
77 | #define SEC_TAG_KEYSIG 0x0008 | ||
78 | |||
79 | #define SEC_RSA_MAGIC 0x31415352/* RSA1 */ | ||
80 | |||
81 | /* RDP licensing constants */ | ||
82 | #define LICENCE_TOKEN_SIZE10 | ||
83 | #define LICENCE_HWID_SIZE20 | ||
84 | #define LICENCE_SIGNATURE_SIZE16 | ||
85 | |||
86 | #define LICENCE_TAG_DEMAND0x0201 | ||
87 | #define LICENCE_TAG_AUTHREQ0x0202 | ||
88 | #define LICENCE_TAG_ISSUE0x0203 | ||
89 | #define LICENCE_TAG_REISSUE0x0204 | ||
90 | #define LICENCE_TAG_PRESENT0x0212 | ||
91 | #define LICENCE_TAG_REQUEST0x0213 | ||
92 | #define LICENCE_TAG_AUTHRESP0x0215 | ||
93 | #define LICENCE_TAG_RESULT0x02ff | ||
94 | |||
95 | #define LICENCE_TAG_USER0x000f | ||
96 | #define LICENCE_TAG_HOST0x0010 | ||
97 | |||
98 | /* RDP PDU codes */ | ||
99 | enum RDP_PDU_TYPE | ||
100 | { | ||
101 | RDP_PDU_DEMAND_ACTIVE = 1, | ||
102 | RDP_PDU_CONFIRM_ACTIVE = 3, | ||
103 | RDP_PDU_DEACTIVATE = 6, | ||
104 | RDP_PDU_DATA = 7 | ||
105 | }; | ||
106 | |||
107 | enum RDP_DATA_PDU_TYPE | ||
108 | { | ||
109 | RDP_DATA_PDU_UPDATE = 2, | ||
110 | RDP_DATA_PDU_CONTROL = 20, | ||
111 | RDP_DATA_PDU_POINTER = 27, | ||
112 | RDP_DATA_PDU_INPUT = 28, | ||
113 | RDP_DATA_PDU_SYNCHRONISE = 31, | ||
114 | RDP_DATA_PDU_BELL = 34, | ||
115 | RDP_DATA_PDU_LOGON = 38, | ||
116 | RDP_DATA_PDU_FONT2 = 39 | ||
117 | }; | ||
118 | |||
119 | enum RDP_CONTROL_PDU_TYPE | ||
120 | { | ||
121 | RDP_CTL_REQUEST_CONTROL = 1, | ||
122 | RDP_CTL_GRANT_CONTROL = 2, | ||
123 | RDP_CTL_DETACH = 3, | ||
124 | RDP_CTL_COOPERATE = 4 | ||
125 | }; | ||
126 | |||
127 | enum RDP_UPDATE_PDU_TYPE | ||
128 | { | ||
129 | RDP_UPDATE_ORDERS = 0, | ||
130 | RDP_UPDATE_BITMAP = 1, | ||
131 | RDP_UPDATE_PALETTE = 2, | ||
132 | RDP_UPDATE_SYNCHRONIZE = 3 | ||
133 | }; | ||
134 | |||
135 | enum RDP_POINTER_PDU_TYPE | ||
136 | { | ||
137 | RDP_POINTER_MOVE = 3, | ||
138 | RDP_POINTER_COLOR = 6, | ||
139 | RDP_POINTER_CACHED = 7 | ||
140 | }; | ||
141 | |||
142 | enum RDP_INPUT_DEVICE | ||
143 | { | ||
144 | RDP_INPUT_SYNCHRONIZE = 0, | ||
145 | RDP_INPUT_CODEPOINT = 1, | ||
146 | RDP_INPUT_VIRTKEY = 2, | ||
147 | RDP_INPUT_SCANCODE = 4, | ||
148 | RDP_INPUT_MOUSE = 0x8001 | ||
149 | }; | ||
150 | |||
151 | /* Device flags */ | ||
152 | #define KBD_FLAG_RIGHT 0x0001 | ||
153 | #define KBD_FLAG_EXT 0x0100 | ||
154 | #define KBD_FLAG_QUIET 0x1000 | ||
155 | #define KBD_FLAG_DOWN 0x4000 | ||
156 | #define KBD_FLAG_UP 0x8000 | ||
157 | |||
158 | /* These are for synchronization; not for keystrokes */ | ||
159 | #define KBD_FLAG_SCROLL 0x0001 | ||
160 | #define KBD_FLAG_NUMLOCK 0x0002 | ||
161 | #define KBD_FLAG_CAPITAL 0x0004 | ||
162 | |||
163 | /* See T.128 */ | ||
164 | #define RDP_KEYPRESS 0 | ||
165 | #define RDP_KEYRELEASE (KBD_FLAG_DOWN | KBD_FLAG_UP) | ||
166 | |||
167 | #define MOUSE_FLAG_MOVE 0x0800 | ||
168 | #define MOUSE_FLAG_BUTTON1 0x1000 | ||
169 | #define MOUSE_FLAG_BUTTON2 0x2000 | ||
170 | #define MOUSE_FLAG_BUTTON3 0x4000 | ||
171 | #define MOUSE_FLAG_BUTTON4 0x0280 | ||
172 | #define MOUSE_FLAG_BUTTON5 0x0380 | ||
173 | #define MOUSE_FLAG_DOWN 0x8000 | ||
174 | |||
175 | /* Raster operation masks */ | ||
176 | #define ROP2_S(rop3) (rop3 & 0xf) | ||
177 | #define ROP2_P(rop3) ((rop3 & 0x3) | ((rop3 & 0x30) >> 2)) | ||
178 | |||
179 | #define ROP2_COPY0xc | ||
180 | #define ROP2_XOR0x6 | ||
181 | #define ROP2_AND0x8 | ||
182 | #define ROP2_NXOR0x9 | ||
183 | #define ROP2_OR 0xe | ||
184 | |||
185 | #define MIX_TRANSPARENT0 | ||
186 | #define MIX_OPAQUE1 | ||
187 | |||
188 | #define TEXT2_VERTICAL 0x04 | ||
189 | #define TEXT2_IMPLICIT_X0x20 | ||
190 | |||
191 | /* RDP capabilities */ | ||
192 | #define RDP_CAPSET_GENERAL1 | ||
193 | #define RDP_CAPLEN_GENERAL0x18 | ||
194 | #define OS_MAJOR_TYPE_UNIX4 | ||
195 | #define OS_MINOR_TYPE_XSERVER7 | ||
196 | |||
197 | #define RDP_CAPSET_BITMAP2 | ||
198 | #define RDP_CAPLEN_BITMAP0x1C | ||
199 | |||
200 | #define RDP_CAPSET_ORDER3 | ||
201 | #define RDP_CAPLEN_ORDER0x58 | ||
202 | #define ORDER_CAP_NEGOTIATE2 | ||
203 | #define ORDER_CAP_NOSUPPORT4 | ||
204 | |||
205 | #define RDP_CAPSET_BMPCACHE4 | ||
206 | #define RDP_CAPLEN_BMPCACHE0x28 | ||
207 | |||
208 | #define RDP_CAPSET_CONTROL5 | ||
209 | #define RDP_CAPLEN_CONTROL0x0C | ||
210 | |||
211 | #define RDP_CAPSET_ACTIVATE7 | ||
212 | #define RDP_CAPLEN_ACTIVATE0x0C | ||
213 | |||
214 | #define RDP_CAPSET_POINTER8 | ||
215 | #define RDP_CAPLEN_POINTER0x08 | ||
216 | |||
217 | #define RDP_CAPSET_SHARE9 | ||
218 | #define RDP_CAPLEN_SHARE0x08 | ||
219 | |||
220 | #define RDP_CAPSET_COLCACHE10 | ||
221 | #define RDP_CAPLEN_COLCACHE0x08 | ||
222 | |||
223 | #define RDP_CAPSET_UNKNOWN13 | ||
224 | #define RDP_CAPLEN_UNKNOWN0x9C | ||
225 | |||
226 | #define RDP_SOURCE "MSTSC" | ||
227 | |||
228 | /* Logon flags */ | ||
229 | #define RDP_LOGON_NORMAL0x33 | ||
230 | #define RDP_LOGON_AUTO 0x8 | ||
231 | |||
232 | /* Keymap flags */ | ||
233 | #define MapRightShiftMask (1<<0) | ||
234 | #define MapLeftShiftMask (1<<1) | ||
235 | #define MapShiftMask (MapRightShiftMask | MapLeftShiftMask) | ||
236 | |||
237 | #define MapRightAltMask (1<<2) | ||
238 | #define MapLeftAltMask (1<<3) | ||
239 | #define MapAltGrMask MapRightAltMask | ||
240 | |||
241 | #define MapRightCtrlMask (1<<4) | ||
242 | #define MapLeftCtrlMask (1<<5) | ||
243 | #define MapCtrlMask (MapRightCtrlMask | MapLeftCtrlMask) | ||
244 | |||
245 | #define MapRightWinMask (1<<6) | ||
246 | #define MapLeftWinMask (1<<7) | ||
247 | #define MapWinMask (MapRightWinMask | MapLeftWinMask) | ||
248 | |||
249 | #define MapNumLockMask (1<<8) | ||
250 | #define MapCapsLockMask (1<<9) | ||
251 | |||
252 | #define MapLocalStateMask (1<<10) | ||
253 | |||
254 | #define MapInhibitMask (1<<11) | ||
255 | |||
256 | #define MASK_ADD_BITS(var, mask) (var |= mask) | ||
257 | #define MASK_REMOVE_BITS(var, mask) (var &= ~mask) | ||
258 | #define MASK_HAS_BITS(var, mask) ((var & mask)>0) | ||
259 | #define MASK_CHANGE_BIT(var, mask, active) (var = ((var & ~mask) | (active ? mask : 0))) | ||