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);
            }
        }
示例#2
0
        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);
        }