///<inheritdoc/> public async Task <IEnumerable <Entity> > Get(CancellationToken cancellationToken = default) { List <Entity> entities = await _dbContext.Entities.AsNoTracking() .Where(e => e.CreatorId == CurrentUserId) .ToListAsync(); entities.ForEach(e => e.JsonObject = _dataProtection.Decrypt(e.JsonObject, PrivateKey)); return(entities); }
public async Task <LicensingSettings> GetLicensingSettingsAsync() { var licensing = await _appSettingsRepository.Query().AsNoTracking().FirstOrDefaultAsync(x => x.Id == ServerConstants.Licensing); if (licensing == null) { return(null); } var deserialized = JsonConvert.DeserializeObject <LicensingSettings>(licensing.Value); deserialized.ApiKey = _dataProtectionService.Decrypt(deserialized.ApiKey); return(deserialized); }
public async Task CheckPassphraseAsync(string vaultId, string workstationId) { var remoteDevice = await ConnectDevice(vaultId, workstationId).TimeoutAfter(30_000); await remoteDevice.RefreshDeviceInfo(); if (remoteDevice == null) { throw new HideezException(HideezErrorCode.HesFailedEstablishRemoteDeviceConnection); } var vault = await ValidateAndGetHardwareVaultAsync(vaultId, remoteDevice.AccessLevel.IsLinkRequired); var key = ConvertUtils.HexStringToBytes(_dataProtectionService.Decrypt(vault.MasterPassword)); await remoteDevice.CheckPassphrase(key); }
public async Task ExecuteRemoteTasks(string vaultId, Device remoteDevice, bool primaryAccountOnly) { _dataProtectionService.Validate(); var vault = await _hardwareVaultService.GetVaultByIdAsync(vaultId); if (vault == null) { throw new HESException(HESCode.HardwareVaultNotFound); } // Tasks query var query = _hardwareVaultTaskService .TaskQuery() .Include(t => t.HardwareVault) .Include(t => t.Account) .Where(t => t.HardwareVaultId == vaultId); if (primaryAccountOnly) { query = query.Where(x => x.AccountId == vault.Employee.PrimaryAccountId || x.Operation == TaskOperation.Primary); } query = query.OrderBy(x => x.CreatedAt).AsNoTracking(); var tasks = await query.ToListAsync(); while (tasks.Any()) { foreach (var task in tasks) { task.Password = _dataProtectionService.Decrypt(task.Password); task.OtpSecret = _dataProtectionService.Decrypt(task.OtpSecret); await ExecuteRemoteTask(remoteDevice, task); await TaskCompleted(task.Id); } tasks = await query.ToListAsync(); } await _hardwareVaultService.UpdateNeedSyncAsync(vault, false); await _synchronizationService.HardwareVaultStateChanged(vault.Id); }