浏览代码

sparc64: Fix IV handling bug in des_sparc64_cbc_decrypt

The IV wasn't being propagated properly past the first loop
iteration.

This bug lived only because the crypto layer tests for
cbc(des) do not have any cases that go more than one loop.

Signed-off-by: David S. Miller <davem@davemloft.net>
David S. Miller 13 年之前
父节点
当前提交
65d5fcf5c2
共有 1 个文件被更改,包括 1 次插入0 次删除
  1. 1 0
      arch/sparc/crypto/des_asm.S

+ 1 - 0
arch/sparc/crypto/des_asm.S

@@ -168,6 +168,7 @@ ENTRY(des_sparc64_cbc_decrypt)
 	DES_ROUND(28, 30, 32, 32)
 	DES_ROUND(28, 30, 32, 32)
 	DES_IIP(32, 32)
 	DES_IIP(32, 32)
 	fxor	%f32, %f34, %f32
 	fxor	%f32, %f34, %f32
+	fsrc2	%f36, %f34
 	std	%f32, [%o1 + 0x00]
 	std	%f32, [%o1 + 0x00]
 	add	%o0, 0x08, %o0
 	add	%o0, 0x08, %o0
 	subcc	%o2, 0x08, %o2
 	subcc	%o2, 0x08, %o2