diff --git a/lib/main.dart b/lib/main.dart index 70850adcf..e17d0b130 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -1,7 +1,6 @@ import 'dart:async'; import 'package:background_fetch/background_fetch.dart'; -import 'package:computer/computer.dart'; import 'package:flutter/material.dart'; import 'package:in_app_purchase/in_app_purchase.dart'; import 'package:path_provider/path_provider.dart'; @@ -12,6 +11,7 @@ import 'package:photos/services/collections_service.dart'; import 'package:photos/services/memories_service.dart'; import 'package:photos/services/sync_service.dart'; import 'package:photos/ui/home_widget.dart'; +import 'package:photos/utils/crypto_util.dart'; import 'package:sentry/sentry.dart'; import 'package:super_logging/super_logging.dart'; import 'package:logging/logging.dart'; @@ -48,8 +48,8 @@ void _main() async { Future _init() async { _logger.info("Initializing..."); - Computer().turnOn(workersCount: 4); InAppPurchaseConnection.enablePendingPurchases(); + CryptoUtil.init(); await Configuration.instance.init(); await BillingService.instance.init(); await CollectionsService.instance.init(); diff --git a/lib/utils/crypto_util.dart b/lib/utils/crypto_util.dart index 1150e30fb..f6aca0694 100644 --- a/lib/utils/crypto_util.dart +++ b/lib/utils/crypto_util.dart @@ -96,6 +96,12 @@ void chachaDecrypt(Map args) { } class CryptoUtil { + static Computer _computer = Computer(); + + static init() { + _computer.turnOn(workersCount: 4); + } + static EncryptionResult encryptSync(Uint8List source, Uint8List key) { final nonce = Sodium.randombytesBuf(Sodium.cryptoSecretboxNoncebytes); @@ -117,7 +123,7 @@ class CryptoUtil { args["cipher"] = cipher; args["nonce"] = nonce; args["key"] = key; - return Computer().compute(cryptoSecretboxOpenEasy, param: args); + return _computer.compute(cryptoSecretboxOpenEasy, param: args); } static Uint8List decryptSync( @@ -162,7 +168,7 @@ class CryptoUtil { args["sourceFilePath"] = sourceFilePath; args["destinationFilePath"] = destinationFilePath; args["key"] = key; - return Computer().compute(chachaEncryptFile, param: args); + return _computer.compute(chachaEncryptFile, param: args); } static Future decryptFile( @@ -176,7 +182,7 @@ class CryptoUtil { args["destinationFilePath"] = destinationFilePath; args["header"] = header; args["key"] = key; - return Computer().compute(chachaDecrypt, param: args); + return _computer.compute(chachaDecrypt, param: args); } static Uint8List generateKey() { @@ -203,14 +209,14 @@ class CryptoUtil { args["input"] = input; args["opsLimit"] = Sodium.cryptoPwhashOpslimitSensitive; args["memLimit"] = Sodium.cryptoPwhashMemlimitModerate; - return utf8.decode(await Computer().compute(cryptoPwhashStr, param: args)); + return utf8.decode(await _computer.compute(cryptoPwhashStr, param: args)); } static Future verifyHash(Uint8List input, String hash) async { final args = Map(); args["input"] = input; args["hash"] = utf8.encode(hash); - return await Computer().compute(cryptoPwhashStrVerify, param: args); + return await _computer.compute(cryptoPwhashStrVerify, param: args); } static Future generateKeyPair() async {