Exemple #1
0
        public bool StoreSensitiveData(SensitiveDataViewModel sensitiveDataViewModel)
        {
            User user = _userRepository.GetUserByEmail(sensitiveDataViewModel.Email);

            byte[] phoneNumberNonce = CreateSalt(AeadAlgorithm.Aes256Gcm.NonceSize);
            byte[] creditCardNonce  = CreateSalt(AeadAlgorithm.Aes256Gcm.NonceSize);

            user.PhoneNumberEncrypted = EncryptSensitiveData(sensitiveDataViewModel.PhoneNumber, _key, phoneNumberNonce);
            user.PhoneNumberNonce     = phoneNumberNonce.ByteArrayToHexString();
            user.CreditCardEncrypted  = EncryptSensitiveData(sensitiveDataViewModel.CreditCard, _key, creditCardNonce);
            user.CreditCardNonce      = creditCardNonce.ByteArrayToHexString();

            return(_userRepository.UpdateSensitiveUserData(user));
        }
Exemple #2
0
        public IActionResult StoreSensitiveData(SensitiveDataViewModel sensitiveDataViewModel)
        {
            if (ModelState.IsValid)
            {
                if (_userManager.StoreSensitiveData(sensitiveDataViewModel))
                {
                    return(RedirectToAction("RetrieveSensitiveData", new { userName = sensitiveDataViewModel.Email }));
                }
                else
                {
                    return(RedirectToAction("Error", "Home", new { errorMessage = "Error occured while storing user sensitive data" }));
                }
            }

            return(View(sensitiveDataViewModel));
        }
Exemple #3
0
        public IActionResult RetrieveSensitiveData([FromQuery] string userName)
        {
            SensitiveDataViewModel sensitiveData = _userManager.GetSensitiveData(userName);

            return(View("StoreSensitiveData", sensitiveData));
        }