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) {
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
+};