X-Git-Url: http://cvs.zerfleddert.de/cgi-bin/gitweb.cgi/proxmark3-svn/blobdiff_plain/f2d46122d30004b152f9c581a438b9939707bab9..b98827ffc3b2d8ced5e750d763f077c509641e5c:/client/lualibs/precalc.lua?ds=sidebyside

diff --git a/client/lualibs/precalc.lua b/client/lualibs/precalc.lua
index 284c8b62..ce58998a 100644
--- a/client/lualibs/precalc.lua
+++ b/client/lualibs/precalc.lua
@@ -35,19 +35,10 @@ shifts[9]= { 0xD, 0xB, 0x0, 0x6, 0x6, 0x0, 0xB, 0xD, 0xA, 0xC, 0x7, 0x1, 0x1, 0x
 shifts[10]= { 0xe, 0x1, 0x1, 0xe, 0x1, 0xe, 0xe, 0x1, 0x1, 0xe, 0xe, 0x1, 0xe, 0x1, 0x1, 0xe }
 
 local function ApplyPermutationAndShifts( pos, value, nibble)
-	local el2bytes = shifts[pos]
-	local el2 = el2bytes[nibble+1] --one indexed
-	local shiftInit = el2bytes[1]
-	local permrow   = perm[shiftInit+1]
-	local j = 1
-	for i = 1,16 do
-		if permrow[i] == el2 then
-			j = i
-			break 
-		end
-	end
-	local rsbytes = perm[value+1]
-	local rs = rsbytes[j]
+	local shiftbytes = shifts[pos]
+	local shiftElem = shiftbytes[nibble+1] --one indexed
+	local shiftOne = shiftbytes[1]
+	local rs = bit32.bxor(value, bit32.bxor(shiftOne, shiftElem))
 	return rs
 end