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));
        }