projects
/
u
/
mdw
/
putty
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
SSH2 transport layer now enables encryption and MAC successfully for 3DES
[u/mdw/putty]
/
sshsha.c
diff --git
a/sshsha.c
b/sshsha.c
index
d47b1be
..
7c10a9a
100644
(file)
--- a/
sshsha.c
+++ b/
sshsha.c
@@
-1,3
+1,7
@@
+#include <stdarg.h> /* FIXME */
+#include <windows.h> /* FIXME */
+#include "putty.h" /* FIXME */
+
/*
* SHA1 hash algorithm. Used in SSH2 as a MAC, and the transform is
* also used as a `stirring' function for the PuTTY random number
/*
* SHA1 hash algorithm. Used in SSH2 as a MAC, and the transform is
* also used as a `stirring' function for the PuTTY random number
@@
-177,6
+181,11
@@
static void sha1_key(SHA_State *s1, SHA_State *s2,
unsigned char *key, int len) {
unsigned char foo[64];
int i;
unsigned char *key, int len) {
unsigned char foo[64];
int i;
+ {int j;
+ debug(("Key supplied is:\r\n"));
+ for (j=0; j<len; j++) debug((" %02X", key[j]));
+ debug(("\r\n"));
+ }
memset(foo, 0x36, 64);
for (i = 0; i < len && i < 64; i++)
memset(foo, 0x36, 64);
for (i = 0; i < len && i < 64; i++)
@@
-222,12
+231,32
@@
static void sha1_do_hmac(SHA_State *s1, SHA_State *s2,
}
static void sha1_generate(unsigned char *blk, int len, unsigned long seq) {
}
static void sha1_generate(unsigned char *blk, int len, unsigned long seq) {
+ {int i;
+ debug(("Gen HMAC on block len=%d seq=%d:\r\n", len, seq));
+ for (i=0; i<len; i++) debug((" %02X", blk[i]));
+ debug(("\r\n"));
+ }
sha1_do_hmac(&sha1_cs_mac_s1, &sha1_cs_mac_s2, blk, len, seq, blk+len);
sha1_do_hmac(&sha1_cs_mac_s1, &sha1_cs_mac_s2, blk, len, seq, blk+len);
+ {int i;
+ debug(("We compute HMAC as:\r\n"));
+ for (i=0; i<20; i++) debug((" %02X", blk[len+i]));
+ debug(("\r\n"));
+ }
}
static int sha1_verify(unsigned char *blk, int len, unsigned long seq) {
unsigned char correct[20];
}
static int sha1_verify(unsigned char *blk, int len, unsigned long seq) {
unsigned char correct[20];
+ {int i;
+ debug(("HMAC on block len=%d seq=%d:\r\n", len, seq));
+ for (i=0; i<len; i++) debug((" %02X", blk[i]));
+ debug(("\r\n"));
+ }
sha1_do_hmac(&sha1_sc_mac_s1, &sha1_sc_mac_s2, blk, len, seq, correct);
sha1_do_hmac(&sha1_sc_mac_s1, &sha1_sc_mac_s2, blk, len, seq, correct);
+ {int i;
+ debug(("We compute HMAC as:\r\n"));
+ for (i=0; i<20; i++) debug((" %02X", correct[i]));
+ debug(("\r\n"));
+ }
return !memcmp(correct, blk+len, 20);
}
return !memcmp(correct, blk+len, 20);
}