Explorar o código

Add padding in `encrypt` and implement `decrypt`

DricomDragon %!s(int64=5) %!d(string=hai) anos
pai
achega
bb3a1b808e
Modificáronse 1 ficheiros con 7 adicións e 0 borrados
  1. 7 0
      tp/rsa/main.hs

+ 7 - 0
tp/rsa/main.hs

@@ -85,3 +85,10 @@ encrypt e n bsize smsg =
 	let bmsg = makeBlocks bsize pmsg in
 	map (\m -> expMod m e n) bmsg
 
+decrypt::Int -> Int -> Int -> Message -> String
+decrypt d n bsize cmsg =
+	let bmsg = map (\c -> expMod c d n) cmsg in
+	let pmsg = splitBlocks bmsg in
+	let msg = unpad pmsg in
+	messageToString msg
+