[Ttssh2-commit] [5523] 秘密鍵ファイルが正常に生成できていなかった問題を修正した。

アーカイブの一覧に戻る

svnno****@sourc***** svnno****@sourc*****
2014年 3月 11日 (火) 13:44:22 JST


Revision: 5523
          http://sourceforge.jp/projects/ttssh2/scm/svn/commits/5523
Author:   yutakapon
Date:     2014-03-11 13:44:21 +0900 (Tue, 11 Mar 2014)
Log Message:
-----------
秘密鍵ファイルが正常に生成できていなかった問題を修正した。
TTSSH で生成した鍵ファイルを使って、OpenSSHクライアントとサーバ間で、
ユーザ認証が通ることを確認した。

Modified Paths:
--------------
    branches/ssh_ed25519/ttssh2/ttxssh/buffer.c
    branches/ssh_ed25519/ttssh2/ttxssh/buffer.h
    branches/ssh_ed25519/ttssh2/ttxssh/ttxssh.c

-------------- next part --------------
Modified: branches/ssh_ed25519/ttssh2/ttxssh/buffer.c
===================================================================
--- branches/ssh_ed25519/ttssh2/ttxssh/buffer.c	2014-03-11 03:12:56 UTC (rev 5522)
+++ branches/ssh_ed25519/ttssh2/ttxssh/buffer.c	2014-03-11 04:44:21 UTC (rev 5523)
@@ -58,12 +58,15 @@
 	}
 }
 
-// \x83o\x83b\x83t\x83@\x82̗̈\xE6\x8Ag\x92\xA3\x82݂̂\xF0\x8Ds\x82\xA4\x81B
-void buffer_append_space(buffer_t * buf, int size)
+// \x83o\x83b\x83t\x83@\x82̗̈\xE6\x8Ag\x92\xA3\x82\xF0\x8Ds\x82\xA4\x81B
+// \x83o\x83b\x83t\x83@\x82̃I\x83t\x83Z\x83b\x83g\x82͊g\x92\xA3\x95\xAA\x82\xBE\x82\xAF\x8C\xE3\x82\xEB\x82ɂ\xB8\x82\xEA\x82\xE9\x81B
+// return: \x8Ag\x92\xA3\x91O\x82̃o\x83b\x83t\x83@\x83|\x83C\x83\x93\x83^\x81[
+void *buffer_append_space(buffer_t * buf, int size)
 {
 	int n;
 	int ret = -1;
 	int newlen;
+	void *p;
 
 	n = buf->offset + size;
 	if (n < buf->maxlen) {
@@ -80,13 +83,18 @@
 		buf->maxlen = newlen;
 	}
 
-	return;
+	p = buf->buf + buf->offset;
+	buf->offset += size;
+	buf->len = buf->offset;
 
+	return (p);
+
 panic:
 	{
 	char *p = NULL;
 	*p = 0; // application fault
 	}
+	return (NULL);
 }
 
 int buffer_append(buffer_t * buf, char *ptr, int size)

Modified: branches/ssh_ed25519/ttssh2/ttxssh/buffer.h
===================================================================
--- branches/ssh_ed25519/ttssh2/ttxssh/buffer.h	2014-03-11 03:12:56 UTC (rev 5522)
+++ branches/ssh_ed25519/ttssh2/ttxssh/buffer.h	2014-03-11 04:44:21 UTC (rev 5523)
@@ -15,7 +15,7 @@
 void buffer_clear(buffer_t *buf);
 buffer_t *buffer_init(void);
 void buffer_free(buffer_t *buf);
-void buffer_append_space(buffer_t * buf, int size);
+void *buffer_append_space(buffer_t * buf, int size);
 int buffer_append(buffer_t *buf, char *ptr, int size);
 int buffer_append_length(buffer_t *msg, char *ptr, int size);
 void buffer_put_raw(buffer_t *msg, char *ptr, int size);

Modified: branches/ssh_ed25519/ttssh2/ttxssh/ttxssh.c
===================================================================
--- branches/ssh_ed25519/ttssh2/ttxssh/ttxssh.c	2014-03-11 03:12:56 UTC (rev 5522)
+++ branches/ssh_ed25519/ttssh2/ttxssh/ttxssh.c	2014-03-11 04:44:21 UTC (rev 5523)
@@ -4171,8 +4171,7 @@
 	buffer_put_int(encoded, buffer_len(b));
 
 	/* encrypt */
-	buffer_append_space(encoded, buffer_len(b) + authlen);
-	cp = buffer_ptr(encoded);
+	cp = buffer_append_space(encoded, buffer_len(b) + authlen);
 	if (EVP_Cipher(&cipher_ctx, cp, buffer_ptr(b), buffer_len(b)) == 0) {
 		//strncpy_s(errmsg, errmsg_len, "Key decrypt error", _TRUNCATE);
 		//free(decrypted);
@@ -4180,29 +4179,29 @@
 	}
 	cipher_cleanup_SSH2(&cipher_ctx);
 
-	len = 2 * buffer_len(encoded);
-	cp = malloc(len);
-	n = uuencode(buffer_ptr(encoded), buffer_len(encoded), (char *)cp, len);
-	if (n < 0) {
-		free(cp);
-		goto ed25519_error;
-	}
-
-	buffer_clear(blob);
-	buffer_append(blob, MARK_BEGIN, sizeof(MARK_BEGIN) - 1);
-	for (i = 0; i < n; i++) {
-		buffer_put_char(blob, cp[i]);
-		if (i % 70 == 69)
-			buffer_put_char(blob, '\n');
-	}
-	if (i % 70 != 69)
-		buffer_put_char(blob, '\n');
-	buffer_append(blob, MARK_END, sizeof(MARK_END) - 1);
-	free(cp);
-
-	len = buffer_len(blob);
-
-	// \x94閧\x8C\xAE\x82\xF0\x83t\x83@\x83C\x83\x8B\x82ɕۑ\xB6\x82\xB7\x82\xE9\x81B
+	len = 2 * buffer_len(encoded);
+	cp = malloc(len);
+	n = uuencode(buffer_ptr(encoded), buffer_len(encoded), (char *)cp, len);
+	if (n < 0) {
+		free(cp);
+		goto ed25519_error;
+	}
+
+	buffer_clear(blob);
+	buffer_append(blob, MARK_BEGIN, sizeof(MARK_BEGIN) - 1);
+	for (i = 0; i < n; i++) {
+		buffer_put_char(blob, cp[i]);
+		if (i % 70 == 69)
+			buffer_put_char(blob, '\n');
+	}
+	if (i % 70 != 69)
+		buffer_put_char(blob, '\n');
+	buffer_append(blob, MARK_END, sizeof(MARK_END) - 1);
+	free(cp);
+
+	len = buffer_len(blob);
+
+	// \x94閧\x8C\xAE\x82\xF0\x83t\x83@\x83C\x83\x8B\x82ɕۑ\xB6\x82\xB7\x82\xE9\x81B
 	fp = fopen(filename, "w");
 	if (fp == NULL) {
 		UTIL_get_lang_msg("MSG_SAVE_KEY_OPENFILE_ERROR", pvar,
@@ -4221,8 +4220,8 @@
 		MessageBox(dlg, uimsg, pvar->ts->UIMsg, MB_OK | MB_ICONEXCLAMATION);
 	}
 	fclose(fp);
-
 
+
 ed25519_error:
 	buffer_free(b);
 	buffer_free(kdf);



Ttssh2-commit メーリングリストの案内
アーカイブの一覧に戻る