Пример #1
0
        public void ShouldDecryptSecretWhenLoading()
        {
            var keeper = new SecretKeeper("KEY");

            var instance = TomlConfig
                           .FromString($"Password = \"{keeper.Encrypt("42")}\"")
                           .WithMasterKey("KEY")
                           .Read <ConfigWithSecret>();

            Check.That(instance.Password).IsEqualTo("42");
        }
Пример #2
0
        public void ShouldDoSecretRoundTrip()
        {
            var sc = new SecretKeeper(Security.GenerateKeyAsString());

            var iLovePink = "I love pink!";

            var cypher = sc.Encrypt(iLovePink);

            Check.That(sc.Decrypt(cypher))
            .IsEqualTo(iLovePink);
        }
Пример #3
0
        public void ShouldDecryptSecrets()
        {
            var key          = Security.GenerateKeyAsString();
            var secretKeeper = new SecretKeeper(key);
            var secret       = "MyVerySecretPassword";

            var instance = TomlConfig
                           .FromString($"MyPassword = \"{secretKeeper.Encrypt(secret)}\"")
                           .WithMasterKey(key)
                           .Read <ConfigWithSecret>();

            Check.That(instance.MyPassword)
            .IsEqualTo(secret);
        }
Пример #4
0
        private bool EncryptValue(string value, out string cypherValue)
        {
            var secretKeeper = new SecretKeeper(masterKey);

            if (secretKeeper.IsValidCypher(value, out var thumb, out _))
            {
                secretKeeper.AssertSecretThumbnail(thumb);
                cypherValue = null;
                return(false);
            }

            cypherValue = secretKeeper.Encrypt(value);
            return(true);
        }
Пример #5
0
        public void ShouldFailWithExceptionIfMasterKeyIsNotMatched()
        {
            var sc = new SecretKeeper(Security.GenerateKeyAsString());

            var iLovePink = "I love pink!";

            var cypher = sc.Encrypt(iLovePink);

            sc = new SecretKeeper(Security.GenerateKeyAsString());

            Check.ThatCode(() => sc.Decrypt(cypher))
            .Throws <TomlConfigurationException>()
            .AndWhichMessage()
            .Contains("thumbnail");
        }