[ttssh2-commit] [10071] current_keys を kex.c から直接参照しないようにした。

Back to archive index
scmno****@osdn***** scmno****@osdn*****
2022年 7月 18日 (月) 00:40:28 JST


Revision: 10071
          https://osdn.net/projects/ttssh2/scm/svn/commits/10071
Author:   doda
Date:     2022-07-18 00:40:28 +0900 (Mon, 18 Jul 2022)
Log Message:
-----------
current_keys を kex.c から直接参照しないようにした。

current_keys をどこでセットしているか分かりづらかった為。

Modified Paths:
--------------
    trunk/ttssh2/ttxssh/kex.c
    trunk/ttssh2/ttxssh/kex.h
    trunk/ttssh2/ttxssh/ssh.c

-------------- next part --------------
Modified: trunk/ttssh2/ttxssh/kex.c
===================================================================
--- trunk/ttssh2/ttxssh/kex.c	2022-07-17 15:40:17 UTC (rev 10070)
+++ trunk/ttssh2/ttxssh/kex.c	2022-07-17 15:40:28 UTC (rev 10071)
@@ -64,9 +64,6 @@
 };
 
 
-extern SSHKeys current_keys[MODE_MAX];
-
-
 char* get_kex_algorithm_name(kex_algorithm kextype)
 {
 	const struct ssh2_kex_algorithm_t *ptr = ssh2_kex_algorithms;
@@ -683,8 +680,10 @@
 	return digest;
 }
 
-
-void kex_derive_keys(PTInstVar pvar, int need, u_char *hash, BIGNUM *shared_secret,
+/*
+ * \x8C\xAE\x8C\xF0\x8A\xB7\x82̌\x8B\x89ʂ\xA9\x82\xE7\x8Ae\x8C\xAE\x82𐶐\xAC\x82\xB5 newkeys \x82ɃZ\x83b\x83g\x82\xB5\x82Ė߂\xB7\x81B
+ */
+void kex_derive_keys(PTInstVar pvar, SSHKeys *newkeys, int need, u_char *hash, BIGNUM *shared_secret,
                      char *session_id, int session_id_len)
 {
 #define NKEYS	6
@@ -703,24 +702,13 @@
 		else
 			ctos = 0;
 
-#if 0
-		// free already allocated buffer (2004.12.27 yutaka)
-		// \x83L\x81[\x8Dč쐬\x8E\x9E\x82\xC9MAC corrupt\x82ƂȂ\xE9\x82̂ō폜\x81B(2005.1.5 yutaka)
-		if (current_keys[mode].enc.iv != NULL)
-			free(current_keys[mode].enc.iv);
-		if (current_keys[mode].enc.key != NULL)
-			free(current_keys[mode].enc.key);
-		if (current_keys[mode].mac.key != NULL)
-			free(current_keys[mode].mac.key);
-#endif
-
 		// setting
-		current_keys[mode].enc.iv  = keys[ctos ? 0 : 1];
-		current_keys[mode].enc.key = keys[ctos ? 2 : 3];
-		current_keys[mode].mac.key = keys[ctos ? 4 : 5];
+		newkeys[mode].enc.iv  = keys[ctos ? 0 : 1];
+		newkeys[mode].enc.key = keys[ctos ? 2 : 3];
+		newkeys[mode].mac.key = keys[ctos ? 4 : 5];
 
-		//debug_print(20 + mode*3, current_keys[mode]->enc.iv, 8);
-		//debug_print(21 + mode*3, current_keys[mode]->enc.key, 24);
-		//debug_print(22 + mode*3, current_keys[mode]->mac.key, 24);
+		//debug_print(20 + mode*3, newkeys[mode]->enc.iv, 8);
+		//debug_print(21 + mode*3, newkeys[mode]->enc.key, 24);
+		//debug_print(22 + mode*3, newkeys[mode]->mac.key, 24);
 	}
 }

Modified: trunk/ttssh2/ttxssh/kex.h
===================================================================
--- trunk/ttssh2/ttxssh/kex.h	2022-07-17 15:40:17 UTC (rev 10070)
+++ trunk/ttssh2/ttxssh/kex.h	2022-07-17 15:40:28 UTC (rev 10071)
@@ -134,7 +134,7 @@
                                unsigned int *hashlen);
 
 int dh_pub_is_valid(DH *dh, BIGNUM *dh_pub);
-void kex_derive_keys(PTInstVar pvar, int need, u_char *hash, BIGNUM *shared_secret,
+void kex_derive_keys(PTInstVar pvar, SSHKeys *newkeys, int need, u_char *hash, BIGNUM *shared_secret,
                      char *session_id, int session_id_len);
 
 #endif				/* KEX_H */

Modified: trunk/ttssh2/ttxssh/ssh.c
===================================================================
--- trunk/ttssh2/ttxssh/ssh.c	2022-07-17 15:40:17 UTC (rev 10070)
+++ trunk/ttssh2/ttxssh/ssh.c	2022-07-17 15:40:28 UTC (rev 10071)
@@ -4376,9 +4376,14 @@
 #endif
 }
 
-SSHKeys current_keys[MODE_MAX];
 
+/*
+ * \x8C\xAE\x8C\xF0\x8A\xB7\x82Ő\xB6\x90\xAC\x82\xB5\x82\xBD\x8C\xAE\x82̒u\x82\xAB\x8F\xEA\x81B\x8E\xC0\x8Dۂ̒ʐM\x82Ɏg\x82\xED\x82\xEA\x82\xE9\x82̂\xCDpvar->ssh2_keys[]\x82ł\xA0\x82\xE8\x81A\x82\xB1\x82\xB1\x82ɒu\x82\xA2\x82\xBD\x82\xBE\x82\xAF\x82ł͎g\x82\xED\x82\xEA\x82Ȃ\xA2\x81B
+ * \x97L\x8C\xF8\x82ɂ\xB7\x82\xE9\x83^\x83C\x83~\x83\x93\x83O\x82ŁApvar->ssh2_keys \x82ɃR\x83s\x81[\x82\xB7\x82\xE9\x81B
+ */
+static SSHKeys current_keys[MODE_MAX];
 
+
 #define write_buffer_file(buf,len) do_write_buffer_file(buf,len,__FILE__,__LINE__)
 
 
@@ -5478,7 +5483,7 @@
 	}
 
 cont:
-	kex_derive_keys(pvar, pvar->we_need, hash, share_key, pvar->session_id, pvar->session_id_len);
+	kex_derive_keys(pvar, current_keys, pvar->we_need, hash, share_key, pvar->session_id, pvar->session_id_len);
 
 	// KEX finish
 	begin_send_packet(pvar, SSH2_MSG_NEWKEYS, 0);


ttssh2-commit メーリングリストの案内
Back to archive index