public void EncryptionOfALookupFieldIsNotDeterministic()
        {
            const string input = "*****@*****.**";

            var keyRing = new KeyRing();
            var personalDataProtector = new AspNetCoreIdentityEncryption.PersonalDataProtector(keyRing);

            string output1 = personalDataProtector.Protect(input);
            string output2 = personalDataProtector.Protect(input);

            Assert.NotEqual(output1, output2);
        }
        public void EncryptThenDecryptProducesPlainText()
        {
            const string input = "*****@*****.**";

            var keyRing = new KeyRing();
            var keyId   = keyRing.CurrentKeyId;
            var personalDataProtector = new AspNetCoreIdentityEncryption.PersonalDataProtector(keyRing);

            var cipherText = personalDataProtector.Protect(input);
            var plainText  = personalDataProtector.Unprotect(cipherText);

            Assert.Equal(input, plainText);
        }
        public void EncryptionTwoDifferentPlainTextsDoesNotProduceTheSameResult()
        {
            const string input1 = "*****@*****.**";
            const string input2 = "*****@*****.**";

            var keyRing = new KeyRing();
            var personalDataProtector = new AspNetCoreIdentityEncryption.PersonalDataProtector(keyRing);

            string output1 = personalDataProtector.Protect(input1);
            string output2 = personalDataProtector.Protect(input2);

            Assert.NotEqual(output1, output2);
        }
        public void RoatingTheKeyRingDoesNotBreakDecryption()
        {
            const string input = "*****@*****.**";

            var keyRing = new KeyRing();
            var keyId   = keyRing.CurrentKeyId;
            var personalDataProtector = new AspNetCoreIdentityEncryption.PersonalDataProtector(keyRing);

            var cipherText = personalDataProtector.Protect(input);

            keyRing.CreateAndActivateNewKey();
            var plainText = personalDataProtector.Unprotect(cipherText);

            Assert.Equal(input, plainText);
        }