let testRSASignature () =
let kpub, kpriv = generateRSAKeysPair
let plaintext = "Lightspeed is too slow. We'll have to go right to ludicrous speed!"
- let sha256 = new SHA256Managed ()
+ use sha256 = new SHA256Managed ()
let signature = signRSA kpriv (sha256.ComputeHash (Encoding.UTF8.GetBytes plaintext))
assert verifySignRSA kpub (sha256.ComputeHash (Encoding.UTF8.GetBytes plaintext)) signature
assert not (verifySignRSA kpub (sha256.ComputeHash (Encoding.UTF8.GetBytes "Hello!")) signature)
let testAES () =
let plaintext = "There is no place like 127.0.0.1"
- let memory = new MemoryStream ()
+ use memory = new MemoryStream ()
let key = Crypto.rand 16
let iv = Crypto.rand 16
let input = encryptAES key iv memory
- let sw = new StreamWriter (input)
+ use 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)
+ use sr = new StreamReader (output)
assert (sr.ReadToEnd () = plaintext)
printfn "testAES OK"