X-Git-Url: https://asedeno.scripts.mit.edu/gitweb/?a=blobdiff_plain;ds=sidebyside;f=sshsha.c;h=48cabb5c5c38c2f9383b016502b8579272eacb79;hb=9b15a8010102fc83dcd7eef78014a65f11619d63;hp=d47b1be937ddd078b675f7845deef6c154d8e80c;hpb=36a499a7f16065b08988063c1be063fd89dcf4d6;p=PuTTY.git diff --git a/sshsha.c b/sshsha.c index d47b1be9..48cabb5c 100644 --- a/sshsha.c +++ b/sshsha.c @@ -7,8 +7,6 @@ #include "ssh.h" -typedef unsigned int uint32; - /* ---------------------------------------------------------------------- * Core SHA algorithm: processes 16-word blocks into a message digest. */ @@ -201,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) { @@ -238,3 +244,11 @@ struct ssh_mac ssh_sha1 = { "hmac-sha1", 20 }; + +struct ssh_mac ssh_sha1_buggy = { + sha1_cskey_buggy, sha1_sckey_buggy, + sha1_generate, + sha1_verify, + "hmac-sha1", + 20 +};