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 {