[Ttssh2-commit] [4539] SSHFP 検証を ECDSA 鍵、および SHA256 ダイジェストに対応させた

Back to archive index

svnno****@sourc***** svnno****@sourc*****
2011年 7月 27日 (水) 17:50:14 JST


Revision: 4539
          http://sourceforge.jp/projects/ttssh2/svn/view?view=rev&revision=4539
Author:   doda
Date:     2011-07-27 17:50:14 +0900 (Wed, 27 Jul 2011)

Log Message:
-----------
SSHFP 検証を ECDSA 鍵、および SHA256 ダイジェストに対応させた
http://tools.ietf.org/html/draft-os-ietf-sshfp-ecdsa-sha2-00

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


-------------- next part --------------
Modified: trunk/ttssh2/ttxssh/hosts.c
===================================================================
--- trunk/ttssh2/ttxssh/hosts.c	2011-07-27 08:46:04 UTC (rev 4538)
+++ trunk/ttssh2/ttxssh/hosts.c	2011-07-27 08:50:14 UTC (rev 4539)
@@ -1670,21 +1670,27 @@
 	switch (key->type) {
 	case KEY_RSA:
 		hostkey_alg = SSHFP_KEY_RSA;
+		hostkey_dtype = SSHFP_HASH_SHA1;
 		break;
 	case KEY_DSA:
 		hostkey_alg = SSHFP_KEY_DSA;
+		hostkey_dtype = SSHFP_HASH_SHA1;
 		break;
-	// XXX KEY_ECDSA
+	case KEY_ECDSA256:
+	case KEY_ECDSA384:
+	case KEY_ECDSA521:
+		hostkey_alg = SSHFP_KEY_ECDSA;
+		hostkey_dtype = SSHFP_HASH_SHA256;
+		break;
 	default: // Un-supported algorighm
 		hostkey_alg = SSHFP_KEY_RESERVED;
+		hostkey_dtype = SSHFP_HASH_RESERVED;
 	}
 
 	if (hostkey_alg) {
-		hostkey_dtype = SSHFP_HASH_SHA1;
-		hostkey_digest = key_fingerprint_raw(key, SSH_FP_SHA1, &hostkey_dlen);
+		hostkey_digest = key_fingerprint_raw(key, hostkey_dtype, &hostkey_dlen);
 	}
 	else {
-		hostkey_dtype = SSHFP_HASH_RESERVED;
 		hostkey_digest = NULL;
 	}
 

Modified: trunk/ttssh2/ttxssh/key.c
===================================================================
--- trunk/ttssh2/ttxssh/key.c	2011-07-27 08:46:04 UTC (rev 4538)
+++ trunk/ttssh2/ttxssh/key.c	2011-07-27 08:50:14 UTC (rev 4539)
@@ -454,6 +454,9 @@
 	case SSH_FP_SHA1:
 		md = EVP_sha1();
 		break;
+	case SSH_FP_SHA256:
+		md = EVP_sha256();
+		break;
 	default:
 		md = EVP_md5();
 	}

Modified: trunk/ttssh2/ttxssh/ssh.h
===================================================================
--- trunk/ttssh2/ttxssh/ssh.h	2011-07-27 08:46:04 UTC (rev 4538)
+++ trunk/ttssh2/ttxssh/ssh.h	2011-07-27 08:50:14 UTC (rev 4539)
@@ -474,19 +474,22 @@
 };
 
 enum fp_type {
+	SSH_FP_MD5,
 	SSH_FP_SHA1,
-	SSH_FP_MD5
+	SSH_FP_SHA256
 };
 
 enum sshfp_types {
 	SSHFP_KEY_RESERVED,
 	SSHFP_KEY_RSA,
-	SSHFP_KEY_DSA
+	SSHFP_KEY_DSA,
+	SSHFP_KEY_ECDSA
 };
 
 enum sshfp_hashes {
 	SSHFP_HASH_RESERVED,
-	SSHFP_HASH_SHA1
+	SSHFP_HASH_SHA1,
+	SSHFP_HASH_SHA256
 };
 
 enum scp_dir {



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