Ejemplo n.º 1
0
        public MainViewModel(ISettingsService settingsService, ILog log)
        {
            this.settingsService = settingsService ?? throw new ArgumentNullException(nameof(settingsService));
            this.log             = log ?? throw new ArgumentNullException(nameof(log));

            string keySetting;

            if (settingsService.TryGetSetting(keySettingId, out keySetting) &&
                !string.IsNullOrWhiteSpace(keySetting))
            {
                key = keySetting;
            }
            else
            {
                AesParameters parameters = encryptor.GenerateAesParameters();
                var           keyBytes   = parameters.Key;
                key = Convert.ToBase64String(keyBytes);
                settingsService.SetSetting(keySettingId, key);
                settingsService.SetSetting(firstKeyId, key);
            }
        }
Ejemplo n.º 2
0
        public void ShouldEncryptAndDecrypt()
        {
            var aesEncryptor    = new AesEncryptor();
            var stringGenerator = new StringGenerator();

            for (int i = 0; i < 1000; i++)
            {
                string randomString = stringGenerator.CreateRandomString(random.Next(1, 30));

                var    parameters = aesEncryptor.GenerateAesParameters();
                byte[] keyBytes   = parameters.Key;
                byte[] ivBytes    = parameters.IV;

                byte[] encryptedBytes = aesEncryptor.EncryptString(randomString, keyBytes, ivBytes);

                Assert.IsNotNull(encryptedBytes);

                string unencrypted = aesEncryptor.DecryptBytes(encryptedBytes, keyBytes, ivBytes);

                Assert.AreEqual(randomString, unencrypted);
            }
        }