Clean up + report update.
[crypto_lab2.git] / labo2-fsharp / CryptoFile / UnitTests.fs
index fb46eb7..e43d7b4 100644 (file)
@@ -8,23 +8,17 @@ module UnitTests =
 
     let testRSA () =
         let kpub, kpriv = generateRSAKeysPair
-
-        let plaintext = "Hello, World!"
-        printfn "plaintext: %A" plaintext
-
+        let plaintext = "Are you from the past?"
         let cipherdata = encryptRSA kpub (Encoding.UTF8.GetBytes plaintext)
-        printfn "cipherdata: (size: %A) %A" cipherdata.Length cipherdata
-
         let decryptedData = decryptRSA kpriv cipherdata
         let decryptedText = Encoding.UTF8.GetString decryptedData
-        printfn "decryptedtext: %A" decryptedText
 
         assert (plaintext = decryptedText)
         printfn "testRSA OK"
 
     let testRSASignature () =
         let kpub, kpriv = generateRSAKeysPair
-        let plaintext = "Hello, World!"
+        let plaintext = "Lightspeed is too slow. We'll have to go right to ludicrous speed!"
         let sha256 = new SHA256Managed ()
         let signature = signRSA kpriv (sha256.ComputeHash (Encoding.UTF8.GetBytes plaintext))
         assert verifySignRSA kpub (sha256.ComputeHash (Encoding.UTF8.GetBytes plaintext)) signature
@@ -33,17 +27,24 @@ module UnitTests =
 
     let testAES () =
         let plaintext = "There is no place like 127.0.0.1"
-        let output = new MemoryStream ()
-        let sr = new StreamReader (output)
+        let memory = new MemoryStream ()
         let key = Crypto.rand 32
         let iv = Crypto.rand 16
 
-        let input = encryptAES key iv output
+        let input = encryptAES key iv memory
         let sw = new StreamWriter (input)
-
         sw.Write plaintext
+        sw.Flush ()
+        input.FlushFinalBlock ()
+
+        memory.Position <- 0L
+        let output = decryptAES key iv memory
+        let sr = new StreamReader (output)
+
         assert (sr.ReadToEnd () = plaintext)
+        printfn "testAES OK"
 
     let runAllUnitTests () =
         testRSA ()
-        testRSASignature ()
\ No newline at end of file
+        testRSASignature ()
+        testAES ()
\ No newline at end of file