X-Git-Url: http://git.euphorik.ch/?p=crypto_lab2.git;a=blobdiff_plain;f=labo2-fsharp%2FCryptoFile%2FUnitTests.fs;h=e43d7b4549b7e73559171b3ad88d127475ce9446;hp=fb46eb7c1feeaa41b2ca3eec95428d5679b402e2;hb=cec3ba87beeee522369d8f6fe85aa05cb9c78175;hpb=61a8b3492e89e883b23c158eb52ba2b070234df8 diff --git a/labo2-fsharp/CryptoFile/UnitTests.fs b/labo2-fsharp/CryptoFile/UnitTests.fs index fb46eb7..e43d7b4 100644 --- a/labo2-fsharp/CryptoFile/UnitTests.fs +++ b/labo2-fsharp/CryptoFile/UnitTests.fs @@ -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