Exemple #1
0
        public void CanDecryptReturnsFalseForNonExistingCrypto()
        {
            ICrypto fooCrypto = CreateICrypto("foo");
            ICrypto barCrypto = CreateICrypto("bar");

            var compositeCrypto = new CompositeCrypto(new List <ICrypto> {
                fooCrypto, barCrypto
            });

            compositeCrypto.CanDecrypt("baz").Should().BeFalse();
        }
Exemple #2
0
        public void CanEncryptReturnsTrueForExistingCrypto()
        {
            ICrypto fooCrypto = CreateICrypto("foo");
            ICrypto barCrypto = CreateICrypto("bar");

            var compositeCrypto = new CompositeCrypto(new List <ICrypto> {
                fooCrypto, barCrypto
            });

            compositeCrypto.CanEncrypt("foo").Should().BeTrue();
            compositeCrypto.CanEncrypt("bar").Should().BeTrue();
        }
Exemple #3
0
        public void GetDecryptorThrowsWhenICryptoDoesntExist()
        {
            ICrypto fooCrypto = CreateICrypto("foo");
            ICrypto barCrypto = CreateICrypto("bar");

            var compositeCrypto = new CompositeCrypto(new List <ICrypto> {
                fooCrypto, barCrypto
            });

            Action action = () => compositeCrypto.GetDecryptor("baz");

            action.ShouldThrow <KeyNotFoundException>()
            .WithMessage("Unable to locate implementation of ICrypto that can locate a credential using credentialName: baz");
        }
Exemple #4
0
        public void DecryptSucceedsWithExistingICrypto()
        {
            ICrypto fooCrypto = CreateICrypto("foo");
            ICrypto barCrypto = CreateICrypto("bar");

            var compositeCrypto = new CompositeCrypto(new List <ICrypto> {
                fooCrypto, barCrypto
            });

            compositeCrypto.Decrypt("stuff", "foo").Should().Be("DecryptedString : foo");
            compositeCrypto.Decrypt(new byte[0], "foo").Should().BeEquivalentTo(Encoding.UTF8.GetBytes("foo"));
            compositeCrypto.Decrypt("stuff", "bar").Should().Be("DecryptedString : bar");
            compositeCrypto.Decrypt(new byte[0], "bar").Should().BeEquivalentTo(Encoding.UTF8.GetBytes("bar"));
        }
Exemple #5
0
    public static void EncryptThrowsWhenICryptoDoesntExist()
    {
        var fooCrypto = CreateICrypto("foo");
        var barCrypto = CreateICrypto("bar");

        var compositeCrypto = new CompositeCrypto(new List <ICrypto> {
            fooCrypto, barCrypto
        });

        var action = () => compositeCrypto.Encrypt("stuff", "baz");

        action.Should().Throw <KeyNotFoundException>()
        .WithMessage("Unable to locate implementation of ICrypto that can locate a credential using credentialName: baz");
    }
Exemple #6
0
    public static void EncryptSucceedsWithExistingICrypto()
    {
        var fooCrypto = CreateICrypto("foo");
        var barCrypto = CreateICrypto("bar");

        var compositeCrypto = new CompositeCrypto(new List <ICrypto> {
            fooCrypto, barCrypto
        });

        compositeCrypto.Encrypt("stuff", "foo").Should().Be("EncryptedString : foo");
        compositeCrypto.Encrypt(Array.Empty <byte>(), "foo").Should().BeEquivalentTo(Encoding.UTF8.GetBytes("foo"));
        compositeCrypto.Encrypt("stuff", "bar").Should().Be("EncryptedString : bar");
        compositeCrypto.Encrypt(Array.Empty <byte>(), "bar").Should().BeEquivalentTo(Encoding.UTF8.GetBytes("bar"));
    }
Exemple #7
0
        public void GetDecryptorSucceedsWithExistingICrypto()
        {
            ICrypto fooCrypto = CreateICrypto("foo");
            ICrypto barCrypto = CreateICrypto("bar");

            var compositeCrypto = new CompositeCrypto(new List <ICrypto> {
                fooCrypto, barCrypto
            });

            var fooEncryptor = compositeCrypto.GetDecryptor("foo");
            var barEncryptor = compositeCrypto.GetDecryptor("bar");

            fooEncryptor.Should().NotBeNull();
            barEncryptor.Should().NotBeNull();
            fooEncryptor.Should().NotBeSameAs(barEncryptor);
        }