public async Task Post(UserModel userModel, string creditCard) { var user = await _userRepository.Get(userModel.Username); if (user != null) { var salt = PasswordEncryptor.CreateSalt(ChaCha20Poly1305.ChaCha20Poly1305.NonceSize); var key = _keyVault.Get(); var hashedCreditCard = PasswordEncryptor.EncryptSensitiveData(creditCard, salt, key); user.CreditCardHash = hashedCreditCard; user.CreditCardSalt = HexToBytesConverter.BytesArrayToHexString(salt); await _userRepository.Update(user); } }
public async Task <bool> Register(UserModel userModel) { var salt = PasswordEncryptor.CreateSalt(SaltLength); var hashedPassword = PasswordEncryptor.HashPassword(userModel.Password, salt); var user = new User { Id = Guid.NewGuid(), Email = userModel.Username, PasswordHash = hashedPassword, PasswordSalt = HexToBytesConverter.BytesArrayToHexString(salt) }; await _userRepository.Add(user); return(true); }