In blowfish-ctr mode, increment the counter in the correct order. Thanks to
[u/mdw/putty] / sshblowf.c
index a264c3c..0f00a77 100644 (file)
@@ -406,8 +406,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;
     }
@@ -573,7 +573,7 @@ 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"
 };
 
 #ifdef ENABLE_BLOWFISH_SSH2_CTR
@@ -581,7 +581,7 @@ 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