public ActionResult Index(AsymmetricModel model) { if (model.Action == "encrypt") { var plainTextAsBytes = Encoding.Unicode.GetBytes(model.PlainText); var recipientCertificate = LoadCertificate(model.RecipientThumbprint); var encryptionProvider = (RSACryptoServiceProvider)recipientCertificate.PublicKey.Key; byte[] cipherTextAsBytes = encryptionProvider.Encrypt(plainTextAsBytes, true); model.CipherText = Convert.ToBase64String(cipherTextAsBytes); model.PlainText = string.Empty; } else if (model.Action == "decrypt") { var cipherTextAsBytes = Convert.FromBase64String(model.CipherText); var recipientCertificate = LoadCertificate(model.RecipientThumbprint); var decryptionProvider = (RSACryptoServiceProvider)recipientCertificate.PrivateKey; byte[] plainTextAsBytes = decryptionProvider.Decrypt(cipherTextAsBytes, true); model.CipherText = string.Empty; model.PlainText = Encoding.Unicode.GetString(plainTextAsBytes); } ModelState.Clear(); return(View(model)); }
public ActionResult Index() { var model = new AsymmetricModel(); model.RecipientThumbprint = EncryptAndDecryptThumbprint; return(View(model)); }