|
@@ -16,3 +16,17 @@ pad block msg =
|
|
|
let gap = mod msgSize block in
|
|
|
let padding = block - gap in
|
|
|
msg ++ [padding | _ <- [1..padding] ]
|
|
|
+
|
|
|
+unpad::Message -> Message
|
|
|
+unpad m = reverse $ subunpad (-1) [] m
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+subunpad::Int -> Message -> Message -> Message
|
|
|
+subunpad _ [] [] = []
|
|
|
+subunpad (-1) ys (s:[]) = subunpad (s - 1) ys []
|
|
|
+subunpad (-1) ys (x:xs) = subunpad (-1) (x:ys) xs
|
|
|
+subunpad 0 ys _ = ys
|
|
|
+subunpad s (y:ys) _ = subunpad (s - 1) ys []
|