Preliminary support for RSA user authentication in SSH2! Most of the
[u/mdw/putty] / sshsha.c
index 95d5259..2a07cc3 100644 (file)
--- a/sshsha.c
+++ b/sshsha.c
@@ -199,6 +199,14 @@ static void sha1_sckey(unsigned char *key) {
     sha1_key(&sha1_sc_mac_s1, &sha1_sc_mac_s2, key, 20);
 }
 
+static void sha1_cskey_buggy(unsigned char *key) {
+    sha1_key(&sha1_cs_mac_s1, &sha1_cs_mac_s2, key, 16);
+}
+
+static void sha1_sckey_buggy(unsigned char *key) {
+    sha1_key(&sha1_sc_mac_s1, &sha1_sc_mac_s2, key, 16);
+}
+
 static void sha1_do_hmac(SHA_State *s1, SHA_State *s2,
                          unsigned char *blk, int len, unsigned long seq,
                          unsigned char *hmac) {
@@ -229,10 +237,18 @@ static int sha1_verify(unsigned char *blk, int len, unsigned long seq) {
     return !memcmp(correct, blk+len, 20);
 }
 
-struct ssh_mac ssh_sha1 = {
+const struct ssh_mac ssh_sha1 = {
     sha1_cskey, sha1_sckey,
     sha1_generate,
     sha1_verify,
     "hmac-sha1",
     20
 };
+
+const struct ssh_mac ssh_sha1_buggy = {
+    sha1_cskey_buggy, sha1_sckey_buggy,
+    sha1_generate,
+    sha1_verify,
+    "hmac-sha1",
+    20
+};