open Crypto
let testRSA () =
- let kpub, kpriv = generateRSAKeysPair
+ let kpub, kpriv = generateRSAKeysPair ()
let plaintext = "Are you from the past?"
let cipherdata = encryptRSA kpub (Encoding.UTF8.GetBytes plaintext)
let decryptedData = decryptRSA kpriv cipherdata
printfn "testRSA OK"
let testRSASignature () =
- let kpub, kpriv = generateRSAKeysPair
+ 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"