Пример #1
0
    public static void DecryptBinaryReturnsTheCipherTextIfNotSurroundedByDoubleSquareBrackets()
    {
        var crypto = new FakeCrypto();

        var cipherText = new byte[] { 1, 2, 3 };

        var plainText = crypto.Decrypt(cipherText);

        plainText.Should().BeSameAs(cipherText);
    }
Пример #2
0
    public static void DecryptStringReturnsTheCipherTextIfNotSurroundedByDoubleSquareBrackets()
    {
        var crypto = new FakeCrypto();

        var cipherText = "Hello, world!";

        var plainText = crypto.Decrypt(cipherText);

        plainText.Should().BeSameAs(cipherText);
    }
Пример #3
0
    public static void DecryptBinaryRemovesDoubleSquareBrackets()
    {
        var crypto = new FakeCrypto();

        var cipherText = new byte[] { (int)'[', (int)'[', 1, 2, 3, (int)']', (int)']' };

        var plainText = crypto.Decrypt(cipherText);

        plainText.Should().BeEquivalentTo(new byte[] { 1, 2, 3 });
    }
Пример #4
0
    public static void EncryptStringAddsDoubleSquareBrackets()
    {
        var crypto = new FakeCrypto();

        var plainText = "Hello, world!";

        var cipherText = crypto.Encrypt(plainText);

        cipherText.Should().Be("[[Hello, world!]]");
    }
Пример #5
0
    public static void DecryptStringRemovesDoubleSquareBrackets()
    {
        var crypto = new FakeCrypto();

        var cipherText = "[[Hello, world!]]";

        var plainText = crypto.Decrypt(cipherText);

        plainText.Should().Be("Hello, world!");
    }
Пример #6
0
    public static void DecryptXmlWorks()
    {
        var fakeCrypto = new FakeCrypto();

        var xml = "<foo bar=\"[[123]]\"><baz>[[456]]</baz><baz>[[789]]</baz><qux>[[&lt;garply grault=\"abc\" /&gt;]]</qux></foo>";

        var decryptedXml = fakeCrypto.DecryptXml(xml, new[] { "/foo/@bar", "/foo/baz", "/foo/qux" });

        decryptedXml.Should().Be("<foo bar=\"123\"><baz>456</baz><baz>789</baz><qux><garply grault=\"abc\" /></qux></foo>");
    }
Пример #7
0
    public static void DecryptJsonWorks()
    {
        var fakeCrypto = new FakeCrypto();

        var json = "{\"foo\":\"[[\\\"abc\\\"]]\",\"bar\":\"[[123]]\",\"baz\":\"[[true]]\",\"qux\":\"[[[1,2,3]]]\",\"garply\":\"[[{\\\"grault\\\":\\\"xyz\\\"}]]\",\"fred\":\"[[null]]\"}";

        var decryptedJson = fakeCrypto.DecryptJson(json, new[] { "$.foo", "$.bar", "$.baz", "$.qux", "$.garply", "$.fred" });

        decryptedJson.Should().Be("{\"foo\":\"abc\",\"bar\":123,\"baz\":true,\"qux\":[1,2,3],\"garply\":{\"grault\":\"xyz\"},\"fred\":null}");
    }
Пример #8
0
    public static void DecryptJsonThrowsWhenJsonStringIsNull()
    {
        var fakeCrypto = new FakeCrypto();

        string json = null !;

        var act = () => fakeCrypto.DecryptJson(json, new[] { "$.foo", "$.bar", "$.baz", "$.qux", "$.garply", "$.fred" });

        act.Should().ThrowExactly <ArgumentNullException>();
    }
Пример #9
0
    public static void DecryptXmlThrowsWhenXmlStringIsNull()
    {
        var fakeCrypto = new FakeCrypto();

        string xml = null !;

        var act = () => fakeCrypto.DecryptXml(xml, new[] { "/foo/@bar", "/foo/baz", "/foo/qux" });

        act.Should().ThrowExactly <ArgumentNullException>();
    }
Пример #10
0
    public static void EncryptXmlThrowsWhenAnXPathItemIsNull()
    {
        var fakeCrypto = new FakeCrypto();

        var xml = "<foo bar=\"123\"><baz>456</baz><baz>789</baz><qux><garply grault=\"abc\" /></qux></foo>";

        string[] xpathsToEncrypt = { null ! };

        var act = () => fakeCrypto.EncryptXml(xml, xpathsToEncrypt);

        act.Should().ThrowExactly <ArgumentException>();
    }
Пример #11
0
    public static void DecryptJsonThrowsWhenAnJsonPathItemIsNull()
    {
        var fakeCrypto = new FakeCrypto();

        var json = "{\"foo\":\"[[\\\"abc\\\"]]\",\"bar\":\"[[123]]\",\"baz\":\"[[true]]\",\"qux\":\"[[[1,2,3]]]\",\"garply\":\"[[{\\\"grault\\\":\\\"xyz\\\"}]]\",\"fred\":\"[[null]]\"}";

        string[] jsonPathsToDecrypt = { null ! };

        var act = () => fakeCrypto.DecryptJson(json, jsonPathsToDecrypt);

        act.Should().ThrowExactly <ArgumentException>();
    }
Пример #12
0
    public static void EncryptJsonThrowsWhenAnJsonPathItemIsNull()
    {
        var fakeCrypto = new FakeCrypto();

        var json = "{\"foo\":\"abc\",\"bar\":123,\"baz\":true,\"qux\":[1,2,3],\"garply\":{\"grault\":\"xyz\"},\"fred\":null}";

        var jsonPathsToEncrypt = Array.Empty <string>();

        var act = () => fakeCrypto.EncryptJson(json, jsonPathsToEncrypt);

        act.Should().ThrowExactly <ArgumentException>();
    }
Пример #13
0
    public static void DecryptXmlThrowsWhenAnXPathItemIsNull()
    {
        var fakeCrypto = new FakeCrypto();

        var xml = "<foo bar=\"[[123]]\"><baz>[[456]]</baz><baz>[[789]]</baz><qux>[[&lt;garply grault=\"abc\" /&gt;]]</qux></foo>";

        string[] xpathsToDecrypt = { null ! };

        var act = () => fakeCrypto.DecryptXml(xml, xpathsToDecrypt);

        act.Should().ThrowExactly <ArgumentException>();
    }
Пример #14
0
    public static void EncryptXmlThrowsWhenXPathsToEncryptIsEmpty()
    {
        var fakeCrypto = new FakeCrypto();

        var xml = "<foo bar=\"123\"><baz>456</baz><baz>789</baz><qux><garply grault=\"abc\" /></qux></foo>";

        var xpathsToEncrypt = Array.Empty <string>();

        var act = () => fakeCrypto.EncryptXml(xml, xpathsToEncrypt);

        act.Should().ThrowExactly <ArgumentException>();
    }
Пример #15
0
    public static void EncryptJsonAndDecryptJsonCanTargetSpecificArrayElements()
    {
        var fakeCrypto = new FakeCrypto();

        var json = "{\"foo\":[\"abc\",\"xyz\"]}";
        var foo1 = "$.foo[1]";

        var encryptedJson = fakeCrypto.EncryptJson(json, foo1);

        encryptedJson.Should().Be($"{{\"foo\":[\"abc\",\"[[\\\"xyz\\\"]]\"]}}");

        var decryptedJson = fakeCrypto.DecryptJson(encryptedJson, foo1);

        decryptedJson.Should().Be(json);
    }
Пример #16
0
    public static void GetEncryptorReturnsInstanceThatAddsDoubleSquareBrackets()
    {
        var crypto = new FakeCrypto();

        var encryptor = crypto.GetEncryptor();

        var plainTextString = "Hello, world!";
        var plainTextBinary = new byte[] { 1, 2, 3 };

        var cipherTextString = encryptor.Encrypt(plainTextString);
        var cipherTextBinary = encryptor.Encrypt(plainTextBinary);

        cipherTextString.Should().Be("[[Hello, world!]]");
        cipherTextBinary.Should().BeEquivalentTo(new byte[] { (int)'[', (int)'[', 1, 2, 3, (int)']', (int)']' });
    }
Пример #17
0
    public static void GetDecryptorReturnsInstanceThatRemovesDoubleSquareBrackets()
    {
        var crypto = new FakeCrypto();

        var decryptor = crypto.GetDecryptor();

        var cipherTextString = "[[Hello, world!]]";
        var cipherTextBinary = new byte[] { (int)'[', (int)'[', 1, 2, 3, (int)']', (int)']' };

        var plainTextString = decryptor.Decrypt(cipherTextString);
        var plainTextBinary = decryptor.Decrypt(cipherTextBinary);

        plainTextString.Should().Be("Hello, world!");
        plainTextBinary.Should().BeEquivalentTo(new byte[] { 1, 2, 3 });
    }
Пример #18
0
    public static void EncryptJsonAndDecryptJsonWithRootJsonPathTargetTheWholeInputString(string json)
    {
        var fakeCrypto = new FakeCrypto();

        var root = "$";

        var encryptedJson = fakeCrypto.EncryptJson(json, root);

        encryptedJson.Should().NotBe(json);
        encryptedJson.Should().StartWith("\"").And.EndWith("\"");

        var decryptedJson = fakeCrypto.DecryptJson(encryptedJson, root);

        decryptedJson.Should().Be(json);
    }
Пример #19
0
    public static void CanDecryptReturnsTrue(string credentialName)
    {
        ICrypto crypto = new FakeCrypto();

        crypto.CanDecrypt(credentialName).Should().BeTrue();
    }