コード例 #1
0
        public async Task TestSaveAsync()
        {
            var ioServiceMock = new Mock <IIOService>();

            var encryptedPersister = new EncryptedPersister(_symmetricAlgorithmCryptographyService, ioServiceMock.Object);

            await encryptedPersister.SaveAsync(filename, new Credentials { Username = Username, Password = Password });

            ioServiceMock.Verify(s => s.SaveAsync(filename, EncryptedText), Times.Once);

            ioServiceMock.VerifyNoOtherCalls();
        }
コード例 #2
0
        public async Task TestLoadAsync()
        {
            var ioServiceMock = new Mock <IIOService>();

            ioServiceMock.Setup(s => s.LoadAsync(filename)).Returns(Task.FromResult(EncryptedText));

            var encryptedPersister = new EncryptedPersister(_symmetricAlgorithmCryptographyService, ioServiceMock.Object);

            var credentials = await encryptedPersister.LoadAsync <Credentials>(filename);

            ioServiceMock.Verify(s => s.LoadAsync(filename), Times.Once);

            ioServiceMock.VerifyNoOtherCalls();

            Assert.AreEqual(Username, credentials.Username);
            Assert.AreEqual(Password, credentials.Password);
        }
コード例 #3
0
ファイル: Program.cs プロジェクト: tqhuy1811/Samples
        private async static Task RunAsync()
        {
            Console.WriteLine($"Plain Text: {PlainText}");

            OneWayEncrpytionService = new MD5CryptographyService();
            var hash = OneWayEncrpytionService.Encrypt(PlainText);
            Console.WriteLine($"MD5 Hashed: {hash}");

            OneWayEncrpytionService = new HashCryptographyService(new SHA1Managed());
            hash = OneWayEncrpytionService.Encrypt(PlainText);
            Console.WriteLine($"SHA1 Hashed: {hash}");

            var symmetricAlgorithmCryptographyService =
            new SymmetricAlgorithmCryptographyService(
                new AesCryptoServiceProvider
                {
                    Mode = CipherMode.CBC,
                    KeySize = 128,
                    Key = Encoding.UTF8.GetBytes("1234567890123456"),
                    IV = Encoding.UTF8.GetBytes("0234567890123456")
                });

            CryptographyService = symmetricAlgorithmCryptographyService;
            var encryptedText = CryptographyService.Encrypt(PlainText);
            Console.WriteLine($"AES Encrypted: {encryptedText}");

            var decryptedText = CryptographyService.Decrypt(encryptedText).Trim();
            Console.WriteLine($"AES Decrypted: {decryptedText}");

            const string filename = "Credentials.txt";
            var encryptedPersister = new EncryptedPersister(CryptographyService, new FileIOService());
            await encryptedPersister.SaveAsync(filename, new Credentials { Username = "******", Password = "******" });
            var credentials = await encryptedPersister.LoadAsync<Credentials>(filename);

            Console.WriteLine($"AES Encrypted File: {await File.ReadAllTextAsync(filename)}");
            Console.WriteLine($"AES Decrypted Credentials Username: {credentials.Username} Password: {credentials.Password}");
        }