Example #1
0
        /// <summary>
        /// Checks if passed username is already used by another user
        /// </summary>
        /// <param name="username">Users username passed from register form</param>
        /// <returns>True - if username is not used,
        /// False - if username is used</returns>
        public static bool IsUsernameNotTaken(string username)
        {
            List <User> usersList = IOClass.ReadUsersList();

            foreach (User user in usersList)
            {
                if (user.GetUsername().Equals(username))
                {
                    return(false);
                }
            }
            return(true);
        }
Example #2
0
        /// <summary>
        /// Checks user's credentials and allows to log in
        /// </summary>
        /// <param name="login"></param>
        /// <param name="password"></param>
        /// <returns>True - if credentials were ok,
        /// False - if credentials were wrong</returns>
        public static bool Login(string login, string password)
        {
            List <User> usersList    = IOClass.ReadUsersList();
            string      loginHash    = DataCryptography.SHA512(login);
            string      passwordHash = DataCryptography.SHA512(password);

            foreach (User user in usersList)
            {
                if (user.GetUsername().Equals(loginHash))
                {
                    if (user.GetPassword().Equals(passwordHash))
                    {
                        return(true);
                    }
                }
            }
            return(false);
        }
Example #3
0
        /*
         * Stworzyć lepszą walidację zaznaczonych elementów listboxów by operacje nie były dozwolone na obiektach null, które powodują NullReferenceException
         */

        #region Constructor

        /// <summary>
        /// Sets default values and starts a new task which checks connected devices
        /// </summary>
        public MainWindow(string username)
        {
            InitializeComponent();

            DidUserLoggedUnauthorized        = true;
            DeviceListChanged                = false;
            deleteTrustedDeviceBtn.IsEnabled = false;
            labelUsername.Content            = "Hello " + username;
            RsaPrivateKey       = string.Empty;
            AuthorizationStatus = false;
            this.Username       = username;
            List <User> usersList      = IOClass.ReadUsersList();
            string      hashedUsername = DataCryptography.SHA512(username);

            bindFilesListBox();
            bindFoldersListBox();

            foreach (User user in usersList)
            {
                if (user.GetUsername().Equals(hashedUsername))
                {
                    LoggedUser = user;
                }
            }

            labelSecurityQuestion.Content = LoggedUser.GetQuestion();

            this.UserFilesFilepath          = @"C:\PAAK\" + username + @"\files.json";
            this.UserFoldersFilepath        = @"C:\PAAK\" + username + @"\folders.json";
            this.UserKeyDataFilepath        = @"C:\PAAK\" + username + @"\data.json";
            this.UserEncryptedFilesFilepath = @"C:\PAAK\" + username + @"\encryptedFiles.json";

            var uiSyncContext = SynchronizationContext.Current;

            var loopTask = Task.Run(() =>
            {
                while (true)
                {
                    Task.Delay(1000);

                    UpdateConnectedDevices();
                    if (DeviceListChanged)
                    {
                        if (ConnectedTrustedDevices != null)
                        {
                            if (ConnectedTrustedDevices.Count.Equals(1))
                            {
                                AuthorizationStatus = true;
                                if (RsaPrivateKey.Equals(string.Empty))
                                {
                                    RsaPrivateKey = IOClass.ReadPrivateKeyFromDeviceToString(ConnectedTrustedDevices[0].Path);
                                }
                            }
                            else
                            {
                                AuthorizationStatus = false;
                            }
                        }

                        uiSyncContext.Post((s) =>
                        {
                            UpdateDevicesStatus();
                        }, null);
                    }
                }
            });
        }