X-Git-Url: https://git.distorted.org.uk/~mdw/sgt/putty/blobdiff_plain/8d49ffb31ed5d20d3899e117f92f15d33b432344..e99bb8bfc8d2c1a47b6ae90ef43683d191c30f66:/sshblowf.c diff --git a/sshblowf.c b/sshblowf.c index 4db83ba1..e3b4f509 100644 --- a/sshblowf.c +++ b/sshblowf.c @@ -405,8 +405,8 @@ static void blowfish_msb_sdctr(unsigned char *blk, int len, PUT_32BIT_MSB_FIRST(blk, tmp ^ b[0]); tmp = GET_32BIT_MSB_FIRST(blk + 4); PUT_32BIT_MSB_FIRST(blk + 4, tmp ^ b[1]); - if ((iv0 = (iv0 + 1) & 0xffffffff) == 0) - iv1 = (iv1 + 1) & 0xffffffff; + if ((iv1 = (iv1 + 1) & 0xffffffff) == 0) + iv0 = (iv0 + 1) & 0xffffffff; blk += 8; len -= 8; } @@ -500,13 +500,11 @@ static void blowfish_key(void *handle, unsigned char *key) blowfish_setkey(ctx, key, 16); } -#ifndef ENABLE_BLOWFISH_SSH2_CTR static void blowfish256_key(void *handle, unsigned char *key) { BlowfishContext *ctx = (BlowfishContext *)handle; blowfish_setkey(ctx, key, 32); } -#endif static void blowfish_iv(void *handle, unsigned char *key) { @@ -552,14 +550,12 @@ static void blowfish_ssh2_decrypt_blk(void *handle, unsigned char *blk, blowfish_msb_decrypt_cbc(blk, len, ctx); } -#ifndef ENABLE_BLOWFISH_SSH2_CTR static void blowfish_ssh2_sdctr(void *handle, unsigned char *blk, int len) { BlowfishContext *ctx = (BlowfishContext *)handle; blowfish_msb_sdctr(blk, len, ctx); } -#endif const struct ssh_cipher ssh_blowfish_ssh1 = { blowfish_ssh1_make_context, blowfish_free_context, blowfish_sesskey, @@ -571,28 +567,18 @@ static const struct ssh2_cipher ssh_blowfish_ssh2 = { blowfish_make_context, blowfish_free_context, blowfish_iv, blowfish_key, blowfish_ssh2_encrypt_blk, blowfish_ssh2_decrypt_blk, "blowfish-cbc", - 8, 128, "Blowfish-128 CBC" + 8, 128, SSH_CIPHER_IS_CBC, "Blowfish-128 CBC" }; -#ifndef ENABLE_BLOWFISH_SSH2_CTR static const struct ssh2_cipher ssh_blowfish_ssh2_ctr = { blowfish_make_context, blowfish_free_context, blowfish_iv, blowfish256_key, blowfish_ssh2_sdctr, blowfish_ssh2_sdctr, "blowfish-ctr", - 8, 256, "Blowfish-256 SDCTR" + 8, 256, 0, "Blowfish-256 SDCTR" }; -#endif -/* - * "blowfish-ctr" is disabled because it hasn't had any interoperability - * testing, which is in turn because I couldn't find another implementation - * to test against. Once it's been tested, it can be enabled in standard - * builds. - */ static const struct ssh2_cipher *const blowfish_list[] = { -#ifndef ENABLE_BLOWFISH_SSH2_CTR &ssh_blowfish_ssh2_ctr, -#endif &ssh_blowfish_ssh2 };