Пример #1
0
        ///<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);
        }
Пример #2
0
        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);
        }
Пример #4
0
        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);
        }