public async Task <File> Handle(RegisterUserCommand request, CancellationToken cancellationToken) { await _validator.ValidateAndThrowAsync(request, null, cancellationToken); var keys = await _ecdsa.GetKeysAsync(); var encryptedPrivateKey = string.Empty; var encryptionResponse = _encryptor.Encrypt(keys.PrivateKey, request.PrivateKeyPassword.Sha256AsBytes()); if (encryptionResponse.Status == Status.Success) { encryptedPrivateKey = encryptionResponse.EncryptedText; } var user = new User { Username = request.Username, Password = request.Password.Sha512(), PublicKey = keys.PublicKey, PrivateKey = encryptedPrivateKey, PrivateKeyPassword = request.PrivateKeyPassword.Sha512() }; await _userRepository.AddAsync(user, cancellationToken); return(new File { Name = "private.sk" }); }
public BaseVM(IBlogConfig blogConfig, IHttpContextAccessor httpContextAccessor, IAesEncryptor aceEncryptor) { _blogConfig = blogConfig; _httpContextAccessor = httpContextAccessor; this._aceEncryptor = aceEncryptor; var data = new TokenValidateViewModel { SessionId = Guid.NewGuid(), Time = DateTime.Now.ToFileTime(), Token = CodeMazeConfiguration.TokenValidatePost }; MazeToken = _aceEncryptor.Encrypt(JsonConvert.SerializeObject(data)); if (_httpContextAccessor.HttpContext.Session.HasValue(SessionHelper.SessionLogin)) { UserClaim = _httpContextAccessor.HttpContext.Session.Get <UserClaim>(SessionHelper.SessionLogin); } }
public CreateUserResponse CreateUser(CreateUserRequest request) { var response = new CreateUserResponse(); using (var context = new DatabaseContext()) using (var transaction = context.Database.BeginTransaction()) { try { var user = context.Users.FirstOrDefault(x => _encryptor.Decrypt(x.UserToken) == request.User.UserToken); if (user == null) { context.Add(new UserRecord { UserToken = _encryptor.Encrypt(request.User.UserToken), Username = _encryptor.Encrypt(request.User.Username), Picture = _encryptor.Encrypt(request.User.Picture), Active = true }); context.SaveChanges(); transaction.Commit(); } else { if (user.Active) { throw new UserAlreadyExistsException("User has already been registered"); } user.UserToken = _encryptor.Encrypt(request.User.UserToken); user.Username = _encryptor.Encrypt(request.User.Username); user.Picture = _encryptor.Encrypt(request.User.Picture); user.Active = true; context.SaveChanges(); transaction.Commit(); } } catch (UserAlreadyExistsException exception) { transaction.Rollback(); response.AddError(new Error { Code = ErrorCodes.UserAlreadyExists, UserMessage = "User with that UserToken already exists.", TechnicalMessage = $"The following exception was thrown: {exception.Message}" }); } catch (Exception exception) { transaction.Rollback(); response.AddError(new Error { Code = ErrorCodes.DatabaseError, UserMessage = "Something went wrong when creating your account. Please try again later.", TechnicalMessage = $"The following exception was thrown: {exception.Message}" }); } } return(response); }
public string EncryptPassword(string clearPassword) { var str = _encryptionService.Encrypt(clearPassword); return(str); }