/// <summary>
        /// TODO: Comment
        /// </summary>
        public void SaveDataExcecute()
        {
            //TODO: Save path in configuration
            string configurationPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments),
                                                    "SecureVault",
                                                    "settings",
                                                    "configuration.dat");

            ConfigurationHelper configHelper       = new ConfigurationHelper(configurationPath);
            SecureStringHelper  secureStringHelper = new SecureStringHelper();
            KeyHelper           keyHelper          = new KeyHelper();
            SaltGenerator       saltGenerator      = new SaltGenerator();

            //Generate random salt
            byte[] salt = saltGenerator.GenerateSalt();

            byte[] key = keyHelper.DeriveKey(secureStringHelper.SecureStringToString(this.Password), configHelper.GetSalt());

            CryptoHelper cryptoHelper = new CryptoHelper(key, salt);

            var plainTextBytes      = Encoding.UTF8.GetBytes(secureStringHelper.SecureStringToString(this.SecureData));
            var plainPasswordBase64 = Convert.ToBase64String(plainTextBytes);

            string encryptedValue = cryptoHelper.EncryptValue(plainPasswordBase64);

            configHelper.AddData(this.Name, encryptedValue, Convert.ToBase64String(salt));

            //Close the NewData window
            Application.Current.Windows.OfType <Window>().SingleOrDefault(x => x.IsActive).Close();
        }
Beispiel #2
0
        static void Main(string[] args)
        {
            KeyHelper keyHelper = new KeyHelper();

            byte[] key = keyHelper.DeriveKey("testPW", "I+e2/x4P+32RsAp+iZhQaw==");

            CryptoHelper cryptoHelper = new CryptoHelper(key, Convert.FromBase64String("I+e2/x4P+32RsAp+iZhQaw=="));

            var plainTextBytes = System.Text.Encoding.UTF8.GetBytes("test");
            var test           = System.Convert.ToBase64String(plainTextBytes);

            string encryptedValue = cryptoHelper.EncryptValue(test);
            string decryptedValue = cryptoHelper.DecryptValue(encryptedValue);

            Console.WriteLine(encryptedValue);
            Console.WriteLine(decryptedValue);
            Console.ReadKey();
        }
Beispiel #3
0
        /// <summary>
        /// TODO: Comment
        /// </summary>
        public void CopyPasswordExcecute(int?selectedID)
        {
            //TODO: Save path in configuration
            string configurationPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments),
                                                    "SecureVault",
                                                    "settings",
                                                    "configuration.dat");

            ConfigurationHelper configHelper       = new ConfigurationHelper(configurationPath);
            KeyHelper           keyHelper          = new KeyHelper();
            SecureStringHelper  secureStringHelper = new SecureStringHelper();

            selectedID = selectedID == -1 ? 0 : selectedID;

            byte[] key = keyHelper.DeriveKey(secureStringHelper.SecureStringToString(this.Password), configHelper.GetSalt());

            CryptoHelper cryptoHelper = new CryptoHelper(key, Convert.FromBase64String(this.SavedData[selectedID.Value].Salt));

            string decryptedValue = cryptoHelper.DecryptValue(this.SavedData[selectedID.Value].EncryptedValue);

            Clipboard.SetText(decryptedValue);
        }