X-Git-Url: http://git.euphorik.ch/?p=crypto_lab2.git;a=blobdiff_plain;f=labo2-fsharp%2FCryptoFileTests%2FTests.fs;fp=labo2-fsharp%2FCryptoFileTests%2FTests.fs;h=95ede04f5a57d0bb50943836c4ffdce5c4ea7ebb;hp=dd1b3e04ba9b5848d324f7784a8887cfce505adf;hb=2152b8499149b36929d0e51c6f1790c8f1167a71;hpb=0b7780e07ae1ab4d4c9caf70f66359398e6f0c35 diff --git a/labo2-fsharp/CryptoFileTests/Tests.fs b/labo2-fsharp/CryptoFileTests/Tests.fs index dd1b3e0..95ede04 100644 --- a/labo2-fsharp/CryptoFileTests/Tests.fs +++ b/labo2-fsharp/CryptoFileTests/Tests.fs @@ -24,10 +24,12 @@ let doSomeTests () = let decrypt () = API.decryptFile cipherFilename "." keySigPub keyCryptPriv - let writeByteToCipherFileAt byte position = - using (new FileStream (cipherFilename, FileMode.Open, FileAccess.Write)) + let incrementByteCipherFileAt position = + using (new FileStream (cipherFilename, FileMode.Open, FileAccess.ReadWrite)) (fun fs -> fs.Position <- position - fs.Write ([| byte |], 0, 1)) + let byte = fs.ReadByte () |> byte + fs.Position <- position + fs.Write ([| byte + 1uy |], 0, 1)) // Automatically modulo 256. encrypt () File.Delete plainFilename @@ -35,7 +37,7 @@ let doSomeTests () = assert (File.ReadAllText plainFilename = fileContent) printfn "== Altering the MAC..." - writeByteToCipherFileAt 0uy 0L + incrementByteCipherFileAt 0L try decrypt () assert false @@ -44,7 +46,7 @@ let doSomeTests () = printfn "== Altering the signature..." encrypt () - writeByteToCipherFileAt 0uy 32L + incrementByteCipherFileAt 32L try decrypt () assert false @@ -53,7 +55,7 @@ let doSomeTests () = printfn "== Altering the keys..." encrypt () - writeByteToCipherFileAt 0uy (32L + 256L) + incrementByteCipherFileAt (32L + 256L) try decrypt () assert false @@ -62,7 +64,7 @@ let doSomeTests () = printfn "== Altering the cyphering..." encrypt () - writeByteToCipherFileAt 0uy (32L + 256L + 256L) + incrementByteCipherFileAt (32L + 256L + 256L) try decrypt () assert false