Example #1
0
        public Aes GenerateAes()
        {
            if (aes == null)
            {
                aes = Aes.Create();
                aes.KeySize = 256;
                aes.Key = EncryptionCore.ComputeSha256Hash(usernameHash + passwordHash);
                aes.GenerateIV();

                byte[] key = new byte[aes.Key.Length + aes.IV.Length + 2];
                key[0] = Convert.ToByte(aes.Key.Length);
                key[1] = Convert.ToByte(aes.IV.Length);

                int i;
                for (i = 2; i < aes.Key.Length + 2; i++)
                    key[i] = aes.Key[i - 2];

                for (; i < key.Length; i++)
                    key[i] = aes.IV[i - (aes.Key.Length + 2)];

                File.WriteAllBytes(GetAvailableFileName(), key);
                return aes;
            }

            return aes;
        }
Example #2
0
        public bool AuthenticateLoginDetails(string username, string password)
        {
            if (!Directory.Exists("users")) Directory.CreateDirectory("users");

            string usernameHash = Encoding.UTF8.GetString(EncryptionCore.ComputeSha256Hash(username));
            string passwordHash = Encoding.UTF8.GetString(EncryptionCore.ComputeSha256Hash(password));

            byte[] key = EncryptionCore.ComputeSha256Hash(usernameHash + passwordHash);
            if(key.SequenceEqual(aes.Key))
            {
                this.username = username;
                this.usernameHash = Encoding.UTF8.GetString(EncryptionCore.ComputeSha256Hash(username));
                this.passwordHash = Encoding.UTF8.GetString(EncryptionCore.ComputeSha256Hash(password));
                return true;
            }

            return false;
        }
Example #3
0
 public void SetPassword(string password)
 {
     passwordHash = Encoding.UTF8.GetString(EncryptionCore.ComputeSha256Hash(password));
 }
Example #4
0
 public void SetUsername(string username)
 {
     this.username = username;
     usernameHash = Encoding.UTF8.GetString(EncryptionCore.ComputeSha256Hash(username));
 }