diff options
author | hniksic <devnull@localhost> | 2004-01-27 17:02:26 -0800 |
---|---|---|
committer | hniksic <devnull@localhost> | 2004-01-27 17:02:26 -0800 |
commit | 2c0e2b0afa06c675a79239b49b92085daff4c7af (patch) | |
tree | 219c7ffbc8783cad40e43b739ddfb91574073797 /src/ftp-opie.c | |
parent | dc99d9a487fb8b99dcd70ac770ce0dd68cddaa07 (diff) | |
download | wget-2c0e2b0afa06c675a79239b49b92085daff4c7af.tar.gz |
[svn] Fixes by Christian Biere:
* progress.c (bar_set_params): Fixed syntax error when HAVE_ISATTY
was undefined.
* ftp.c (ftp_loop_internal): Allocate a larger buffer in case
"try" gets translated to something large. Ditto in http_loop in
http.c.
* http.c (response_header_copy): Don't write to buf[BUFSIZE].
* ftp-opie.c (skey_response): Eliminate unnecessary string
concatenation; just call gen_md5_update twice.
Diffstat (limited to 'src/ftp-opie.c')
-rw-r--r-- | src/ftp-opie.c | 21 |
1 files changed, 7 insertions, 14 deletions
diff --git a/src/ftp-opie.c b/src/ftp-opie.c index 9c4a1ea5..c32bcf05 100644 --- a/src/ftp-opie.c +++ b/src/ftp-opie.c @@ -2165,14 +2165,6 @@ btoe (char *store, const unsigned char *c) return store_beg; } -/* Calculate the MD5 checksum of SRC in one step. The MD5 context - must be declared as md5_ctx. */ -#define DO_MD5(src, len, dest) do { \ - gen_md5_init (md5_ctx); \ - gen_md5_update ((unsigned char *) (src), (len), md5_ctx); \ - gen_md5_finish (md5_ctx, (unsigned char *) (dest)); \ -} while (0) - /* Calculate the SKEY response, based on the sequence, seed (challenge), and the secret password. The calculated response is used instead of the real password when logging in to SKEY-enabled @@ -2211,18 +2203,19 @@ skey_response (int sequence, const char *seed, const char *pass) ALLOCA_MD5_CONTEXT (md5_ctx); uint32_t checksum[4]; - char *feed = (char *) alloca (strlen (seed) + strlen (pass) + 1); - strcpy (feed, seed); - strcat (feed, pass); - - DO_MD5 (feed, strlen (feed), checksum); + gen_md5_init (md5_ctx); + gen_md5_update ((const unsigned char *)seed, strlen(seed), md5_ctx); + gen_md5_update ((const unsigned char *)pass, strlen(pass), md5_ctx); + gen_md5_finish (md5_ctx, (unsigned char *)checksum); checksum[0] ^= checksum[2]; checksum[1] ^= checksum[3]; memcpy (key, checksum, 8); while (sequence-- > 0) { - DO_MD5 (key, 8, checksum); + gen_md5_init (md5_ctx); + gen_md5_update ((unsigned char *) key, 8, md5_ctx); + gen_md5_finish (md5_ctx, (unsigned char *) checksum); checksum[0] ^= checksum[2]; checksum[1] ^= checksum[3]; memcpy (key, checksum, 8); |