X-Git-Url: http://git.euphorik.ch/index.cgi?a=blobdiff_plain;f=labo2-fsharp%2FCryptoFile%2FTests.fs;fp=labo2-fsharp%2FCryptoFile%2FTests.fs;h=e1f933b1f2db6e651420b08fb73d42b2918c016c;hb=beda8d83dc421c479bdcf5ee626ec85ee8555a80;hp=0000000000000000000000000000000000000000;hpb=8ba0c13cac9a84ef690dd09b92b846e85b7b02dd;p=crypto_lab2.git diff --git a/labo2-fsharp/CryptoFile/Tests.fs b/labo2-fsharp/CryptoFile/Tests.fs new file mode 100644 index 0000000..e1f933b --- /dev/null +++ b/labo2-fsharp/CryptoFile/Tests.fs @@ -0,0 +1,31 @@ +namespace CryptoFile + +module Tests = + open System.Text + open System.Security.Cryptography + open Crypto + + let testRSA () = + let kpub, kpriv = generateRSAKeysPair + let plaintext = "Hello, World!" + printfn "plaintext: %A" plaintext + 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 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) + printfn "testRSASignature OK" + + let runAllTests () = + testRSA () + testRSASignature () \ No newline at end of file