Develop and Download Open Source Software

Browse Subversion Repository

Annotation of /trunk/ttssh2/ttxssh/ttxssh.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 5927 - (hide annotations) (download) (as text)
Tue Aug 4 03:20:47 2015 UTC (8 years, 8 months ago) by doda
File MIME type: text/x-chdr
File size: 9604 byte(s)
LOG_LEVEL_NOTIFYとLOG_LEVEL_INFOを新設
http://osdn.jp/ticket/browse.php?group_id=1412&tid=35382

1 maya 3227 /*
2     Copyright (c) 1998-2001, Robert O'Callahan
3     All rights reserved.
4    
5     Redistribution and use in source and binary forms, with or without modification,
6     are permitted provided that the following conditions are met:
7    
8     Redistributions of source code must retain the above copyright notice, this list of
9     conditions and the following disclaimer.
10    
11     Redistributions in binary form must reproduce the above copyright notice, this list
12     of conditions and the following disclaimer in the documentation and/or other materials
13     provided with the distribution.
14    
15     The name of Robert O'Callahan may not be used to endorse or promote products derived from
16     this software without specific prior written permission.
17    
18     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS'' AND
19     ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
20     OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
21     THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
22     EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
23     SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
24     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
25     OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
26     SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27     */
28    
29     /*
30     This code is copyright (C) 1998-1999 Robert O'Callahan.
31     See LICENSE.TXT for the license.
32     */
33    
34     #ifndef __TTXSSH_H
35     #define __TTXSSH_H
36    
37     #pragma warning(3 : 4035)
38    
39     #ifndef NO_INET6
40     #include <winsock2.h>
41     #include <ws2tcpip.h>
42     /* actual body of in6addr_any and in6addr_loopback is disappeared?? */
43     #undef IN6_IS_ADDR_LOOPBACK
44     #define IN6_IS_ADDR_LOOPBACK(a) \
45     ((*(unsigned int *)(&(a)->s6_addr[0]) == 0) && \
46     (*(unsigned int *)(&(a)->s6_addr[4]) == 0) && \
47     (*(unsigned int *)(&(a)->s6_addr[8]) == 0) && \
48     (*(unsigned int *)(&(a)->s6_addr[12]) == ntohl(1)))
49     /* work around for MS Platform SDK Oct 2000 */
50     #include <malloc.h> /* prevent of conflict stdlib.h */
51     #endif /* NO_INET6 */
52     #include <stdlib.h>
53     #include <crtdbg.h>
54    
55     #include "i18n.h"
56 maya 3295 #include "ttlib.h"
57 maya 3227
58     typedef struct _TInstVar FAR * PTInstVar;
59    
60     #include "util.h"
61     #include "pkt.h"
62     #include "ssh.h"
63     #include "auth.h"
64     #include "crypt.h"
65     #include "hosts.h"
66     #include "fwd.h"
67    
68     #include <openssl/dh.h>
69 maya 4314 #include <openssl/ec.h>
70 maya 3227 #include <openssl/evp.h>
71     #include "buffer.h"
72    
73     /* tttypes.h �����`���������� EM �}�N���� openssl/rsa.h (OpenSSL 0.9.8)�������v���g�^�C�v������
74     * �������������d�����������������A�r���h�G���[�������B���L3�w�b�_��include���u�����L�����������B
75     * (2005.7.9 yutaka)
76     */
77     #include "teraterm.h"
78     #include "tttypes.h"
79     #include "ttplugin.h"
80    
81     HANDLE hInst; /* Instance handle of TTXSSH.DLL */
82    
83     #define ID_SSHSCPMENU 52110
84     #define ID_SSHSETUPMENU 52310
85     #define ID_SSHAUTHSETUPMENU 52320
86     #define ID_SSHFWDSETUPMENU 52330
87     #define ID_SSHKEYGENMENU 52340
88     #define ID_ABOUTMENU 52910
89    
90     #define ID_SSHAUTH 62501
91     #define ID_SSHUNKNOWNHOST 62502
92 maya 4330 #define ID_SSHDIFFERENTKEY 62503
93 maya 3227 #define ID_SSHASYNCMESSAGEBOX 62504
94    
95     #define OPTION_NONE 0
96     #define OPTION_CLEAR 1
97     #define OPTION_REPLACE 2
98    
99     /*
100 yutakapon 5620 * DisablePopupMessage �p���r�b�g���`
101     */
102     #define POPUP_MSG_default 0
103     #define POPUP_MSG_FWD_received_data (1 << 0)
104    
105 yutakapon 5849
106 yutakapon 5620 /*
107 yutakapon 5849 * Host key rotation
108     */
109 doda 5887 #define SSH_UPDATE_HOSTKEYS_NO 0
110     #define SSH_UPDATE_HOSTKEYS_YES 1
111     #define SSH_UPDATE_HOSTKEYS_ASK 2
112 yutakapon 5901 #define SSH_UPDATE_HOSTKEYS_MAX 3
113 yutakapon 5849
114    
115     /*
116 maya 3227 These are the fields that WOULD go in Tera Term's 'ts' structure, if
117     we could put them there.
118     */
119     typedef struct _TS_SSH {
120     BOOL Enabled;
121     int CompressionLevel; /* 0 = NONE, else 1-9 */
122     char DefaultUserName[256];
123    
124     /* this next option is a string of digits. Each digit represents a
125     cipher. The first digit is the most preferred cipher, and so on.
126     The digit SSH_CIPHER_NONE signifies that any ciphers after it are
127     disabled. */
128     char CipherOrder[SSH_CIPHER_MAX+1];
129    
130     char KnownHostsFiles[2048];
131     int DefaultAuthMethod;
132     char DefaultRhostsLocalUserName[256];
133     char DefaultRhostsHostPrivateKeyFile[1024];
134     char DefaultRSAPrivateKeyFile[1024];
135    
136     char DefaultForwarding[2048];
137     BOOL TryDefaultAuth;
138    
139     int LogLevel; /* 0 = NONE, 100 = Verbose */
140     int WriteBufferSize;
141    
142     int ssh_protocol_version; // SSH version (2004.10.11 yutaka)
143     int ssh_heartbeat_overtime; // SSH heartbeat(keepalive) (2004.12.11 yutaka)
144     // whether password will permanently store on heap memory (2006.8.5 yutaka)
145     int remember_password;
146    
147     // try auth with "none" method for disable unsupported on dialog (2007.9.24 maya)
148     BOOL CheckAuthListFirst;
149    
150     // Enable connection to the server that has RSA key length less than 768 bit (2008.9.11 maya)
151     BOOL EnableRsaShortKeyServer;
152    
153     // Enable Agent forwarding
154     BOOL ForwardAgent;
155 maya 4229
156     // Confirm Agent forwarding
157     BOOL ForwardAgentConfirm;
158 yutakapon 4367
159     // KEX order(derived from teraterm.ini)
160     char KexOrder[KEX_DH_MAX+1];
161     char HostKeyOrder[KEY_MAX+1];
162     char MacOrder[HMAC_MAX+1];
163     char CompOrder[COMP_MAX+1];
164 doda 4531
165     BOOL VerifyHostKeyDNS;
166 doda 5261
167     int IconID;
168 yutakapon 5620
169     int DisablePopupMessage;
170 doda 5793
171     char X11Display[128];
172 yutakapon 5839
173 yutakapon 5901 int UpdateHostkeys;
174 doda 5900
175     int GexMinimalGroupSize;
176 maya 3227 } TS_SSH;
177    
178     typedef struct _TInstVar {
179     PTTSet ts;
180     PComVar cv;
181    
182     /* shared memory for settings across instances. Basically it's
183     a cache for the INI file.*/
184     TS_SSH FAR * ts_SSH;
185    
186     int fatal_error;
187     int showing_err;
188     char FAR * err_msg;
189    
190     Tconnect Pconnect;
191     Trecv Precv;
192     Tsend Psend;
193     TWSAAsyncSelect PWSAAsyncSelect;
194     TWSAGetLastError PWSAGetLastError;
195    
196     PReadIniFile ReadIniFile;
197     PWriteIniFile WriteIniFile;
198     PParseParam ParseParam;
199    
200 doda 4463 HMENU FileMenu;
201    
202 maya 3227 SOCKET socket;
203     HWND NotificationWindow;
204     unsigned int notification_msg;
205     long notification_events;
206     HICON OldSmallIcon;
207     HICON OldLargeIcon;
208    
209     BOOL hostdlg_activated;
210     BOOL hostdlg_Enabled;
211    
212     int protocol_major;
213     int protocol_minor;
214    
215     PKTState pkt_state;
216     SSHState ssh_state;
217     AUTHState auth_state;
218     CRYPTState crypt_state;
219     HOSTSState hosts_state;
220     FWDState fwd_state;
221    
222     /* The settings applied to the current session. The user may change
223     the settings but usually we don't want that to affect the session
224     in progress (race conditions). So user setup changes usually
225     modify the 'settings' field below. */
226     TS_SSH session_settings;
227    
228     /* our copy of the global settings. This is synced up with the shared
229     memory only when we do a ReadIniFile or WriteIniFile
230     (i.e. the user loads or saves setup) */
231     TS_SSH settings;
232    
233     // SSH2
234     DH *kexdh;
235     char server_version_string[128];
236     char client_version_string[128];
237     buffer_t *my_kex;
238     buffer_t *peer_kex;
239 maya 4378 kex_algorithm kex_type; // KEX algorithm
240     ssh_keytype hostkey_type;
241 maya 3227 SSHCipher ctos_cipher;
242     SSHCipher stoc_cipher;
243 maya 4378 hmac_type ctos_hmac;
244     hmac_type stoc_hmac;
245     compression_type ctos_compression;
246     compression_type stoc_compression;
247 maya 3227 int we_need;
248     int key_done;
249     int rekeying;
250     char *session_id;
251     int session_id_len;
252     Newkeys ssh2_keys[MODE_MAX];
253     EVP_CIPHER_CTX evpcip[MODE_MAX];
254     int userauth_success;
255     int shell_id;
256     /*int remote_id;*/
257     int session_nego_status;
258     /*
259     unsigned int local_window;
260     unsigned int local_window_max;
261     unsigned int local_consumed;
262     unsigned int local_maxpacket;
263     unsigned int remote_window;
264     unsigned int remote_maxpacket;
265     */
266     int client_key_bits;
267     int server_key_bits;
268     int kexgex_min;
269     int kexgex_bits;
270     int kexgex_max;
271     int ssh2_autologin;
272     int ask4passwd;
273     SSHAuthMethod ssh2_authmethod;
274     char ssh2_username[MAX_PATH];
275     char ssh2_password[MAX_PATH];
276     char ssh2_keyfile[MAX_PATH];
277     time_t ssh_heartbeat_tick;
278     HANDLE ssh_heartbeat_thread;
279     int keyboard_interactive_password_input;
280     int userauth_retry_count;
281     buffer_t *decomp_buffer;
282     char *ssh2_authlist;
283     BOOL tryed_ssh2_authlist;
284     HWND ssh_hearbeat_dialog;
285    
286     /* Pageant �������M�p */
287     unsigned char *pageant_key;
288     unsigned char *pageant_curkey;
289     int pageant_keylistlen;
290     int pageant_keycount;
291     int pageant_keycurrent;
292     BOOL pageant_keyfinal;// SSH2 PK_OK ������������ TRUE ������
293    
294     // agent forward
295     BOOL agentfwd_enable;
296 doda 3579
297     BOOL origDisableTCPEchoCR;
298 yutakapon 3631
299     BOOL nocheck_known_hosts;
300 maya 4314
301     EC_KEY *ecdh_client_key;
302 doda 4559
303     int dns_key_check;
304 maya 3227 } TInstVar;
305    
306     #define LOG_LEVEL_FATAL 5
307     #define LOG_LEVEL_ERROR 10
308     #define LOG_LEVEL_URGENT 20
309     #define LOG_LEVEL_WARNING 30
310 doda 5927 #define LOG_LEVEL_NOTIFY 50
311     #define LOG_LEVEL_INFO 80
312 maya 3227 #define LOG_LEVEL_VERBOSE 100
313     #define LOG_LEVEL_SSHDUMP 200
314    
315     #define SSHv1(pvar) ((pvar)->protocol_major == 1)
316     #define SSHv2(pvar) ((pvar)->protocol_major == 2)
317    
318     void notify_established_secure_connection(PTInstVar pvar);
319 maya 5678 void notify_closed_connection(PTInstVar pvar, char FAR * send_msg);
320 maya 3227 void notify_nonfatal_error(PTInstVar pvar, char FAR * msg);
321 maya 5678 void notify_fatal_error(PTInstVar pvar, char FAR * msg, BOOL send_disconnect);
322 maya 3227 void notify_verbose_message(PTInstVar pvar, char FAR * msg, int level);
323    
324     void get_teraterm_dir_relative_name(char FAR * buf, int bufsize, char FAR * basename);
325     int copy_teraterm_dir_relative_path(char FAR * dest, int destsize, char FAR * basename);
326     void get_file_version(char *exefile, int *major, int *minor, int *release, int *build);
327     int uuencode(unsigned char *src, int srclen, unsigned char *target, int targsize);
328 yutakapon 5545 void arc4random_buf(void *_buf, size_t n);
329 maya 3227
330     #endif

Back to OSDN">Back to OSDN
ViewVC Help
Powered by ViewVC 1.1.26