예제 #1
0
        public void CanGenerateKeyText()
        {
            ICryptoGraph crypto = new CryptographAes();

            var(iv, _) = crypto.GenerateKey();
            key.Length.Should().Be(44);
            iv.Length.Should().Be(24);
        }
예제 #2
0
        public void StringSyncTest(string path)
        {
            var          text    = File.ReadAllText(path);
            ICryptoGraph crypto  = new CryptographAes();
            var          iv      = crypto.GenerateIv();
            var          actual  = crypto.Encrypt(text, iv, key);
            var          decrypt = crypto.Decrypt(actual, iv, key);

            decrypt.Should().Be(text);
        }
예제 #3
0
        public void BytesSyncTest(string path)
        {
            var          data    = File.ReadAllBytes(path);
            ICryptoGraph crypto  = new CryptographAes();
            var          iv      = crypto.GenerateIv();
            var          actual  = crypto.Encrypt(data, iv, key);
            var          decrypt = crypto.Decrypt(actual, iv, key);

            decrypt.Should().BeEquivalentTo(data);
        }
예제 #4
0
        public async Task StringAsyncTest(string path)
        {
            var          text   = File.ReadAllText(path);
            ICryptoGraph crypto = new CryptographAes();
            var          iv     = crypto.GenerateIv();
            var          actual = await crypto.EncryptAsync(text, iv, key);

            var decrypt = await crypto.DecryptAsync(actual, iv, key);

            decrypt.Should().Be(text);
        }
예제 #5
0
        public async Task BytesAsyncTest(string path, string expected)
        {
            var          data   = File.ReadAllBytes(path);
            ICryptoGraph crypto = new CryptographAes();
            var          actual = await crypto.EncryptAsync(data, iv, key);

            actual.Should().BeEquivalentTo(File.ReadAllBytes(expected));
            var decrypt = await crypto.DecryptAsync(actual, iv, key);

            decrypt.Should().BeEquivalentTo(data);
        }