Browse Source

blowfish: Fix CBC decryption with dst==src

Signed-off-by: Martin Storsjö <martin@martin.st>
tags/n1.1
Martin Storsjö 13 years ago
parent
commit
87f023f2c0
1 changed files with 5 additions and 5 deletions
  1. +5
    -5
      libavutil/blowfish.c

+ 5
- 5
libavutil/blowfish.c View File

@@ -388,15 +388,15 @@ void av_blowfish_crypt(AVBlowfish *ctx, uint8_t *dst, const uint8_t *src,

av_blowfish_crypt_ecb(ctx, &v0, &v1, decrypt);

AV_WB32(dst, v0);
AV_WB32(dst + 4, v1);

if (iv) {
for (i = 0; i < 8; i++)
dst[i] = dst[i] ^ iv[i];
v0 ^= AV_RB32(iv);
v1 ^= AV_RB32(iv + 4);
memcpy(iv, src, 8);
}

AV_WB32(dst, v0);
AV_WB32(dst + 4, v1);

src += 8;
dst += 8;
}


Loading…
Cancel
Save