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 5620 - (hide annotations) (download) (as text)
Thu Jun 26 12:48:19 2014 UTC (9 years, 9 months ago) by yutakapon
File MIME type: text/x-chdr
File size: 9239 byte(s)
チケット #33822 notify_nonfatal_errorの一部停止

ポート転送でローカルアプリケーションにデータ送信する処理で、送信失敗した場合の
エラーポップアップメッセージ(&ログ採取)を抑止することができる設定を追加した。
デフォルトは無効。

[TTSSH] @ TERATERM.INI
DisablePopupMessage=0

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     /*
106 maya 3227 These are the fields that WOULD go in Tera Term's 'ts' structure, if
107     we could put them there.
108     */
109     typedef struct _TS_SSH {
110     BOOL Enabled;
111     int CompressionLevel; /* 0 = NONE, else 1-9 */
112     char DefaultUserName[256];
113    
114     /* this next option is a string of digits. Each digit represents a
115     cipher. The first digit is the most preferred cipher, and so on.
116     The digit SSH_CIPHER_NONE signifies that any ciphers after it are
117     disabled. */
118     char CipherOrder[SSH_CIPHER_MAX+1];
119    
120     char KnownHostsFiles[2048];
121     int DefaultAuthMethod;
122     char DefaultRhostsLocalUserName[256];
123     char DefaultRhostsHostPrivateKeyFile[1024];
124     char DefaultRSAPrivateKeyFile[1024];
125    
126     char DefaultForwarding[2048];
127     BOOL TryDefaultAuth;
128    
129     int LogLevel; /* 0 = NONE, 100 = Verbose */
130     int WriteBufferSize;
131    
132     int ssh_protocol_version; // SSH version (2004.10.11 yutaka)
133     int ssh_heartbeat_overtime; // SSH heartbeat(keepalive) (2004.12.11 yutaka)
134     // whether password will permanently store on heap memory (2006.8.5 yutaka)
135     int remember_password;
136    
137     // try auth with "none" method for disable unsupported on dialog (2007.9.24 maya)
138     BOOL CheckAuthListFirst;
139    
140     // Enable connection to the server that has RSA key length less than 768 bit (2008.9.11 maya)
141     BOOL EnableRsaShortKeyServer;
142    
143     // Enable Agent forwarding
144     BOOL ForwardAgent;
145 maya 4229
146     // Confirm Agent forwarding
147     BOOL ForwardAgentConfirm;
148 yutakapon 4367
149     // KEX order(derived from teraterm.ini)
150     char KexOrder[KEX_DH_MAX+1];
151     char HostKeyOrder[KEY_MAX+1];
152     char MacOrder[HMAC_MAX+1];
153     char CompOrder[COMP_MAX+1];
154 doda 4531
155     BOOL VerifyHostKeyDNS;
156 doda 5261
157     int IconID;
158 yutakapon 5620
159     int DisablePopupMessage;
160 maya 3227 } TS_SSH;
161    
162     typedef struct _TInstVar {
163     PTTSet ts;
164     PComVar cv;
165    
166     /* shared memory for settings across instances. Basically it's
167     a cache for the INI file.*/
168     TS_SSH FAR * ts_SSH;
169    
170     int fatal_error;
171     int showing_err;
172     char FAR * err_msg;
173    
174     Tconnect Pconnect;
175     Trecv Precv;
176     Tsend Psend;
177     TWSAAsyncSelect PWSAAsyncSelect;
178     TWSAGetLastError PWSAGetLastError;
179    
180     PReadIniFile ReadIniFile;
181     PWriteIniFile WriteIniFile;
182     PParseParam ParseParam;
183    
184 doda 4463 HMENU FileMenu;
185    
186 maya 3227 SOCKET socket;
187     HWND NotificationWindow;
188     unsigned int notification_msg;
189     long notification_events;
190     HICON OldSmallIcon;
191     HICON OldLargeIcon;
192    
193     BOOL hostdlg_activated;
194     BOOL hostdlg_Enabled;
195    
196     int protocol_major;
197     int protocol_minor;
198    
199     PKTState pkt_state;
200     SSHState ssh_state;
201     AUTHState auth_state;
202     CRYPTState crypt_state;
203     HOSTSState hosts_state;
204     FWDState fwd_state;
205    
206     /* The settings applied to the current session. The user may change
207     the settings but usually we don't want that to affect the session
208     in progress (race conditions). So user setup changes usually
209     modify the 'settings' field below. */
210     TS_SSH session_settings;
211    
212     /* our copy of the global settings. This is synced up with the shared
213     memory only when we do a ReadIniFile or WriteIniFile
214     (i.e. the user loads or saves setup) */
215     TS_SSH settings;
216    
217     // SSH2
218     DH *kexdh;
219     char server_version_string[128];
220     char client_version_string[128];
221     buffer_t *my_kex;
222     buffer_t *peer_kex;
223 maya 4378 kex_algorithm kex_type; // KEX algorithm
224     ssh_keytype hostkey_type;
225 maya 3227 SSHCipher ctos_cipher;
226     SSHCipher stoc_cipher;
227 maya 4378 hmac_type ctos_hmac;
228     hmac_type stoc_hmac;
229     compression_type ctos_compression;
230     compression_type stoc_compression;
231 maya 3227 int we_need;
232     int key_done;
233     int rekeying;
234     char *session_id;
235     int session_id_len;
236     Newkeys ssh2_keys[MODE_MAX];
237     EVP_CIPHER_CTX evpcip[MODE_MAX];
238     int userauth_success;
239     int shell_id;
240     /*int remote_id;*/
241     int session_nego_status;
242     /*
243     unsigned int local_window;
244     unsigned int local_window_max;
245     unsigned int local_consumed;
246     unsigned int local_maxpacket;
247     unsigned int remote_window;
248     unsigned int remote_maxpacket;
249     */
250     int client_key_bits;
251     int server_key_bits;
252     int kexgex_min;
253     int kexgex_bits;
254     int kexgex_max;
255     int ssh2_autologin;
256     int ask4passwd;
257     SSHAuthMethod ssh2_authmethod;
258     char ssh2_username[MAX_PATH];
259     char ssh2_password[MAX_PATH];
260     char ssh2_keyfile[MAX_PATH];
261     time_t ssh_heartbeat_tick;
262     HANDLE ssh_heartbeat_thread;
263     int keyboard_interactive_password_input;
264     int userauth_retry_count;
265     buffer_t *decomp_buffer;
266     char *ssh2_authlist;
267     BOOL tryed_ssh2_authlist;
268     HWND ssh_hearbeat_dialog;
269    
270     /* Pageant �������M�p */
271     unsigned char *pageant_key;
272     unsigned char *pageant_curkey;
273     int pageant_keylistlen;
274     int pageant_keycount;
275     int pageant_keycurrent;
276     BOOL pageant_keyfinal;// SSH2 PK_OK ������������ TRUE ������
277    
278     // agent forward
279     BOOL agentfwd_enable;
280 doda 3579
281     BOOL origDisableTCPEchoCR;
282 yutakapon 3631
283     BOOL nocheck_known_hosts;
284 maya 4314
285     EC_KEY *ecdh_client_key;
286 doda 4559
287     int dns_key_check;
288 maya 3227 } TInstVar;
289    
290     #define LOG_LEVEL_FATAL 5
291     #define LOG_LEVEL_ERROR 10
292     #define LOG_LEVEL_URGENT 20
293     #define LOG_LEVEL_WARNING 30
294     #define LOG_LEVEL_VERBOSE 100
295     #define LOG_LEVEL_SSHDUMP 200
296    
297     #define SSHv1(pvar) ((pvar)->protocol_major == 1)
298     #define SSHv2(pvar) ((pvar)->protocol_major == 2)
299    
300     void notify_established_secure_connection(PTInstVar pvar);
301     void notify_closed_connection(PTInstVar pvar);
302     void notify_nonfatal_error(PTInstVar pvar, char FAR * msg);
303     void notify_fatal_error(PTInstVar pvar, char FAR * msg);
304     void notify_verbose_message(PTInstVar pvar, char FAR * msg, int level);
305    
306     void get_teraterm_dir_relative_name(char FAR * buf, int bufsize, char FAR * basename);
307     int copy_teraterm_dir_relative_path(char FAR * dest, int destsize, char FAR * basename);
308     void get_file_version(char *exefile, int *major, int *minor, int *release, int *build);
309     int uuencode(unsigned char *src, int srclen, unsigned char *target, int targsize);
310 yutakapon 5545 void arc4random_buf(void *_buf, size_t n);
311 maya 3227
312     #endif

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