Przeglądaj źródła

Add padding in `encrypt` and implement `decrypt`

DricomDragon 5 lat temu
rodzic
commit
bb3a1b808e
1 zmienionych plików z 7 dodań i 0 usunięć
  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
+