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)); }
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)); }
public IActionResult RetrieveSensitiveData([FromQuery] string userName) { SensitiveDataViewModel sensitiveData = _userManager.GetSensitiveData(userName); return(View("StoreSensitiveData", sensitiveData)); }