public static TSettings Decrypt <TSettings>(string encryptedResult, string privateKey)
            where TSettings : new()
        {
            var decryptedJson        = EncryptationHelper.Decrypt(encryptedResult, privateKey);
            var deserializedSettings = JsonConvert.DeserializeObject <TSettings>(decryptedJson);

            return(deserializedSettings);
        }
        public void Given_PreviouslyEncryptedTextAndPassphrase_When_DecryptInvoked_Then_DecryptedStringRetrived()
        {
            var text       = "TestText";
            var passphrase = Guid.NewGuid().ToString().Replace("-", "");

            var encryptedText = EncryptationHelper.Encrypt(text, passphrase);
            var decryptedText = EncryptationHelper.Decrypt(encryptedText, passphrase);

            Assert.AreEqual(text, decryptedText);
        }
        public void Given_JsonStringForDeserializeWithRandomKey_When_DecryptInvoked_Then_ObjectCouldBeRetrivedAfter()
        {
            var testClass = new TestClass {
                TestInt = 7, KnownDescription = "Desc", UnknownDescription = "Udesc"
            };
            var passphrase      = "TestRandomKey_ForTestingPurpose_ShouldWorkAtAnyCase=000=";
            var jsonClass       = JsonConvert.SerializeObject(testClass);
            var encryptedText   = EncryptationHelper.Encrypt(jsonClass, passphrase);
            var decryptedString = EncryptationHelper.Decrypt(encryptedText, passphrase);
            var decryptedClass  = JsonConvert.DeserializeObject <TestClass>(decryptedString);

            Assert.AreEqual(testClass.TestInt, decryptedClass.TestInt);
            Assert.AreEqual(testClass.KnownDescription, decryptedClass.KnownDescription);
            Assert.AreEqual(testClass.UnknownDescription, decryptedClass.UnknownDescription);
        }
        public void Given_JsonStringForDeserialize_When_DecryptInvoked_Then_ObjectCouldBeRetrivedAfter()
        {
            var testClass = new TestClass {
                TestInt = 7, KnownDescription = "Desc", UnknownDescription = "Udesc"
            };
            var passphrase      = Guid.NewGuid().ToString().Replace("-", "");
            var jsonClass       = JsonConvert.SerializeObject(testClass);
            var encryptedText   = EncryptationHelper.Encrypt(jsonClass, passphrase);
            var decryptedString = EncryptationHelper.Decrypt(encryptedText, passphrase);
            var decryptedClass  = JsonConvert.DeserializeObject <TestClass>(decryptedString);

            Assert.AreEqual(testClass.TestInt, decryptedClass.TestInt);
            Assert.AreEqual(testClass.KnownDescription, decryptedClass.KnownDescription);
            Assert.AreEqual(testClass.UnknownDescription, decryptedClass.UnknownDescription);
        }