diff --git a/mobile/apps/auth/ios/Podfile.lock b/mobile/apps/auth/ios/Podfile.lock index cd67a9e4a7a..8dd3b20a575 100644 --- a/mobile/apps/auth/ios/Podfile.lock +++ b/mobile/apps/auth/ios/Podfile.lock @@ -91,9 +91,9 @@ PODS: - qr_code_scanner (0.2.0): - Flutter - MTBBarcodeScanner - - SDWebImage (5.21.2): - - SDWebImage/Core (= 5.21.2) - - SDWebImage/Core (5.21.2) + - SDWebImage (5.21.5): + - SDWebImage/Core (= 5.21.5) + - SDWebImage/Core (5.21.5) - Sentry/HybridSDK (8.46.0) - sentry_flutter (8.14.2): - Flutter @@ -255,7 +255,7 @@ SPEC CHECKSUMS: app_links: 76b66b60cc809390ca1ad69bfd66b998d2387ac7 connectivity_plus: cb623214f4e1f6ef8fe7403d580fdad517d2f7dd cupertino_http: 94ac07f5ff090b8effa6c5e2c47871d48ab7c86c - device_info_plus: 335f3ce08d2e174b9fdc3db3db0f4e3b1f66bd89 + device_info_plus: 21fcca2080fbcd348be798aa36c3e5ed849eefbe dir_utils: c668f14c9a72a5087d11c4722cb272de0a87ce10 DKImagePickerController: 946cec48c7873164274ecc4624d19e3da4c1ef3c DKPhotoGallery: b3834fecb755ee09a593d7c9e389d8b5d6deed60 @@ -281,7 +281,7 @@ SPEC CHECKSUMS: path_provider_foundation: 080d55be775b7414fd5a5ef3ac137b97b097e564 privacy_screen: 3159a541f5d3a31bea916cfd4e58f9dc722b3fd4 qr_code_scanner: d77f94ecc9abf96d9b9b8fc04ef13f611e5a147a - SDWebImage: 9f177d83116802728e122410fb25ad88f5c7608a + SDWebImage: e9c98383c7572d713c1a0d7dd2783b10599b9838 Sentry: da60d980b197a46db0b35ea12cb8f39af48d8854 sentry_flutter: 27892878729f42701297c628eb90e7c6529f3684 share_plus: 50da8cb520a8f0f65671c6c6a99b3617ed10a58a diff --git a/mobile/apps/auth/lib/core/configuration.dart b/mobile/apps/auth/lib/core/configuration.dart index 711af2eed8c..a3f0cce3be5 100644 --- a/mobile/apps/auth/lib/core/configuration.dart +++ b/mobile/apps/auth/lib/core/configuration.dart @@ -3,7 +3,7 @@ import 'dart:typed_data'; import 'package:ente_base/models/database.dart'; import 'package:ente_configuration/base_configuration.dart'; -import 'package:ente_crypto_dart/ente_crypto_dart.dart'; +import 'package:ente_crypto_api/ente_crypto_api.dart'; import 'package:flutter_secure_storage/flutter_secure_storage.dart'; import 'package:shared_preferences/shared_preferences.dart'; import 'package:sqflite_common_ffi/sqflite_ffi.dart'; diff --git a/mobile/apps/auth/lib/l10n/arb/app_cs.arb b/mobile/apps/auth/lib/l10n/arb/app_cs.arb index e0f6db01d5b..b5e2821fad9 100644 --- a/mobile/apps/auth/lib/l10n/arb/app_cs.arb +++ b/mobile/apps/auth/lib/l10n/arb/app_cs.arb @@ -578,7 +578,7 @@ "addNew": "Přidat nový", "selected": "vybrané", "moveMultipleToTrashMessage": "Opravdu chcete přesunout {count} položku(y) do koše?", - "nSelected": "{count, plural, one {} few {{count} vybráno} many {{count} vybráno}=1{1 vybráno} other{{count} vybráno}}", + "nSelected": "{count, plural, =1{1 vybráno} few {{count} vybráno} many {{count} vybráno} other{{count} vybráno}}", "@nSelected": { "description": "Text to indicate number of items selected", "placeholders": { @@ -589,7 +589,7 @@ } } }, - "pinnedCount": "{count, plural, one {} few {Připnuty {count} položky} many {Připnuto {count} položky}=1{Připnuta 1 položka} other{Připnuto {count} položek}}", + "pinnedCount": "{count, plural, =1{Připnuta 1 položka} few {Připnuty {count} položky} many {Připnuto {count} položky} other{Připnuto {count} položek}}", "@pinnedCount": { "description": "Text to show number of items pinned", "placeholders": { @@ -600,7 +600,7 @@ } } }, - "unpinnedCount": "{count, plural, one {} few {Odepnuly se {count} položky} many {Odepnul se {count} položky}=1{Odepnula se 1 položka} other{Odepnulo se {count} položek}}", + "unpinnedCount": "{count, plural, =1{Odepnula se 1 položka} few {Odepnuly se {count} položky} many {Odepnul se {count} položky} other{Odepnulo se {count} položek}}", "@unpinnedCount": { "description": "Text to show number of items unpinned", "placeholders": { diff --git a/mobile/apps/auth/lib/l10n/arb/app_fr.arb b/mobile/apps/auth/lib/l10n/arb/app_fr.arb index 21789c28c30..ff386dfa459 100644 --- a/mobile/apps/auth/lib/l10n/arb/app_fr.arb +++ b/mobile/apps/auth/lib/l10n/arb/app_fr.arb @@ -579,7 +579,7 @@ "addNew": "Ajouter un nouveau", "selected": "Sélectionné", "moveMultipleToTrashMessage": "Êtes-vous sûr de vouloir déplacer {count} éléments vers la corbeille ?", - "nSelected": "{count, plural, one {}=1{1 sélectionné} other{{count} sélectionné}}", + "nSelected": "{count, plural, =1{1 sélectionné} other{{count} sélectionné}}", "@nSelected": { "description": "Text to indicate number of items selected", "placeholders": { @@ -590,7 +590,7 @@ } } }, - "pinnedCount": "{count, plural, one {}=1{Épinglé 1 élément} other{Épinglé {count} objets}}", + "pinnedCount": "{count, plural, =1{Épinglé 1 élément} other{Épinglé {count} objets}}", "@pinnedCount": { "description": "Text to show number of items pinned", "placeholders": { @@ -601,7 +601,7 @@ } } }, - "unpinnedCount": "{count, plural, one {}=1{Désépinglé 1 élément} other{Désépinglé {count} objets}}", + "unpinnedCount": "{count, plural, =1{Désépinglé 1 élément} other{Désépinglé {count} objets}}", "@unpinnedCount": { "description": "Text to show number of items unpinned", "placeholders": { diff --git a/mobile/apps/auth/lib/l10n/arb/app_it.arb b/mobile/apps/auth/lib/l10n/arb/app_it.arb index e37c02163cd..2bdfd540004 100644 --- a/mobile/apps/auth/lib/l10n/arb/app_it.arb +++ b/mobile/apps/auth/lib/l10n/arb/app_it.arb @@ -577,7 +577,7 @@ "addNew": "Aggiungi nuovo", "selected": "selezionato", "moveMultipleToTrashMessage": "Sei sicuro di voler spostare {count} elementi nel cestino?", - "nSelected": "{count, plural, one {}=1{1 selezionato} other{{count} selezionati}}", + "nSelected": "{count, plural, =1{1 selezionato} other{{count} selezionati}}", "@nSelected": { "description": "Text to indicate number of items selected", "placeholders": { @@ -588,7 +588,7 @@ } } }, - "pinnedCount": "{count, plural, one {}=1{1 elemento fissato} other{{count} elementi fissati}}", + "pinnedCount": "{count, plural, =1{1 elemento fissato} other{{count} elementi fissati}}", "@pinnedCount": { "description": "Text to show number of items pinned", "placeholders": { diff --git a/mobile/apps/auth/lib/l10n/arb/app_pl.arb b/mobile/apps/auth/lib/l10n/arb/app_pl.arb index 01c36d1a305..e77944ef370 100644 --- a/mobile/apps/auth/lib/l10n/arb/app_pl.arb +++ b/mobile/apps/auth/lib/l10n/arb/app_pl.arb @@ -579,7 +579,7 @@ "addNew": "Dodaj nowy", "selected": "zaznaczone", "moveMultipleToTrashMessage": "Czy na pewno chcesz przenieść do kosza elementy: {count}?", - "nSelected": "{count, plural, one {} few {{count} zaznaczone} many {{count} zaznaczonych}=1{1 zaznaczony} other{{count} zaznaczone}}", + "nSelected": "{count, plural, =1{1 zaznaczony} few {{count} zaznaczone} many {{count} zaznaczonych} other{{count} zaznaczone}}", "@nSelected": { "description": "Text to indicate number of items selected", "placeholders": { @@ -590,7 +590,7 @@ } } }, - "pinnedCount": "{count, plural, one {} few {Przypięto {count} elementy} many {Przypięto {count} elementów}=1{Przypięto 1 element} other{Przypięto {count} elementów}}", + "pinnedCount": "{count, plural, =1{Przypięto 1 element} few {Przypięto {count} elementy} many {Przypięto {count} elementów} other{Przypięto {count} elementów}}", "@pinnedCount": { "description": "Text to show number of items pinned", "placeholders": { @@ -601,7 +601,7 @@ } } }, - "unpinnedCount": "{count, plural, one {} few {Odpięto {count} elementy} many {Odpięto {count} elementów}=1{Odpięto 1 element} other{Odpięto {count} elementów}}", + "unpinnedCount": "{count, plural, =1{Odpięto 1 element} few {Odpięto {count} elementy} many {Odpięto {count} elementów} other{Odpięto {count} elementów}}", "@unpinnedCount": { "description": "Text to show number of items unpinned", "placeholders": { diff --git a/mobile/apps/auth/lib/l10n/arb/app_sk.arb b/mobile/apps/auth/lib/l10n/arb/app_sk.arb index f77907b21f9..9215dff1b15 100644 --- a/mobile/apps/auth/lib/l10n/arb/app_sk.arb +++ b/mobile/apps/auth/lib/l10n/arb/app_sk.arb @@ -579,7 +579,7 @@ "addNew": "Pridať nový", "selected": "vybraný", "moveMultipleToTrashMessage": "Naozaj chcete presunúť {count} položiek(-u/-y) do koša?", - "nSelected": "{count, plural, one {} few {{count} vybraných} many {{count} vybrané}=1{1 vybraná} other{{count} vybraných}}", + "nSelected": "{count, plural, =1{1 vybraná} few {{count} vybraných} many {{count} vybrané} other{{count} vybraných}}", "@nSelected": { "description": "Text to indicate number of items selected", "placeholders": { @@ -590,7 +590,7 @@ } } }, - "pinnedCount": "{count, plural, one {} few {Pripli sa {count} položky} many {Pripli sa {count} položky}=1{Pripla sa 1 položka} other{Priplo sa {count} položiek}}", + "pinnedCount": "{count, plural, =1{Pripla sa 1 položka} few {Pripli sa {count} položky} many {Pripli sa {count} položky} other{Priplo sa {count} položiek}}", "@pinnedCount": { "description": "Text to show number of items pinned", "placeholders": { @@ -601,7 +601,7 @@ } } }, - "unpinnedCount": "{count, plural, one {} few {Odopli sa {count} položky} many {Odopli sa {count} položky}=1{Odopla sa 1 položka} other{Odoplo sa {count} položiek}}", + "unpinnedCount": "{count, plural, =1{Odopla sa 1 položka} few {Odopli sa {count} položky} many {Odopli sa {count} položky} other{Odoplo sa {count} položiek}}", "@unpinnedCount": { "description": "Text to show number of items unpinned", "placeholders": { diff --git a/mobile/apps/auth/lib/l10n/arb/app_sv.arb b/mobile/apps/auth/lib/l10n/arb/app_sv.arb index 83e175212e3..abac2cc1266 100644 --- a/mobile/apps/auth/lib/l10n/arb/app_sv.arb +++ b/mobile/apps/auth/lib/l10n/arb/app_sv.arb @@ -579,7 +579,7 @@ "addNew": "Lägg till ny", "selected": "vald", "moveMultipleToTrashMessage": "Är du säker på att du vill flytta {count} objekt till papperskorgen?", - "nSelected": "{count, plural, one {}=1{1 vald} other{{count} valda}}", + "nSelected": "{count, plural, =1{1 vald} other{{count} valda}}", "@nSelected": { "description": "Text to indicate number of items selected", "placeholders": { @@ -590,7 +590,7 @@ } } }, - "pinnedCount": "{count, plural, one {}=1{Fäst 1 objekt} other{Fäst {count} objekt}}", + "pinnedCount": "{count, plural, =1{Fäst 1 objekt} other{Fäst {count} objekt}}", "@pinnedCount": { "description": "Text to show number of items pinned", "placeholders": { @@ -601,7 +601,7 @@ } } }, - "unpinnedCount": "{count, plural, one {}=1{Fäst 1 objekt} other{Fäst {count} objekt}}", + "unpinnedCount": "{count, plural, =1{Fäst 1 objekt} other{Fäst {count} objekt}}", "@unpinnedCount": { "description": "Text to show number of items unpinned", "placeholders": { diff --git a/mobile/apps/auth/lib/l10n/arb/app_uk.arb b/mobile/apps/auth/lib/l10n/arb/app_uk.arb index da5b029e879..a126af8fed8 100644 --- a/mobile/apps/auth/lib/l10n/arb/app_uk.arb +++ b/mobile/apps/auth/lib/l10n/arb/app_uk.arb @@ -579,7 +579,7 @@ "addNew": "Додати нову", "selected": "вибрано", "moveMultipleToTrashMessage": "Наступну кількість кодів буде переміщено до смітника: {count}. Продовжити?", - "nSelected": "{count, plural, =1 {1 вибраний} one {{count} вибраний} few {{count} вибрані} many {{count} вибраних} other{{count} вибраних}}", + "nSelected": "{count, plural, =1 {1 вибраний} few {{count} вибрані} many {{count} вибраних} other{{count} вибраних}}", "@nSelected": { "description": "Text to indicate number of items selected", "placeholders": { @@ -590,7 +590,7 @@ } } }, - "pinnedCount": "{count, plural, =1 {Закріплено 1 елемент} one {Закріплено {count} елемент} few {Закріплено {count} елементи} many {Закріплено {count} елементів} other{Закріплено {count} елементів}}", + "pinnedCount": "{count, plural, =1 {Закріплено 1 елемент} few {Закріплено {count} елементи} many {Закріплено {count} елементів} other{Закріплено {count} елементів}}", "@pinnedCount": { "description": "Text to show number of items pinned", "placeholders": { @@ -601,7 +601,7 @@ } } }, - "unpinnedCount": "{count, plural, =1 {Відкріплено 1 елемент} one {Відкріплено {count} елемент} few {Відкріплено {count} елементи} many {Відкріплено {count} елементів} other{Відкріплено {count} елементів}}", + "unpinnedCount": "{count, plural, =1 {Відкріплено 1 елемент} few {Відкріплено {count} елементи} many {Відкріплено {count} елементів} other{Відкріплено {count} елементів}}", "@unpinnedCount": { "description": "Text to show number of items unpinned", "placeholders": { diff --git a/mobile/apps/auth/lib/main.dart b/mobile/apps/auth/lib/main.dart index c3100861478..dd4f8af3fd5 100644 --- a/mobile/apps/auth/lib/main.dart +++ b/mobile/apps/auth/lib/main.dart @@ -24,7 +24,8 @@ import 'package:ente_auth/ui/utils/icon_utils.dart'; import 'package:ente_auth/utils/directory_utils.dart'; import 'package:ente_auth/utils/platform_util.dart'; import 'package:ente_auth/utils/window_protocol_handler.dart'; -import 'package:ente_crypto_dart/ente_crypto_dart.dart'; +import 'package:ente_crypto_api/ente_crypto_api.dart'; +import 'package:ente_crypto_dart_adapter/ente_crypto_dart_adapter.dart'; import 'package:ente_lock_screen/lock_screen_settings.dart'; import 'package:ente_lock_screen/ui/app_lock.dart'; import 'package:ente_lock_screen/ui/lock_screen.dart'; @@ -71,6 +72,7 @@ Future initSystemTray() async { void main() async { WidgetsFlutterBinding.ensureInitialized(); + registerCryptoApi(const EnteCryptoDartAdapter()); if (PlatformUtil.isDesktop()) { await windowManager.ensureInitialized(); diff --git a/mobile/apps/auth/lib/services/authenticator_service.dart b/mobile/apps/auth/lib/services/authenticator_service.dart index 77f814d828d..a2eda627d5c 100644 --- a/mobile/apps/auth/lib/services/authenticator_service.dart +++ b/mobile/apps/auth/lib/services/authenticator_service.dart @@ -14,7 +14,7 @@ import 'package:ente_auth/models/authenticator/local_auth_entity.dart'; import 'package:ente_auth/services/preference_service.dart'; import 'package:ente_auth/store/authenticator_db.dart'; import 'package:ente_auth/store/offline_authenticator_db.dart'; -import 'package:ente_crypto_dart/ente_crypto_dart.dart'; +import 'package:ente_crypto_api/ente_crypto_api.dart'; import 'package:ente_events/event_bus.dart'; import 'package:ente_events/models/signed_in_event.dart'; import 'package:flutter/foundation.dart'; diff --git a/mobile/apps/auth/lib/services/local_backup_service.dart b/mobile/apps/auth/lib/services/local_backup_service.dart index 4b13a5011e3..86b40fc8a64 100644 --- a/mobile/apps/auth/lib/services/local_backup_service.dart +++ b/mobile/apps/auth/lib/services/local_backup_service.dart @@ -6,7 +6,7 @@ import 'package:dir_utils/dir_utils.dart'; import 'package:ente_auth/core/configuration.dart'; import 'package:ente_auth/models/export/ente.dart'; import 'package:ente_auth/store/code_store.dart'; -import 'package:ente_crypto_dart/ente_crypto_dart.dart'; +import 'package:ente_crypto_api/ente_crypto_api.dart'; import 'package:ente_events/event_bus.dart'; import 'package:ente_events/models/signed_out_event.dart'; import 'package:intl/intl.dart'; diff --git a/mobile/apps/auth/lib/ui/settings/account_section_widget.dart b/mobile/apps/auth/lib/ui/settings/account_section_widget.dart index cf6b2420e83..8d19ecc259b 100644 --- a/mobile/apps/auth/lib/ui/settings/account_section_widget.dart +++ b/mobile/apps/auth/lib/ui/settings/account_section_widget.dart @@ -13,7 +13,7 @@ import 'package:ente_auth/ui/home_page.dart'; import 'package:ente_auth/ui/settings/common_settings.dart'; import 'package:ente_auth/utils/dialog_util.dart'; import 'package:ente_auth/utils/navigation_util.dart'; -import 'package:ente_crypto_dart/ente_crypto_dart.dart'; +import 'package:ente_crypto_api/ente_crypto_api.dart'; import 'package:ente_lock_screen/local_authentication_service.dart'; import 'package:flutter/material.dart'; diff --git a/mobile/apps/auth/lib/ui/settings/data/export_widget.dart b/mobile/apps/auth/lib/ui/settings/data/export_widget.dart index a4761b535b1..54a8c53bc97 100644 --- a/mobile/apps/auth/lib/ui/settings/data/export_widget.dart +++ b/mobile/apps/auth/lib/ui/settings/data/export_widget.dart @@ -12,7 +12,7 @@ import 'package:ente_auth/utils/dialog_util.dart'; import 'package:ente_auth/utils/platform_util.dart'; import 'package:ente_auth/utils/share_utils.dart'; import 'package:ente_auth/utils/toast_util.dart'; -import 'package:ente_crypto_dart/ente_crypto_dart.dart'; +import 'package:ente_crypto_api/ente_crypto_api.dart'; import 'package:ente_lock_screen/local_authentication_service.dart'; import 'package:file_saver/file_saver.dart'; import 'package:flutter/material.dart'; diff --git a/mobile/apps/auth/lib/ui/settings/data/import/encrypted_ente_import.dart b/mobile/apps/auth/lib/ui/settings/data/import/encrypted_ente_import.dart index 0725ea51b10..a6cce63acf8 100644 --- a/mobile/apps/auth/lib/ui/settings/data/import/encrypted_ente_import.dart +++ b/mobile/apps/auth/lib/ui/settings/data/import/encrypted_ente_import.dart @@ -13,7 +13,7 @@ import 'package:ente_auth/ui/components/models/button_type.dart'; import 'package:ente_auth/ui/settings/data/import/import_success.dart'; import 'package:ente_auth/utils/dialog_util.dart'; import 'package:ente_auth/utils/toast_util.dart'; -import 'package:ente_crypto_dart/ente_crypto_dart.dart'; +import 'package:ente_crypto_api/ente_crypto_api.dart'; import 'package:file_picker/file_picker.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/foundation.dart'; diff --git a/mobile/apps/auth/lib/ui/settings/security_section_widget.dart b/mobile/apps/auth/lib/ui/settings/security_section_widget.dart index ad5bbbe1f4a..434c341e82b 100644 --- a/mobile/apps/auth/lib/ui/settings/security_section_widget.dart +++ b/mobile/apps/auth/lib/ui/settings/security_section_widget.dart @@ -18,7 +18,7 @@ import 'package:ente_auth/ui/settings/common_settings.dart'; import 'package:ente_auth/utils/dialog_util.dart'; import 'package:ente_auth/utils/navigation_util.dart'; import 'package:ente_auth/utils/toast_util.dart'; -import 'package:ente_crypto_dart/ente_crypto_dart.dart'; +import 'package:ente_crypto_api/ente_crypto_api.dart'; import 'package:ente_lock_screen/local_authentication_service.dart'; import 'package:ente_lock_screen/lock_screen_settings.dart'; import 'package:ente_lock_screen/ui/lock_screen_options.dart'; diff --git a/mobile/apps/auth/lib/ui/share/code_share.dart b/mobile/apps/auth/lib/ui/share/code_share.dart index 0b206503bb2..af2f7713087 100644 --- a/mobile/apps/auth/lib/ui/share/code_share.dart +++ b/mobile/apps/auth/lib/ui/share/code_share.dart @@ -10,7 +10,7 @@ import 'package:ente_auth/ui/components/models/button_type.dart'; import 'package:ente_auth/utils/dialog_util.dart'; import 'package:ente_auth/utils/share_utils.dart'; import 'package:ente_auth/utils/totp_util.dart'; -import 'package:ente_crypto_dart/ente_crypto_dart.dart'; +import 'package:ente_crypto_api/ente_crypto_api.dart'; import 'package:flutter/material.dart'; import 'package:logging/logging.dart'; diff --git a/mobile/apps/auth/pubspec.lock b/mobile/apps/auth/pubspec.lock index b9ca09c4fbd..22a1aa1b4f0 100644 --- a/mobile/apps/auth/pubspec.lock +++ b/mobile/apps/auth/pubspec.lock @@ -333,10 +333,10 @@ packages: dependency: "direct main" description: name: device_info_plus - sha256: "77f757b789ff68e4eaf9c56d1752309bd9f7ad557cb105b938a7f8eb89e59110" + sha256: "98f28b42168cc509abc92f88518882fd58061ea372d7999aecc424345c7bff6a" url: "https://pub.dev" source: hosted - version: "9.1.2" + version: "11.5.0" device_info_plus_platform_interface: dependency: transitive description: @@ -421,15 +421,29 @@ packages: relative: true source: path version: "1.0.0" - ente_crypto_dart: + ente_crypto_api: dependency: "direct main" + description: + path: "../../packages/ente_crypto_api" + relative: true + source: path + version: "0.0.1" + ente_crypto_dart: + dependency: transitive description: path: "." ref: HEAD - resolved-ref: f91e1545f8263df127762240c4da54a0c42835b2 + resolved-ref: dc995b62d6ec5bca3ba47966685b2af3c42235b2 url: "https://github.com/ente-io/ente_crypto_dart.git" source: git version: "1.0.0" + ente_crypto_dart_adapter: + dependency: "direct main" + description: + path: "../../packages/ente_crypto_dart_adapter" + relative: true + source: path + version: "0.0.1" ente_events: dependency: "direct main" description: @@ -1999,10 +2013,10 @@ packages: dependency: transitive description: name: win32_registry - sha256: "21ec76dfc731550fd3e2ce7a33a9ea90b828fdf19a5c3bcf556fa992cfa99852" + sha256: "6f1b564492d0147b330dd794fee8f512cec4977957f310f9951b5f9d83618dae" url: "https://pub.dev" source: hosted - version: "1.1.5" + version: "2.1.0" window_manager: dependency: "direct main" description: diff --git a/mobile/apps/auth/pubspec.yaml b/mobile/apps/auth/pubspec.yaml index 0c173447292..e2570d89661 100644 --- a/mobile/apps/auth/pubspec.yaml +++ b/mobile/apps/auth/pubspec.yaml @@ -18,7 +18,7 @@ dependencies: confetti: ^0.8.0 connectivity_plus: ^6.0.5 convert: ^3.1.1 - device_info_plus: ^9.1.1 + device_info_plus: ^11.5.0 dio: ^5.8.0+1 dir_utils: path: ../../packages/dir_utils @@ -32,9 +32,10 @@ dependencies: path: ../../packages/base ente_configuration: path: ../../packages/configuration - ente_crypto_dart: - git: - url: https://github.com/ente-io/ente_crypto_dart.git + ente_crypto_api: + path: ../../packages/ente_crypto_api + ente_crypto_dart_adapter: + path: ../../packages/ente_crypto_dart_adapter ente_events: path: ../../packages/events ente_lock_screen: diff --git a/mobile/apps/auth/pubspec_overrides.yaml b/mobile/apps/auth/pubspec_overrides.yaml index 2f69237f985..bbd8970fdf0 100644 --- a/mobile/apps/auth/pubspec_overrides.yaml +++ b/mobile/apps/auth/pubspec_overrides.yaml @@ -1,4 +1,4 @@ -# melos_managed_dependency_overrides: dir_utils,ente_accounts,ente_base,ente_configuration,ente_events,ente_lock_screen,ente_logging,ente_network,ente_strings,ente_ui,ente_utils +# melos_managed_dependency_overrides: ente_accounts,ente_base,ente_configuration,ente_events,ente_lock_screen,ente_logging,ente_network,ente_strings,ente_ui,ente_utils,dir_utils,ente_crypto_api,ente_crypto_dart_adapter dependency_overrides: dir_utils: path: ../../packages/dir_utils @@ -8,6 +8,10 @@ dependency_overrides: path: ../../packages/base ente_configuration: path: ../../packages/configuration + ente_crypto_api: + path: ../../packages/ente_crypto_api + ente_crypto_dart_adapter: + path: ../../packages/ente_crypto_dart_adapter ente_events: path: ../../packages/events ente_lock_screen: diff --git a/mobile/apps/locker/lib/main.dart b/mobile/apps/locker/lib/main.dart index 72b0093ad72..3f9e06cb74c 100644 --- a/mobile/apps/locker/lib/main.dart +++ b/mobile/apps/locker/lib/main.dart @@ -3,7 +3,8 @@ import 'dart:io'; import 'package:adaptive_theme/adaptive_theme.dart'; import 'package:ente_accounts/services/user_service.dart'; -import 'package:ente_crypto_dart/ente_crypto_dart.dart'; +import 'package:ente_crypto_api/ente_crypto_api.dart'; +import 'package:ente_crypto_dart_adapter/ente_crypto_dart_adapter.dart'; import "package:ente_legacy/services/emergency_service.dart"; import 'package:ente_lock_screen/lock_screen_settings.dart'; import 'package:ente_lock_screen/ui/app_lock.dart'; @@ -42,6 +43,7 @@ final _logger = Logger("main"); void main() async { WidgetsFlutterBinding.ensureInitialized(); + registerCryptoApi(const EnteCryptoDartAdapter()); if (PlatformUtil.isDesktop()) { await windowManager.ensureInitialized(); diff --git a/mobile/apps/locker/lib/services/collections/collections_api_client.dart b/mobile/apps/locker/lib/services/collections/collections_api_client.dart index 127649c57ed..17a41d6d222 100644 --- a/mobile/apps/locker/lib/services/collections/collections_api_client.dart +++ b/mobile/apps/locker/lib/services/collections/collections_api_client.dart @@ -4,7 +4,7 @@ import 'dart:math'; import 'dart:typed_data'; import 'package:dio/dio.dart'; -import 'package:ente_crypto_dart/ente_crypto_dart.dart'; +import 'package:ente_crypto_api/ente_crypto_api.dart'; import "package:ente_events/event_bus.dart"; import 'package:ente_network/network.dart'; import "package:ente_sharing/collection_sharing_service.dart"; diff --git a/mobile/apps/locker/lib/services/files/download/file_downloader.dart b/mobile/apps/locker/lib/services/files/download/file_downloader.dart index 77acd82ef3e..e7e8cb66859 100644 --- a/mobile/apps/locker/lib/services/files/download/file_downloader.dart +++ b/mobile/apps/locker/lib/services/files/download/file_downloader.dart @@ -2,7 +2,7 @@ import 'dart:io'; import 'dart:typed_data'; import 'package:dio/dio.dart'; -import 'package:ente_crypto_dart/ente_crypto_dart.dart'; +import 'package:ente_crypto_api/ente_crypto_api.dart'; import 'package:ente_network/network.dart'; import 'package:ente_utils/fake_progress.dart'; import 'package:locker/services/configuration.dart'; diff --git a/mobile/apps/locker/lib/services/files/links/links_service.dart b/mobile/apps/locker/lib/services/files/links/links_service.dart index 83be9ea072f..e129e689b25 100644 --- a/mobile/apps/locker/lib/services/files/links/links_service.dart +++ b/mobile/apps/locker/lib/services/files/links/links_service.dart @@ -2,7 +2,7 @@ import "dart:convert"; import "dart:math"; import "dart:typed_data"; -import "package:ente_crypto_dart/ente_crypto_dart.dart"; +import "package:ente_crypto_api/ente_crypto_api.dart"; import "package:locker/services/collections/collections_service.dart"; import "package:locker/services/configuration.dart"; import "package:locker/services/files/links/links_client.dart"; diff --git a/mobile/apps/locker/lib/services/files/sync/metadata_updater_service.dart b/mobile/apps/locker/lib/services/files/sync/metadata_updater_service.dart index b4359c18505..48a69750340 100644 --- a/mobile/apps/locker/lib/services/files/sync/metadata_updater_service.dart +++ b/mobile/apps/locker/lib/services/files/sync/metadata_updater_service.dart @@ -1,6 +1,6 @@ import 'dart:convert'; -import 'package:ente_crypto_dart/ente_crypto_dart.dart'; +import 'package:ente_crypto_api/ente_crypto_api.dart'; import 'package:ente_network/network.dart'; import 'package:locker/services/collections/collections_service.dart'; import 'package:locker/services/configuration.dart'; diff --git a/mobile/apps/locker/lib/services/files/upload/file_upload_service.dart b/mobile/apps/locker/lib/services/files/upload/file_upload_service.dart index 6e469cfce5e..ce58eb34e79 100644 --- a/mobile/apps/locker/lib/services/files/upload/file_upload_service.dart +++ b/mobile/apps/locker/lib/services/files/upload/file_upload_service.dart @@ -6,7 +6,7 @@ import 'dart:io'; import 'package:collection/collection.dart'; import 'package:dio/dio.dart'; import 'package:ente_accounts/services/user_service.dart'; -import 'package:ente_crypto_dart/ente_crypto_dart.dart'; +import 'package:ente_crypto_api/ente_crypto_api.dart'; import 'package:ente_events/event_bus.dart'; import 'package:ente_network/network.dart'; import 'package:flutter/foundation.dart'; @@ -337,7 +337,7 @@ class FileUploader { await _checkIfWithinStorageLimit(file); final encryptedFile = File(encryptedFilePath); - final fileAttributes = await CryptoUtil.encryptFileWithMD5( + final fileAttributes = await CryptoUtil.encryptFileWithMd5( file.path, encryptedFilePath, key: key, diff --git a/mobile/apps/locker/lib/services/trash/trash_service.dart b/mobile/apps/locker/lib/services/trash/trash_service.dart index 7cfe52c8577..c24039b3a6a 100644 --- a/mobile/apps/locker/lib/services/trash/trash_service.dart +++ b/mobile/apps/locker/lib/services/trash/trash_service.dart @@ -3,7 +3,7 @@ import 'dart:convert'; import 'dart:math'; import 'package:dio/dio.dart'; -import 'package:ente_crypto_dart/ente_crypto_dart.dart'; +import 'package:ente_crypto_api/ente_crypto_api.dart'; import "package:ente_events/event_bus.dart"; import "package:ente_events/models/signed_in_event.dart"; import 'package:ente_network/network.dart'; diff --git a/mobile/apps/locker/lib/ui/drawer/account_section_widget.dart b/mobile/apps/locker/lib/ui/drawer/account_section_widget.dart index e453dfcaf90..6b786fda619 100644 --- a/mobile/apps/locker/lib/ui/drawer/account_section_widget.dart +++ b/mobile/apps/locker/lib/ui/drawer/account_section_widget.dart @@ -2,7 +2,7 @@ import "package:ente_accounts/pages/change_email_dialog.dart"; import "package:ente_accounts/pages/delete_account_page.dart"; import "package:ente_accounts/pages/password_entry_page.dart"; import "package:ente_accounts/services/user_service.dart"; -import "package:ente_crypto_dart/ente_crypto_dart.dart"; +import "package:ente_crypto_api/ente_crypto_api.dart"; import "package:ente_lock_screen/local_authentication_service.dart"; import "package:ente_ui/components/alert_bottom_sheet.dart"; import "package:ente_ui/components/buttons/gradient_button.dart"; diff --git a/mobile/apps/locker/lib/ui/drawer/security_section_widget.dart b/mobile/apps/locker/lib/ui/drawer/security_section_widget.dart index c0f1c823869..35a916b6690 100644 --- a/mobile/apps/locker/lib/ui/drawer/security_section_widget.dart +++ b/mobile/apps/locker/lib/ui/drawer/security_section_widget.dart @@ -5,7 +5,7 @@ import "package:ente_accounts/models/user_details.dart"; import "package:ente_accounts/pages/request_pwd_verification_page.dart"; import "package:ente_accounts/services/passkey_service.dart"; import "package:ente_accounts/services/user_service.dart"; -import "package:ente_crypto_dart/ente_crypto_dart.dart"; +import "package:ente_crypto_api/ente_crypto_api.dart"; import "package:ente_lock_screen/auth_util.dart"; import "package:ente_lock_screen/local_authentication_service.dart"; import "package:ente_lock_screen/lock_screen_settings.dart"; diff --git a/mobile/apps/locker/lib/ui/sharing/advanced_sharing_bottom_sheet.dart b/mobile/apps/locker/lib/ui/sharing/advanced_sharing_bottom_sheet.dart index f014c4a0eee..033783f25a7 100644 --- a/mobile/apps/locker/lib/ui/sharing/advanced_sharing_bottom_sheet.dart +++ b/mobile/apps/locker/lib/ui/sharing/advanced_sharing_bottom_sheet.dart @@ -1,6 +1,6 @@ import "dart:convert"; -import "package:ente_crypto_dart/ente_crypto_dart.dart"; +import "package:ente_crypto_api/ente_crypto_api.dart"; import "package:ente_ui/components/captioned_text_widget.dart"; import "package:ente_ui/components/menu_item_widget.dart"; import "package:ente_ui/components/toggle_switch_widget.dart"; diff --git a/mobile/apps/locker/lib/ui/sharing/manage_links_widget.dart b/mobile/apps/locker/lib/ui/sharing/manage_links_widget.dart index bad667a5eb8..3513e67d748 100644 --- a/mobile/apps/locker/lib/ui/sharing/manage_links_widget.dart +++ b/mobile/apps/locker/lib/ui/sharing/manage_links_widget.dart @@ -1,6 +1,6 @@ import "dart:convert"; -import "package:ente_crypto_dart/ente_crypto_dart.dart"; +import "package:ente_crypto_api/ente_crypto_api.dart"; import "package:ente_ui/components/captioned_text_widget.dart"; import "package:ente_ui/components/divider_widget.dart"; import "package:ente_ui/components/menu_item_widget.dart"; diff --git a/mobile/apps/locker/lib/utils/crypto_helper.dart b/mobile/apps/locker/lib/utils/crypto_helper.dart index 8ad4329af7a..e0231a02860 100644 --- a/mobile/apps/locker/lib/utils/crypto_helper.dart +++ b/mobile/apps/locker/lib/utils/crypto_helper.dart @@ -1,6 +1,6 @@ import "dart:typed_data"; -import "package:ente_crypto_dart/ente_crypto_dart.dart"; +import "package:ente_crypto_api/ente_crypto_api.dart"; import "package:locker/services/collections/models/collection.dart"; import "package:locker/services/configuration.dart"; diff --git a/mobile/apps/locker/pubspec.lock b/mobile/apps/locker/pubspec.lock index 79ed92a6445..9170cddf55c 100644 --- a/mobile/apps/locker/pubspec.lock +++ b/mobile/apps/locker/pubspec.lock @@ -262,8 +262,15 @@ packages: relative: true source: path version: "1.0.0" - ente_crypto_dart: + ente_crypto_api: dependency: "direct main" + description: + path: "../../packages/ente_crypto_api" + relative: true + source: path + version: "0.0.1" + ente_crypto_dart: + dependency: transitive description: path: "." ref: HEAD @@ -271,6 +278,13 @@ packages: url: "https://github.com/ente-io/ente_crypto_dart.git" source: git version: "1.0.0" + ente_crypto_dart_adapter: + dependency: "direct main" + description: + path: "../../packages/ente_crypto_dart_adapter" + relative: true + source: path + version: "0.0.1" ente_events: dependency: "direct main" description: diff --git a/mobile/apps/locker/pubspec.yaml b/mobile/apps/locker/pubspec.yaml index 450b77a6621..ed35d926832 100644 --- a/mobile/apps/locker/pubspec.yaml +++ b/mobile/apps/locker/pubspec.yaml @@ -22,9 +22,10 @@ dependencies: path: ../../packages/base ente_configuration: path: ../../packages/configuration - ente_crypto_dart: - git: - url: https://github.com/ente-io/ente_crypto_dart.git + ente_crypto_api: + path: ../../packages/ente_crypto_api + ente_crypto_dart_adapter: + path: ../../packages/ente_crypto_dart_adapter ente_events: path: ../../packages/events ente_legacy: diff --git a/mobile/apps/locker/pubspec_overrides.yaml b/mobile/apps/locker/pubspec_overrides.yaml index 1969fe340fa..e04061271fe 100644 --- a/mobile/apps/locker/pubspec_overrides.yaml +++ b/mobile/apps/locker/pubspec_overrides.yaml @@ -1,4 +1,4 @@ -# melos_managed_dependency_overrides: ente_accounts,ente_base,ente_configuration,ente_events,ente_lock_screen,ente_logging,ente_network,ente_strings,ente_ui,ente_utils,ente_sharing,ente_legacy +# melos_managed_dependency_overrides: ente_accounts,ente_base,ente_configuration,ente_events,ente_lock_screen,ente_logging,ente_network,ente_strings,ente_ui,ente_utils,ente_sharing,ente_legacy,ente_crypto_api,ente_crypto_dart_adapter dependency_overrides: ente_accounts: path: ../../packages/accounts @@ -6,6 +6,10 @@ dependency_overrides: path: ../../packages/base ente_configuration: path: ../../packages/configuration + ente_crypto_api: + path: ../../packages/ente_crypto_api + ente_crypto_dart_adapter: + path: ../../packages/ente_crypto_dart_adapter ente_events: path: ../../packages/events ente_legacy: diff --git a/mobile/packages/accounts/lib/pages/delete_account_page.dart b/mobile/packages/accounts/lib/pages/delete_account_page.dart index 6d8332b74e3..49bbb9dc84c 100644 --- a/mobile/packages/accounts/lib/pages/delete_account_page.dart +++ b/mobile/packages/accounts/lib/pages/delete_account_page.dart @@ -2,7 +2,7 @@ import 'dart:convert'; import 'package:ente_accounts/ente_accounts.dart'; import 'package:ente_configuration/base_configuration.dart'; -import 'package:ente_crypto_dart/ente_crypto_dart.dart'; +import 'package:ente_crypto_api/ente_crypto_api.dart'; import 'package:ente_lock_screen/local_authentication_service.dart'; import 'package:ente_strings/ente_strings.dart'; import 'package:ente_ui/components/buttons/gradient_button.dart'; diff --git a/mobile/packages/accounts/lib/pages/login_pwd_verification_page.dart b/mobile/packages/accounts/lib/pages/login_pwd_verification_page.dart index ec125c22213..ad693c85f5f 100644 --- a/mobile/packages/accounts/lib/pages/login_pwd_verification_page.dart +++ b/mobile/packages/accounts/lib/pages/login_pwd_verification_page.dart @@ -1,7 +1,7 @@ import "package:dio/dio.dart"; import "package:ente_accounts/ente_accounts.dart"; import "package:ente_configuration/base_configuration.dart"; -import "package:ente_crypto_dart/ente_crypto_dart.dart"; +import "package:ente_crypto_api/ente_crypto_api.dart"; import "package:ente_strings/ente_strings.dart"; import "package:ente_ui/components/alert_bottom_sheet.dart"; import "package:ente_ui/components/buttons/dynamic_fab.dart"; diff --git a/mobile/packages/accounts/lib/pages/password_reentry_page.dart b/mobile/packages/accounts/lib/pages/password_reentry_page.dart index 603f6659371..fd76b4553a2 100644 --- a/mobile/packages/accounts/lib/pages/password_reentry_page.dart +++ b/mobile/packages/accounts/lib/pages/password_reentry_page.dart @@ -4,7 +4,7 @@ import 'dart:typed_data'; import 'package:ente_accounts/ente_accounts.dart'; import 'package:ente_accounts/models/errors.dart'; import 'package:ente_configuration/base_configuration.dart'; -import 'package:ente_crypto_dart/ente_crypto_dart.dart'; +import 'package:ente_crypto_api/ente_crypto_api.dart'; import 'package:ente_strings/ente_strings.dart'; import "package:ente_ui/components/alert_bottom_sheet.dart"; import 'package:ente_ui/components/buttons/dynamic_fab.dart'; diff --git a/mobile/packages/accounts/lib/pages/request_pwd_verification_page.dart b/mobile/packages/accounts/lib/pages/request_pwd_verification_page.dart index d3d23a1096b..e1f06086de4 100644 --- a/mobile/packages/accounts/lib/pages/request_pwd_verification_page.dart +++ b/mobile/packages/accounts/lib/pages/request_pwd_verification_page.dart @@ -2,7 +2,7 @@ import "dart:convert"; import "dart:typed_data"; import "package:ente_configuration/base_configuration.dart"; -import 'package:ente_crypto_dart/ente_crypto_dart.dart'; +import 'package:ente_crypto_api/ente_crypto_api.dart'; import "package:ente_strings/ente_strings.dart"; import "package:ente_ui/components/buttons/dynamic_fab.dart"; import "package:ente_ui/theme/ente_theme.dart"; diff --git a/mobile/packages/accounts/lib/services/user_service.dart b/mobile/packages/accounts/lib/services/user_service.dart index 7d917277ef3..6dbbb127a6f 100644 --- a/mobile/packages/accounts/lib/services/user_service.dart +++ b/mobile/packages/accounts/lib/services/user_service.dart @@ -25,7 +25,7 @@ import 'package:ente_base/models/key_attributes.dart'; import 'package:ente_base/models/key_gen_result.dart'; import 'package:ente_configuration/base_configuration.dart'; import 'package:ente_configuration/constants.dart'; -import 'package:ente_crypto_dart/ente_crypto_dart.dart'; +import 'package:ente_crypto_api/ente_crypto_api.dart'; import 'package:ente_events/event_bus.dart'; import 'package:ente_events/models/user_details_changed_event.dart'; import 'package:ente_network/network.dart'; diff --git a/mobile/packages/accounts/pubspec.lock b/mobile/packages/accounts/pubspec.lock index 77c51c60b40..b2d09ae0a7f 100644 --- a/mobile/packages/accounts/pubspec.lock +++ b/mobile/packages/accounts/pubspec.lock @@ -129,14 +129,6 @@ packages: url: "https://pub.dev" source: hosted version: "3.0.6" - csslib: - dependency: transitive - description: - name: csslib - sha256: "09bad715f418841f976c77db72d5398dc1253c21fb9c0c7f0b0b985860b2d58e" - url: "https://pub.dev" - source: hosted - version: "1.0.2" cupertino_http: dependency: transitive description: @@ -145,22 +137,6 @@ packages: url: "https://pub.dev" source: hosted version: "2.2.0" - device_info_plus: - dependency: transitive - description: - name: device_info_plus - sha256: "77f757b789ff68e4eaf9c56d1752309bd9f7ad557cb105b938a7f8eb89e59110" - url: "https://pub.dev" - source: hosted - version: "9.1.2" - device_info_plus_platform_interface: - dependency: transitive - description: - name: device_info_plus_platform_interface - sha256: "0b04e02b30791224b31969eb1b50d723498f402971bff3630bca2ba839bd1ed2" - url: "https://pub.dev" - source: hosted - version: "7.0.2" dio: dependency: "direct main" description: @@ -215,15 +191,13 @@ packages: relative: true source: path version: "1.0.0" - ente_crypto_dart: + ente_crypto_api: dependency: "direct main" description: - path: "." - ref: HEAD - resolved-ref: f91e1545f8263df127762240c4da54a0c42835b2 - url: "https://github.com/ente-io/ente_crypto_dart.git" - source: git - version: "1.0.0" + path: "../ente_crypto_api" + relative: true + source: path + version: "0.0.1" ente_events: dependency: "direct main" description: @@ -526,14 +500,6 @@ packages: url: "https://pub.dev" source: hosted version: "8.2.12" - freezed_annotation: - dependency: transitive - description: - name: freezed_annotation - sha256: c2e2d632dd9b8a2b7751117abcfc2b4888ecfe181bd9fca7170d9ef02e595fe2 - url: "https://pub.dev" - source: hosted - version: "2.4.4" gtk: dependency: transitive description: @@ -550,14 +516,6 @@ packages: url: "https://pub.dev" source: hosted version: "0.2.0" - html: - dependency: transitive - description: - name: html - sha256: "6d1264f2dffa1b1101c25a91dff0dc2daee4c18e87cd8538729773c073dbf602" - url: "https://pub.dev" - source: hosted - version: "0.15.6" http: dependency: transitive description: @@ -1051,22 +1009,6 @@ packages: description: flutter source: sdk version: "0.0.0" - sodium: - dependency: transitive - description: - name: sodium - sha256: d9830a388e37c82891888e64cfd4c6764fa3ac716bed80ac6eab89ee42c3cd76 - url: "https://pub.dev" - source: hosted - version: "2.3.1+1" - sodium_libs: - dependency: transitive - description: - name: sodium_libs - sha256: aa764acd6ccc6113e119c2d99471aeeb4637a9a501639549b297d3a143ff49b3 - url: "https://pub.dev" - source: hosted - version: "2.2.1+6" source_span: dependency: transitive description: @@ -1123,14 +1065,6 @@ packages: url: "https://pub.dev" source: hosted version: "8.1.0" - synchronized: - dependency: transitive - description: - name: synchronized - sha256: "69fe30f3a8b04a0be0c15ae6490fc859a78ef4c43ae2dd5e8a623d45bfcf9225" - url: "https://pub.dev" - source: hosted - version: "3.3.0+3" term_glyph: dependency: transitive description: @@ -1315,14 +1249,6 @@ packages: url: "https://pub.dev" source: hosted version: "5.10.1" - win32_registry: - dependency: transitive - description: - name: win32_registry - sha256: "21ec76dfc731550fd3e2ce7a33a9ea90b828fdf19a5c3bcf556fa992cfa99852" - url: "https://pub.dev" - source: hosted - version: "1.1.5" window_manager: dependency: transitive description: diff --git a/mobile/packages/accounts/pubspec.yaml b/mobile/packages/accounts/pubspec.yaml index 3ae81ac6a89..1bfe1c3cbfc 100644 --- a/mobile/packages/accounts/pubspec.yaml +++ b/mobile/packages/accounts/pubspec.yaml @@ -18,9 +18,8 @@ dependencies: path: ../base ente_configuration: path: ../configuration - ente_crypto_dart: - git: - url: https://github.com/ente-io/ente_crypto_dart.git + ente_crypto_api: + path: ../ente_crypto_api ente_events: path: ../events ente_lock_screen: diff --git a/mobile/packages/accounts/pubspec_overrides.yaml b/mobile/packages/accounts/pubspec_overrides.yaml index d56ef125a68..9e40b621800 100644 --- a/mobile/packages/accounts/pubspec_overrides.yaml +++ b/mobile/packages/accounts/pubspec_overrides.yaml @@ -1,9 +1,11 @@ -# melos_managed_dependency_overrides: ente_base,ente_configuration,ente_events,ente_lock_screen,ente_logging,ente_network,ente_strings,ente_ui,ente_utils +# melos_managed_dependency_overrides: ente_base,ente_configuration,ente_events,ente_lock_screen,ente_logging,ente_network,ente_strings,ente_ui,ente_utils,ente_crypto_api dependency_overrides: ente_base: path: ../base ente_configuration: path: ../configuration + ente_crypto_api: + path: ../ente_crypto_api ente_events: path: ../events ente_lock_screen: diff --git a/mobile/packages/configuration/lib/base_configuration.dart b/mobile/packages/configuration/lib/base_configuration.dart index 5d6c803a384..4e54dd72999 100644 --- a/mobile/packages/configuration/lib/base_configuration.dart +++ b/mobile/packages/configuration/lib/base_configuration.dart @@ -9,7 +9,7 @@ import 'package:ente_base/models/key_attributes.dart'; import 'package:ente_base/models/key_gen_result.dart'; import 'package:ente_base/models/private_key_attributes.dart'; import 'package:ente_configuration/constants.dart'; -import 'package:ente_crypto_dart/ente_crypto_dart.dart'; +import 'package:ente_crypto_api/ente_crypto_api.dart'; import 'package:ente_events/event_bus.dart'; import 'package:ente_events/models/endpoint_updated_event.dart'; import 'package:ente_events/models/signed_in_event.dart'; @@ -121,7 +121,7 @@ class BaseConfiguration { // Generate a public-private keypair and encrypt the latter final keyPair = CryptoUtil.generateKeyPair(); final encryptedSecretKeyData = - CryptoUtil.encryptSync(keyPair.secretKey.extractBytes(), masterKey); + CryptoUtil.encryptSync(keyPair.secretKey, masterKey); final attributes = KeyAttributes( CryptoUtil.bin2base64(kekSalt), @@ -140,7 +140,7 @@ class BaseConfiguration { final privateAttributes = PrivateKeyAttributes( CryptoUtil.bin2base64(masterKey), CryptoUtil.bin2hex(recoveryKey), - CryptoUtil.bin2base64(keyPair.secretKey.extractBytes()), + CryptoUtil.bin2base64(keyPair.secretKey), ); return KeyGenResult(attributes, privateAttributes, loginKey); } diff --git a/mobile/packages/configuration/pubspec.lock b/mobile/packages/configuration/pubspec.lock index b6be5eb9922..94123bbca71 100644 --- a/mobile/packages/configuration/pubspec.lock +++ b/mobile/packages/configuration/pubspec.lock @@ -1,14 +1,6 @@ # Generated by pub # See https://dart.dev/tools/pub/glossary#lockfile packages: - args: - dependency: transitive - description: - name: args - sha256: d0481093c50b1da8910eb0bb301626d4d8eb7284aa739614d2b394ee09e3ea04 - url: "https://pub.dev" - source: hosted - version: "2.7.0" async: dependency: transitive description: @@ -73,30 +65,6 @@ packages: url: "https://pub.dev" source: hosted version: "3.0.6" - csslib: - dependency: transitive - description: - name: csslib - sha256: "09bad715f418841f976c77db72d5398dc1253c21fb9c0c7f0b0b985860b2d58e" - url: "https://pub.dev" - source: hosted - version: "1.0.2" - device_info_plus: - dependency: transitive - description: - name: device_info_plus - sha256: "77f757b789ff68e4eaf9c56d1752309bd9f7ad557cb105b938a7f8eb89e59110" - url: "https://pub.dev" - source: hosted - version: "9.1.2" - device_info_plus_platform_interface: - dependency: transitive - description: - name: device_info_plus_platform_interface - sha256: "0b04e02b30791224b31969eb1b50d723498f402971bff3630bca2ba839bd1ed2" - url: "https://pub.dev" - source: hosted - version: "7.0.2" dio: dependency: transitive description: @@ -120,15 +88,13 @@ packages: relative: true source: path version: "1.0.0" - ente_crypto_dart: + ente_crypto_api: dependency: "direct main" description: - path: "." - ref: HEAD - resolved-ref: f91e1545f8263df127762240c4da54a0c42835b2 - url: "https://github.com/ente-io/ente_crypto_dart.git" - source: git - version: "1.0.0" + path: "../ente_crypto_api" + relative: true + source: path + version: "0.0.1" ente_events: dependency: "direct main" description: @@ -254,14 +220,6 @@ packages: description: flutter source: sdk version: "0.0.0" - freezed_annotation: - dependency: transitive - description: - name: freezed_annotation - sha256: c2e2d632dd9b8a2b7751117abcfc2b4888ecfe181bd9fca7170d9ef02e595fe2 - url: "https://pub.dev" - source: hosted - version: "2.4.4" hex: dependency: transitive description: @@ -270,14 +228,6 @@ packages: url: "https://pub.dev" source: hosted version: "0.2.0" - html: - dependency: transitive - description: - name: html - sha256: "6d1264f2dffa1b1101c25a91dff0dc2daee4c18e87cd8538729773c073dbf602" - url: "https://pub.dev" - source: hosted - version: "0.15.6" http: dependency: transitive description: @@ -310,14 +260,6 @@ packages: url: "https://pub.dev" source: hosted version: "0.6.7" - json_annotation: - dependency: transitive - description: - name: json_annotation - sha256: "1ce844379ca14835a50d2f019a3099f419082cfdd231cd86a142af94dd5c6bb1" - url: "https://pub.dev" - source: hosted - version: "4.9.0" leak_tracker: dependency: transitive description: @@ -563,22 +505,6 @@ packages: description: flutter source: sdk version: "0.0.0" - sodium: - dependency: transitive - description: - name: sodium - sha256: d9830a388e37c82891888e64cfd4c6764fa3ac716bed80ac6eab89ee42c3cd76 - url: "https://pub.dev" - source: hosted - version: "2.3.1+1" - sodium_libs: - dependency: transitive - description: - name: sodium_libs - sha256: aa764acd6ccc6113e119c2d99471aeeb4637a9a501639549b297d3a143ff49b3 - url: "https://pub.dev" - source: hosted - version: "2.2.1+6" source_span: dependency: transitive description: @@ -619,14 +545,6 @@ packages: url: "https://pub.dev" source: hosted version: "1.4.1" - synchronized: - dependency: transitive - description: - name: synchronized - sha256: "69fe30f3a8b04a0be0c15ae6490fc859a78ef4c43ae2dd5e8a623d45bfcf9225" - url: "https://pub.dev" - source: hosted - version: "3.3.0+3" term_glyph: dependency: transitive description: @@ -699,14 +617,6 @@ packages: url: "https://pub.dev" source: hosted version: "5.10.1" - win32_registry: - dependency: transitive - description: - name: win32_registry - sha256: "21ec76dfc731550fd3e2ce7a33a9ea90b828fdf19a5c3bcf556fa992cfa99852" - url: "https://pub.dev" - source: hosted - version: "1.1.5" xdg_directories: dependency: transitive description: diff --git a/mobile/packages/configuration/pubspec.yaml b/mobile/packages/configuration/pubspec.yaml index 9f8ffb7a09d..7afc9765e1d 100644 --- a/mobile/packages/configuration/pubspec.yaml +++ b/mobile/packages/configuration/pubspec.yaml @@ -11,9 +11,8 @@ dependencies: bip39: ^1.0.6 ente_base: path: ../../packages/base - ente_crypto_dart: - git: - url: https://github.com/ente-io/ente_crypto_dart.git + ente_crypto_api: + path: ../ente_crypto_api ente_events: path: ../../packages/events ente_logging: diff --git a/mobile/packages/configuration/pubspec_overrides.yaml b/mobile/packages/configuration/pubspec_overrides.yaml index f41bcd5f301..76414358b0b 100644 --- a/mobile/packages/configuration/pubspec_overrides.yaml +++ b/mobile/packages/configuration/pubspec_overrides.yaml @@ -1,7 +1,9 @@ -# melos_managed_dependency_overrides: ente_base,ente_events,ente_logging +# melos_managed_dependency_overrides: ente_base,ente_events,ente_logging,ente_crypto_api dependency_overrides: ente_base: path: ../base + ente_crypto_api: + path: ../ente_crypto_api ente_events: path: ../events ente_logging: diff --git a/mobile/packages/ente_crypto_api/analysis_options.yaml b/mobile/packages/ente_crypto_api/analysis_options.yaml new file mode 100644 index 00000000000..f04c6cf0f30 --- /dev/null +++ b/mobile/packages/ente_crypto_api/analysis_options.yaml @@ -0,0 +1 @@ +include: ../../analysis_options.yaml diff --git a/mobile/packages/ente_crypto_api/lib/ente_crypto_api.dart b/mobile/packages/ente_crypto_api/lib/ente_crypto_api.dart new file mode 100644 index 00000000000..480e3c984a8 --- /dev/null +++ b/mobile/packages/ente_crypto_api/lib/ente_crypto_api.dart @@ -0,0 +1,7 @@ +library ente_crypto_api; + +export 'src/crypto_api.dart'; +export 'src/errors.dart'; +export 'src/models/crypto_key_pair.dart'; +export 'src/models/derived_key_result.dart'; +export 'src/models/encryption_result.dart'; diff --git a/mobile/packages/ente_crypto_api/lib/src/crypto_api.dart b/mobile/packages/ente_crypto_api/lib/src/crypto_api.dart new file mode 100644 index 00000000000..08e731af513 --- /dev/null +++ b/mobile/packages/ente_crypto_api/lib/src/crypto_api.dart @@ -0,0 +1,248 @@ +import 'dart:io'; +import 'dart:typed_data'; + +import 'package:ente_crypto_api/src/models/crypto_key_pair.dart'; +import 'package:ente_crypto_api/src/models/derived_key_result.dart'; +import 'package:ente_crypto_api/src/models/encryption_result.dart'; + +abstract class CryptoApi { + Future init(); + + Uint8List strToBin(String str); + Uint8List base642bin(String b64); + String bin2base64(Uint8List bin, {bool urlSafe = false}); + String bin2hex(Uint8List bin); + Uint8List hex2bin(String hex); + + EncryptionResult encryptSync(Uint8List source, Uint8List key); + Future decrypt(Uint8List cipher, Uint8List key, Uint8List nonce); + Uint8List decryptSync(Uint8List cipher, Uint8List key, Uint8List nonce); + + Future encryptData(Uint8List source, Uint8List key); + Future decryptData( + Uint8List source, + Uint8List key, + Uint8List header, + ); + + Future encryptFile( + String sourceFilePath, + String destinationFilePath, { + Uint8List? key, + }); + + Future encryptFileWithMd5( + String sourceFilePath, + String destinationFilePath, { + Uint8List? key, + int? multiPartChunkSizeInBytes, + }); + + Future decryptFile( + String sourceFilePath, + String destinationFilePath, + Uint8List header, + Uint8List key, + ); + + Uint8List generateKey(); + CryptoKeyPair generateKeyPair(); + + Uint8List openSealSync( + Uint8List input, + Uint8List publicKey, + Uint8List secretKey, + ); + + Uint8List sealSync(Uint8List input, Uint8List publicKey); + + Future deriveSensitiveKey( + Uint8List password, + Uint8List salt, + ); + + Future deriveInteractiveKey( + Uint8List password, + Uint8List salt, + ); + + Future deriveKey( + Uint8List password, + Uint8List salt, + int memLimit, + int opsLimit, + ); + + Future deriveLoginKey(Uint8List key); + + Uint8List getSaltToDeriveKey(); + Uint8List cryptoPwHash( + Uint8List password, + Uint8List salt, + int memLimit, + int opsLimit, + ); + + // Expose the Argon2 limits so higher layers can tune mem/ops values. + int get pwhashMemLimitInteractive; + int get pwhashMemLimitSensitive; + int get pwhashOpsLimitInteractive; + int get pwhashOpsLimitSensitive; + + Future getHash(File source); +} + +class _CryptoApiRegistry { + CryptoApi? _impl; + + static final _CryptoApiRegistry instance = _CryptoApiRegistry._(); + + _CryptoApiRegistry._(); + + void register(CryptoApi impl) => _impl = impl; + + CryptoApi get implementation { + final impl = _impl; + if (impl == null) { + throw StateError( + 'CryptoApi implementation not registered. Call registerCryptoApi() ' + 'before using CryptoUtil.', + ); + } + return impl; + } + + bool get isRegistered => _impl != null; +} + +void registerCryptoApi(CryptoApi impl) { + _CryptoApiRegistry.instance.register(impl); +} + +bool get isCryptoApiRegistered => _CryptoApiRegistry.instance.isRegistered; + +class CryptoUtil { + CryptoUtil._(); + + static CryptoApi get _impl => _CryptoApiRegistry.instance.implementation; + + static Future init() => _impl.init(); + + static Uint8List strToBin(String str) => _impl.strToBin(str); + static Uint8List base642bin(String b64) => _impl.base642bin(b64); + static String bin2base64(Uint8List bin, {bool urlSafe = false}) => + _impl.bin2base64(bin, urlSafe: urlSafe); + static String bin2hex(Uint8List bin) => _impl.bin2hex(bin); + static Uint8List hex2bin(String hex) => _impl.hex2bin(hex); + + static EncryptionResult encryptSync(Uint8List source, Uint8List key) => + _impl.encryptSync(source, key); + + static Future decrypt( + Uint8List cipher, + Uint8List key, + Uint8List nonce, + ) => + _impl.decrypt(cipher, key, nonce); + + static Uint8List decryptSync( + Uint8List cipher, + Uint8List key, + Uint8List nonce, + ) => + _impl.decryptSync(cipher, key, nonce); + + static Future encryptData( + Uint8List source, + Uint8List key, + ) => + _impl.encryptData(source, key); + + static Future decryptData( + Uint8List source, + Uint8List key, + Uint8List header, + ) => + _impl.decryptData(source, key, header); + + static Future encryptFile( + String sourceFilePath, + String destinationFilePath, { + Uint8List? key, + }) => + _impl.encryptFile(sourceFilePath, destinationFilePath, key: key); + + static Future encryptFileWithMd5( + String sourceFilePath, + String destinationFilePath, { + Uint8List? key, + int? multiPartChunkSizeInBytes, + }) => + _impl.encryptFileWithMd5( + sourceFilePath, + destinationFilePath, + key: key, + multiPartChunkSizeInBytes: multiPartChunkSizeInBytes, + ); + + static Future decryptFile( + String sourceFilePath, + String destinationFilePath, + Uint8List header, + Uint8List key, + ) => + _impl.decryptFile(sourceFilePath, destinationFilePath, header, key); + + static Uint8List generateKey() => _impl.generateKey(); + static CryptoKeyPair generateKeyPair() => _impl.generateKeyPair(); + + static Uint8List openSealSync( + Uint8List input, + Uint8List publicKey, + Uint8List secretKey, + ) => + _impl.openSealSync(input, publicKey, secretKey); + + static Uint8List sealSync(Uint8List input, Uint8List publicKey) => + _impl.sealSync(input, publicKey); + + static Future deriveSensitiveKey( + Uint8List password, + Uint8List salt, + ) => + _impl.deriveSensitiveKey(password, salt); + + static Future deriveInteractiveKey( + Uint8List password, + Uint8List salt, + ) => + _impl.deriveInteractiveKey(password, salt); + + static Future deriveKey( + Uint8List password, + Uint8List salt, + int memLimit, + int opsLimit, + ) => + _impl.deriveKey(password, salt, memLimit, opsLimit); + + static Future deriveLoginKey(Uint8List key) => + _impl.deriveLoginKey(key); + + static Uint8List getSaltToDeriveKey() => _impl.getSaltToDeriveKey(); + + static Uint8List cryptoPwHash( + Uint8List password, + Uint8List salt, + int memLimit, + int opsLimit, + ) => + _impl.cryptoPwHash(password, salt, memLimit, opsLimit); + + static int get pwhashMemLimitInteractive => _impl.pwhashMemLimitInteractive; + static int get pwhashMemLimitSensitive => _impl.pwhashMemLimitSensitive; + static int get pwhashOpsLimitInteractive => _impl.pwhashOpsLimitInteractive; + static int get pwhashOpsLimitSensitive => _impl.pwhashOpsLimitSensitive; + + static Future getHash(File source) => _impl.getHash(source); +} diff --git a/mobile/packages/ente_crypto_api/lib/src/errors.dart b/mobile/packages/ente_crypto_api/lib/src/errors.dart new file mode 100644 index 00000000000..3d4a1864569 --- /dev/null +++ b/mobile/packages/ente_crypto_api/lib/src/errors.dart @@ -0,0 +1,3 @@ +class KeyDerivationError extends Error {} + +class LoginKeyDerivationError extends Error {} diff --git a/mobile/packages/ente_crypto_api/lib/src/models/crypto_key_pair.dart b/mobile/packages/ente_crypto_api/lib/src/models/crypto_key_pair.dart new file mode 100644 index 00000000000..25c74fa71b3 --- /dev/null +++ b/mobile/packages/ente_crypto_api/lib/src/models/crypto_key_pair.dart @@ -0,0 +1,11 @@ +import 'dart:typed_data'; + +class CryptoKeyPair { + final Uint8List publicKey; + final Uint8List secretKey; + + const CryptoKeyPair({ + required this.publicKey, + required this.secretKey, + }); +} diff --git a/mobile/packages/ente_crypto_api/lib/src/models/derived_key_result.dart b/mobile/packages/ente_crypto_api/lib/src/models/derived_key_result.dart new file mode 100644 index 00000000000..61f1e13630e --- /dev/null +++ b/mobile/packages/ente_crypto_api/lib/src/models/derived_key_result.dart @@ -0,0 +1,9 @@ +import 'dart:typed_data'; + +class DerivedKeyResult { + final Uint8List key; + final int memLimit; + final int opsLimit; + + const DerivedKeyResult(this.key, this.memLimit, this.opsLimit); +} diff --git a/mobile/packages/ente_crypto_api/lib/src/models/encryption_result.dart b/mobile/packages/ente_crypto_api/lib/src/models/encryption_result.dart new file mode 100644 index 00000000000..89551446f12 --- /dev/null +++ b/mobile/packages/ente_crypto_api/lib/src/models/encryption_result.dart @@ -0,0 +1,31 @@ +import 'dart:typed_data'; + +class EncryptionResult { + final Uint8List? encryptedData; + final Uint8List? key; + final Uint8List? header; + final Uint8List? nonce; + + const EncryptionResult({ + this.encryptedData, + this.key, + this.header, + this.nonce, + }); +} + +class FileEncryptResult { + final Uint8List key; + final Uint8List header; + final String? fileMd5; + final List? partMd5s; + final int? partSize; + + const FileEncryptResult({ + required this.key, + required this.header, + this.fileMd5, + this.partMd5s, + this.partSize, + }); +} diff --git a/mobile/packages/ente_crypto_api/pubspec.lock b/mobile/packages/ente_crypto_api/pubspec.lock new file mode 100644 index 00000000000..48c73213620 --- /dev/null +++ b/mobile/packages/ente_crypto_api/pubspec.lock @@ -0,0 +1,21 @@ +# Generated by pub +# See https://dart.dev/tools/pub/glossary#lockfile +packages: + lints: + dependency: "direct dev" + description: + name: lints + sha256: cbf8d4b858bb0134ef3ef87841abdf8d63bfc255c266b7bf6b39daa1085c4290 + url: "https://pub.dev" + source: hosted + version: "3.0.0" + meta: + dependency: "direct main" + description: + name: meta + sha256: "23f08335362185a5ea2ad3a4e597f1375e78bce8a040df5c600c8d3552ef2394" + url: "https://pub.dev" + source: hosted + version: "1.17.0" +sdks: + dart: ">=3.5.0 <4.0.0" diff --git a/mobile/packages/ente_crypto_api/pubspec.yaml b/mobile/packages/ente_crypto_api/pubspec.yaml new file mode 100644 index 00000000000..47e9e8feff5 --- /dev/null +++ b/mobile/packages/ente_crypto_api/pubspec.yaml @@ -0,0 +1,13 @@ +name: ente_crypto_api +description: Shared crypto abstraction layer for Ente apps. +version: 0.0.1 +publish_to: none + +environment: + sdk: ">=3.3.0 <4.0.0" + +dependencies: + meta: ^1.11.0 + +dev_dependencies: + lints: ^3.0.0 diff --git a/mobile/packages/ente_crypto_dart_adapter/analysis_options.yaml b/mobile/packages/ente_crypto_dart_adapter/analysis_options.yaml new file mode 100644 index 00000000000..f04c6cf0f30 --- /dev/null +++ b/mobile/packages/ente_crypto_dart_adapter/analysis_options.yaml @@ -0,0 +1 @@ +include: ../../analysis_options.yaml diff --git a/mobile/packages/ente_crypto_dart_adapter/lib/ente_crypto_dart_adapter.dart b/mobile/packages/ente_crypto_dart_adapter/lib/ente_crypto_dart_adapter.dart new file mode 100644 index 00000000000..cd50361a593 --- /dev/null +++ b/mobile/packages/ente_crypto_dart_adapter/lib/ente_crypto_dart_adapter.dart @@ -0,0 +1,229 @@ +import 'dart:io'; +import 'dart:typed_data'; + +import 'package:ente_crypto_api/ente_crypto_api.dart'; +import 'package:ente_crypto_dart/ente_crypto_dart.dart' as dart_impl; +import 'package:ente_crypto_dart/src/models/encryption_result.dart' + as dart_models; + +class EnteCryptoDartAdapter implements CryptoApi { + const EnteCryptoDartAdapter(); + + @override + Future init() => dart_impl.CryptoUtil.init(); + + @override + Uint8List base642bin(String b64) => dart_impl.CryptoUtil.base642bin(b64); + + @override + String bin2base64(Uint8List bin, {bool urlSafe = false}) => + dart_impl.CryptoUtil.bin2base64(bin, urlSafe: urlSafe); + + @override + String bin2hex(Uint8List bin) => dart_impl.CryptoUtil.bin2hex(bin); + + @override + Uint8List hex2bin(String hex) => dart_impl.CryptoUtil.hex2bin(hex); + + @override + Uint8List strToBin(String str) => dart_impl.CryptoUtil.strToBin(str); + + @override + EncryptionResult encryptSync(Uint8List source, Uint8List key) => + _mapEncryptionResult(dart_impl.CryptoUtil.encryptSync(source, key)); + + @override + Future decrypt( + Uint8List cipher, + Uint8List key, + Uint8List nonce, + ) => + dart_impl.CryptoUtil.decrypt(cipher, key, nonce); + + @override + Uint8List decryptSync( + Uint8List cipher, + Uint8List key, + Uint8List nonce, + ) => + dart_impl.CryptoUtil.decryptSync(cipher, key, nonce); + + @override + Future encryptData(Uint8List source, Uint8List key) async { + final result = await dart_impl.CryptoUtil.encryptData(source, key); + return _mapEncryptionResult(result); + } + + @override + Future decryptData( + Uint8List source, + Uint8List key, + Uint8List header, + ) => + dart_impl.CryptoUtil.decryptData(source, key, header); + + @override + Future encryptFile( + String sourceFilePath, + String destinationFilePath, { + Uint8List? key, + }) async { + final result = await dart_impl.CryptoUtil.encryptFile( + sourceFilePath, + destinationFilePath, + key: key, + ); + return _mapEncryptionResult(result); + } + + @override + Future encryptFileWithMd5( + String sourceFilePath, + String destinationFilePath, { + Uint8List? key, + int? multiPartChunkSizeInBytes, + }) async { + final result = await dart_impl.CryptoUtil.encryptFileWithMD5( + sourceFilePath, + destinationFilePath, + key: key, + multiPartChunkSizeInBytes: multiPartChunkSizeInBytes, + ); + return _mapFileEncryptionResult(result); + } + + @override + Future decryptFile( + String sourceFilePath, + String destinationFilePath, + Uint8List header, + Uint8List key, + ) => + dart_impl.CryptoUtil.decryptFile( + sourceFilePath, + destinationFilePath, + header, + key, + ); + + @override + Uint8List generateKey() => dart_impl.CryptoUtil.generateKey(); + + @override + CryptoKeyPair generateKeyPair() { + final pair = dart_impl.CryptoUtil.generateKeyPair(); + return CryptoKeyPair( + publicKey: pair.publicKey, + secretKey: pair.secretKey.extractBytes(), + ); + } + + @override + Uint8List openSealSync( + Uint8List input, + Uint8List publicKey, + Uint8List secretKey, + ) => + dart_impl.CryptoUtil.openSealSync(input, publicKey, secretKey); + + @override + Uint8List sealSync(Uint8List input, Uint8List publicKey) => + dart_impl.CryptoUtil.sealSync(input, publicKey); + + @override + Future deriveSensitiveKey( + Uint8List password, + Uint8List salt, + ) async { + final result = await dart_impl.CryptoUtil.deriveSensitiveKey( + password, + salt, + ); + return DerivedKeyResult(result.key, result.memLimit, result.opsLimit); + } + + @override + Future deriveInteractiveKey( + Uint8List password, + Uint8List salt, + ) async { + final result = await dart_impl.CryptoUtil.deriveInteractiveKey( + password, + salt, + ); + return DerivedKeyResult(result.key, result.memLimit, result.opsLimit); + } + + @override + Future deriveKey( + Uint8List password, + Uint8List salt, + int memLimit, + int opsLimit, + ) => + dart_impl.CryptoUtil.deriveKey(password, salt, memLimit, opsLimit); + + @override + Future deriveLoginKey(Uint8List key) => + dart_impl.CryptoUtil.deriveLoginKey(key); + + @override + Uint8List getSaltToDeriveKey() => dart_impl.CryptoUtil.getSaltToDeriveKey(); + + @override + Uint8List cryptoPwHash( + Uint8List password, + Uint8List salt, + int memLimit, + int opsLimit, + ) => + dart_impl.cryptoPwHash( + password, + salt, + memLimit, + opsLimit, + dart_impl.sodium, + ); + + @override + int get pwhashMemLimitInteractive => + dart_impl.sodium.crypto.pwhash.memLimitInteractive; + + @override + int get pwhashMemLimitSensitive => + dart_impl.sodium.crypto.pwhash.memLimitSensitive; + + @override + int get pwhashOpsLimitInteractive => + dart_impl.sodium.crypto.pwhash.opsLimitInteractive; + + @override + int get pwhashOpsLimitSensitive => + dart_impl.sodium.crypto.pwhash.opsLimitSensitive; + + @override + Future getHash(File source) => dart_impl.getHash(source); + + EncryptionResult _mapEncryptionResult( + dart_models.EncryptionResult result, + ) { + return EncryptionResult( + encryptedData: result.encryptedData, + key: result.key, + header: result.header, + nonce: result.nonce, + ); + } + + FileEncryptResult _mapFileEncryptionResult( + dart_models.FileEncryptResult result, + ) { + return FileEncryptResult( + key: result.key, + header: result.header, + fileMd5: result.fileMd5, + partMd5s: result.partMd5s, + partSize: result.partSize, + ); + } +} diff --git a/mobile/packages/ente_crypto_dart_adapter/pubspec.lock b/mobile/packages/ente_crypto_dart_adapter/pubspec.lock new file mode 100644 index 00000000000..49e146be00e --- /dev/null +++ b/mobile/packages/ente_crypto_dart_adapter/pubspec.lock @@ -0,0 +1,277 @@ +# Generated by pub +# See https://dart.dev/tools/pub/glossary#lockfile +packages: + args: + dependency: transitive + description: + name: args + sha256: d0481093c50b1da8910eb0bb301626d4d8eb7284aa739614d2b394ee09e3ea04 + url: "https://pub.dev" + source: hosted + version: "2.7.0" + characters: + dependency: transitive + description: + name: characters + sha256: f71061c654a3380576a52b451dd5532377954cf9dbd272a78fc8479606670803 + url: "https://pub.dev" + source: hosted + version: "1.4.0" + collection: + dependency: transitive + description: + name: collection + sha256: "2f5709ae4d3d59dd8f7cd309b4e023046b57d8a6c82130785d2b0e5868084e76" + url: "https://pub.dev" + source: hosted + version: "1.19.1" + convert: + dependency: transitive + description: + name: convert + sha256: b30acd5944035672bc15c6b7a8b47d773e41e2f17de064350988c5d02adb1c68 + url: "https://pub.dev" + source: hosted + version: "3.1.2" + crypto: + dependency: transitive + description: + name: crypto + sha256: c8ea0233063ba03258fbcf2ca4d6dadfefe14f02fab57702265467a19f27fadf + url: "https://pub.dev" + source: hosted + version: "3.0.7" + csslib: + dependency: transitive + description: + name: csslib + sha256: "09bad715f418841f976c77db72d5398dc1253c21fb9c0c7f0b0b985860b2d58e" + url: "https://pub.dev" + source: hosted + version: "1.0.2" + device_info_plus: + dependency: transitive + description: + name: device_info_plus + sha256: "98f28b42168cc509abc92f88518882fd58061ea372d7999aecc424345c7bff6a" + url: "https://pub.dev" + source: hosted + version: "11.5.0" + device_info_plus_platform_interface: + dependency: transitive + description: + name: device_info_plus_platform_interface + sha256: e1ea89119e34903dca74b883d0dd78eb762814f97fb6c76f35e9ff74d261a18f + url: "https://pub.dev" + source: hosted + version: "7.0.3" + ente_crypto_api: + dependency: "direct main" + description: + path: "../ente_crypto_api" + relative: true + source: path + version: "0.0.1" + ente_crypto_dart: + dependency: "direct main" + description: + path: "." + ref: HEAD + resolved-ref: dc995b62d6ec5bca3ba47966685b2af3c42235b2 + url: "https://github.com/ente-io/ente_crypto_dart.git" + source: git + version: "1.0.0" + ffi: + dependency: transitive + description: + name: ffi + sha256: "289279317b4b16eb2bb7e271abccd4bf84ec9bdcbe999e278a94b804f5630418" + url: "https://pub.dev" + source: hosted + version: "2.1.4" + file: + dependency: transitive + description: + name: file + sha256: a3b4f84adafef897088c160faf7dfffb7696046cb13ae90b508c2cbc95d3b8d4 + url: "https://pub.dev" + source: hosted + version: "7.0.1" + flutter: + dependency: transitive + description: flutter + source: sdk + version: "0.0.0" + flutter_web_plugins: + dependency: transitive + description: flutter + source: sdk + version: "0.0.0" + freezed_annotation: + dependency: transitive + description: + name: freezed_annotation + sha256: c2e2d632dd9b8a2b7751117abcfc2b4888ecfe181bd9fca7170d9ef02e595fe2 + url: "https://pub.dev" + source: hosted + version: "2.4.4" + html: + dependency: transitive + description: + name: html + sha256: "6d1264f2dffa1b1101c25a91dff0dc2daee4c18e87cd8538729773c073dbf602" + url: "https://pub.dev" + source: hosted + version: "0.15.6" + js: + dependency: transitive + description: + name: js + sha256: "53385261521cc4a0c4658fd0ad07a7d14591cf8fc33abbceae306ddb974888dc" + url: "https://pub.dev" + source: hosted + version: "0.7.2" + json_annotation: + dependency: transitive + description: + name: json_annotation + sha256: "1ce844379ca14835a50d2f019a3099f419082cfdd231cd86a142af94dd5c6bb1" + url: "https://pub.dev" + source: hosted + version: "4.9.0" + lints: + dependency: "direct dev" + description: + name: lints + sha256: cbf8d4b858bb0134ef3ef87841abdf8d63bfc255c266b7bf6b39daa1085c4290 + url: "https://pub.dev" + source: hosted + version: "3.0.0" + logging: + dependency: transitive + description: + name: logging + sha256: c8245ada5f1717ed44271ed1c26b8ce85ca3228fd2ffdb75468ab01979309d61 + url: "https://pub.dev" + source: hosted + version: "1.3.0" + material_color_utilities: + dependency: transitive + description: + name: material_color_utilities + sha256: f7142bb1154231d7ea5f96bc7bde4bda2a0945d2806bb11670e30b850d56bdec + url: "https://pub.dev" + source: hosted + version: "0.11.1" + meta: + dependency: "direct main" + description: + name: meta + sha256: e3641ec5d63ebf0d9b41bd43201a66e3fc79a65db5f61fc181f04cd27aab950c + url: "https://pub.dev" + source: hosted + version: "1.16.0" + path: + dependency: transitive + description: + name: path + sha256: "75cca69d1490965be98c73ceaea117e8a04dd21217b37b292c9ddbec0d955bc5" + url: "https://pub.dev" + source: hosted + version: "1.9.1" + plugin_platform_interface: + dependency: transitive + description: + name: plugin_platform_interface + sha256: "4820fbfdb9478b1ebae27888254d445073732dae3d6ea81f0b7e06d5dedc3f02" + url: "https://pub.dev" + source: hosted + version: "2.1.8" + sky_engine: + dependency: transitive + description: flutter + source: sdk + version: "0.0.0" + sodium: + dependency: transitive + description: + name: sodium + sha256: d9830a388e37c82891888e64cfd4c6764fa3ac716bed80ac6eab89ee42c3cd76 + url: "https://pub.dev" + source: hosted + version: "2.3.1+1" + sodium_libs: + dependency: transitive + description: + name: sodium_libs + sha256: aa764acd6ccc6113e119c2d99471aeeb4637a9a501639549b297d3a143ff49b3 + url: "https://pub.dev" + source: hosted + version: "2.2.1+6" + source_span: + dependency: transitive + description: + name: source_span + sha256: "254ee5351d6cb365c859e20ee823c3bb479bf4a293c22d17a9f1bf144ce86f7c" + url: "https://pub.dev" + source: hosted + version: "1.10.1" + synchronized: + dependency: transitive + description: + name: synchronized + sha256: c254ade258ec8282947a0acbbc90b9575b4f19673533ee46f2f6e9b3aeefd7c0 + url: "https://pub.dev" + source: hosted + version: "3.4.0" + term_glyph: + dependency: transitive + description: + name: term_glyph + sha256: "7f554798625ea768a7518313e58f83891c7f5024f88e46e7182a4558850a4b8e" + url: "https://pub.dev" + source: hosted + version: "1.2.2" + typed_data: + dependency: transitive + description: + name: typed_data + sha256: f9049c039ebfeb4cf7a7104a675823cd72dba8297f264b6637062516699fa006 + url: "https://pub.dev" + source: hosted + version: "1.4.0" + vector_math: + dependency: transitive + description: + name: vector_math + sha256: "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803" + url: "https://pub.dev" + source: hosted + version: "2.1.4" + web: + dependency: transitive + description: + name: web + sha256: "868d88a33d8a87b18ffc05f9f030ba328ffefba92d6c127917a2ba740f9cfe4a" + url: "https://pub.dev" + source: hosted + version: "1.1.1" + win32: + dependency: transitive + description: + name: win32 + sha256: d7cb55e04cd34096cd3a79b3330245f54cb96a370a1c27adb3c84b917de8b08e + url: "https://pub.dev" + source: hosted + version: "5.15.0" + win32_registry: + dependency: transitive + description: + name: win32_registry + sha256: "6f1b564492d0147b330dd794fee8f512cec4977957f310f9951b5f9d83618dae" + url: "https://pub.dev" + source: hosted + version: "2.1.0" +sdks: + dart: ">=3.8.0 <4.0.0" + flutter: ">=3.29.0" diff --git a/mobile/packages/ente_crypto_dart_adapter/pubspec.yaml b/mobile/packages/ente_crypto_dart_adapter/pubspec.yaml new file mode 100644 index 00000000000..08d7aaf6e18 --- /dev/null +++ b/mobile/packages/ente_crypto_dart_adapter/pubspec.yaml @@ -0,0 +1,18 @@ +name: ente_crypto_dart_adapter +description: CryptoApi implementation backed by ente_crypto_dart. +version: 0.0.1 +publish_to: none + +environment: + sdk: ">=3.3.0 <4.0.0" + +dependencies: + ente_crypto_api: + path: ../ente_crypto_api + ente_crypto_dart: + git: + url: https://github.com/ente-io/ente_crypto_dart.git + meta: ^1.11.0 + +dev_dependencies: + lints: ^3.0.0 diff --git a/mobile/packages/ente_crypto_dart_adapter/pubspec_overrides.yaml b/mobile/packages/ente_crypto_dart_adapter/pubspec_overrides.yaml new file mode 100644 index 00000000000..96a64f1b9e5 --- /dev/null +++ b/mobile/packages/ente_crypto_dart_adapter/pubspec_overrides.yaml @@ -0,0 +1,4 @@ +# melos_managed_dependency_overrides: ente_crypto_api +dependency_overrides: + ente_crypto_api: + path: ../ente_crypto_api diff --git a/mobile/packages/legacy/lib/pages/recover_others_account.dart b/mobile/packages/legacy/lib/pages/recover_others_account.dart index 6e847ab5444..aa0d5239d91 100644 --- a/mobile/packages/legacy/lib/pages/recover_others_account.dart +++ b/mobile/packages/legacy/lib/pages/recover_others_account.dart @@ -3,7 +3,7 @@ import "dart:typed_data"; import "package:ente_accounts/models/set_keys_request.dart"; import "package:ente_base/models/key_attributes.dart"; -import "package:ente_crypto_dart/ente_crypto_dart.dart"; +import "package:ente_crypto_api/ente_crypto_api.dart"; import "package:ente_legacy/models/emergency_models.dart"; import "package:ente_legacy/services/emergency_service.dart"; import "package:ente_strings/ente_strings.dart"; diff --git a/mobile/packages/legacy/lib/services/emergency_service.dart b/mobile/packages/legacy/lib/services/emergency_service.dart index d85ccba34e5..4079fd36807 100644 --- a/mobile/packages/legacy/lib/services/emergency_service.dart +++ b/mobile/packages/legacy/lib/services/emergency_service.dart @@ -8,7 +8,7 @@ import "package:ente_accounts/models/srp.dart"; import "package:ente_accounts/services/user_service.dart"; import "package:ente_base/models/key_attributes.dart"; import "package:ente_configuration/base_configuration.dart"; -import "package:ente_crypto_dart/ente_crypto_dart.dart"; +import "package:ente_crypto_api/ente_crypto_api.dart"; import "package:ente_legacy/models/emergency_models.dart"; import "package:ente_network/network.dart"; import "package:ente_sharing/components/invite_dialog.dart"; diff --git a/mobile/packages/legacy/pubspec.lock b/mobile/packages/legacy/pubspec.lock index 5fbb78dd1f8..91fe139ccc8 100644 --- a/mobile/packages/legacy/pubspec.lock +++ b/mobile/packages/legacy/pubspec.lock @@ -129,14 +129,6 @@ packages: url: "https://pub.dev" source: hosted version: "3.0.6" - csslib: - dependency: transitive - description: - name: csslib - sha256: "09bad715f418841f976c77db72d5398dc1253c21fb9c0c7f0b0b985860b2d58e" - url: "https://pub.dev" - source: hosted - version: "1.0.2" cupertino_http: dependency: transitive description: @@ -145,22 +137,6 @@ packages: url: "https://pub.dev" source: hosted version: "2.3.0" - device_info_plus: - dependency: transitive - description: - name: device_info_plus - sha256: "77f757b789ff68e4eaf9c56d1752309bd9f7ad557cb105b938a7f8eb89e59110" - url: "https://pub.dev" - source: hosted - version: "9.1.2" - device_info_plus_platform_interface: - dependency: transitive - description: - name: device_info_plus_platform_interface - sha256: e1ea89119e34903dca74b883d0dd78eb762814f97fb6c76f35e9ff74d261a18f - url: "https://pub.dev" - source: hosted - version: "7.0.3" dio: dependency: "direct main" description: @@ -222,15 +198,13 @@ packages: relative: true source: path version: "1.0.0" - ente_crypto_dart: + ente_crypto_api: dependency: "direct main" description: - path: "." - ref: HEAD - resolved-ref: f91e1545f8263df127762240c4da54a0c42835b2 - url: "https://github.com/ente-io/ente_crypto_dart.git" - source: git - version: "1.0.0" + path: "../ente_crypto_api" + relative: true + source: path + version: "0.0.1" ente_events: dependency: "direct overridden" description: @@ -548,14 +522,6 @@ packages: url: "https://pub.dev" source: hosted version: "8.2.12" - freezed_annotation: - dependency: transitive - description: - name: freezed_annotation - sha256: c2e2d632dd9b8a2b7751117abcfc2b4888ecfe181bd9fca7170d9ef02e595fe2 - url: "https://pub.dev" - source: hosted - version: "2.4.4" gtk: dependency: transitive description: @@ -572,14 +538,6 @@ packages: url: "https://pub.dev" source: hosted version: "0.2.0" - html: - dependency: transitive - description: - name: html - sha256: "6d1264f2dffa1b1101c25a91dff0dc2daee4c18e87cd8538729773c073dbf602" - url: "https://pub.dev" - source: hosted - version: "0.15.6" http: dependency: transitive description: @@ -1073,22 +1031,6 @@ packages: description: flutter source: sdk version: "0.0.0" - sodium: - dependency: transitive - description: - name: sodium - sha256: d9830a388e37c82891888e64cfd4c6764fa3ac716bed80ac6eab89ee42c3cd76 - url: "https://pub.dev" - source: hosted - version: "2.3.1+1" - sodium_libs: - dependency: transitive - description: - name: sodium_libs - sha256: aa764acd6ccc6113e119c2d99471aeeb4637a9a501639549b297d3a143ff49b3 - url: "https://pub.dev" - source: hosted - version: "2.2.1+6" source_span: dependency: transitive description: @@ -1145,14 +1087,6 @@ packages: url: "https://pub.dev" source: hosted version: "8.1.0" - synchronized: - dependency: transitive - description: - name: synchronized - sha256: c254ade258ec8282947a0acbbc90b9575b4f19673533ee46f2f6e9b3aeefd7c0 - url: "https://pub.dev" - source: hosted - version: "3.4.0" term_glyph: dependency: transitive description: @@ -1337,14 +1271,6 @@ packages: url: "https://pub.dev" source: hosted version: "5.14.0" - win32_registry: - dependency: transitive - description: - name: win32_registry - sha256: "21ec76dfc731550fd3e2ce7a33a9ea90b828fdf19a5c3bcf556fa992cfa99852" - url: "https://pub.dev" - source: hosted - version: "1.1.5" window_manager: dependency: transitive description: diff --git a/mobile/packages/legacy/pubspec.yaml b/mobile/packages/legacy/pubspec.yaml index a13f1bf49a0..93920803202 100644 --- a/mobile/packages/legacy/pubspec.yaml +++ b/mobile/packages/legacy/pubspec.yaml @@ -16,9 +16,8 @@ dependencies: path: ../base ente_configuration: path: ../configuration - ente_crypto_dart: - git: - url: https://github.com/ente-io/ente_crypto_dart.git + ente_crypto_api: + path: ../ente_crypto_api ente_network: path: ../network ente_sharing: diff --git a/mobile/packages/legacy/pubspec_overrides.yaml b/mobile/packages/legacy/pubspec_overrides.yaml index 6991995c69e..e13e5930741 100644 --- a/mobile/packages/legacy/pubspec_overrides.yaml +++ b/mobile/packages/legacy/pubspec_overrides.yaml @@ -1,4 +1,4 @@ -# melos_managed_dependency_overrides: ente_accounts,ente_base,ente_configuration,ente_events,ente_lock_screen,ente_logging,ente_network,ente_sharing,ente_strings,ente_ui,ente_utils +# melos_managed_dependency_overrides: ente_accounts,ente_base,ente_configuration,ente_events,ente_lock_screen,ente_logging,ente_network,ente_sharing,ente_strings,ente_ui,ente_utils,ente_crypto_api dependency_overrides: ente_accounts: path: ../accounts @@ -6,6 +6,8 @@ dependency_overrides: path: ../base ente_configuration: path: ../configuration + ente_crypto_api: + path: ../ente_crypto_api ente_events: path: ../events ente_lock_screen: diff --git a/mobile/packages/lock_screen/lib/lock_screen_settings.dart b/mobile/packages/lock_screen/lib/lock_screen_settings.dart index 3019849d25b..39945026373 100644 --- a/mobile/packages/lock_screen/lib/lock_screen_settings.dart +++ b/mobile/packages/lock_screen/lib/lock_screen_settings.dart @@ -3,7 +3,7 @@ import "dart:io"; import "dart:typed_data"; import "package:ente_configuration/base_configuration.dart"; -import "package:ente_crypto_dart/ente_crypto_dart.dart"; +import "package:ente_crypto_api/ente_crypto_api.dart"; import "package:ente_events/event_bus.dart"; import "package:ente_events/models/signed_out_event.dart"; import "package:ente_utils/platform_util.dart"; @@ -151,19 +151,18 @@ class LockScreenSettings { } static Uint8List _generateSalt() { - return sodium.randombytes.buf(sodium.crypto.pwhash.saltBytes); + return CryptoUtil.getSaltToDeriveKey(); } Future setPin(String userPin) async { await _secureStorage.delete(key: saltKey); final salt = _generateSalt(); - final hash = cryptoPwHash( + final hash = CryptoUtil.cryptoPwHash( utf8.encode(userPin), salt, - sodium.crypto.pwhash.memLimitInteractive, - sodium.crypto.pwhash.opsLimitSensitive, - sodium, + CryptoUtil.pwhashMemLimitInteractive, + CryptoUtil.pwhashOpsLimitSensitive, ); final String saltPin = base64Encode(salt); final String hashedPin = base64Encode(hash); @@ -189,12 +188,11 @@ class LockScreenSettings { await _secureStorage.delete(key: saltKey); final salt = _generateSalt(); - final hash = cryptoPwHash( + final hash = CryptoUtil.cryptoPwHash( utf8.encode(pass), salt, - sodium.crypto.pwhash.memLimitInteractive, - sodium.crypto.pwhash.opsLimitSensitive, - sodium, + CryptoUtil.pwhashMemLimitInteractive, + CryptoUtil.pwhashOpsLimitSensitive, ); await _secureStorage.write(key: saltKey, value: base64Encode(salt)); diff --git a/mobile/packages/lock_screen/lib/ui/lock_screen_password.dart b/mobile/packages/lock_screen/lib/ui/lock_screen_password.dart index 0033c491374..bfbc595e62b 100644 --- a/mobile/packages/lock_screen/lib/ui/lock_screen_password.dart +++ b/mobile/packages/lock_screen/lib/ui/lock_screen_password.dart @@ -1,6 +1,7 @@ import "dart:convert"; +import "dart:typed_data"; -import "package:ente_crypto_dart/ente_crypto_dart.dart"; +import "package:ente_crypto_api/ente_crypto_api.dart"; import "package:ente_lock_screen/lock_screen_settings.dart"; import "package:ente_lock_screen/ui/lock_screen_confirm_password.dart"; import "package:ente_lock_screen/ui/lock_screen_options.dart"; @@ -171,12 +172,11 @@ class _LockScreenPasswordState extends State { Future _confirmPasswordAuth(String inputtedPassword) async { final Uint8List? salt = await _lockscreenSetting.getSalt(); - final hash = cryptoPwHash( + final hash = CryptoUtil.cryptoPwHash( utf8.encode(inputtedPassword), salt!, - sodium.crypto.pwhash.memLimitInteractive, - sodium.crypto.pwhash.opsLimitSensitive, - sodium, + CryptoUtil.pwhashMemLimitInteractive, + CryptoUtil.pwhashOpsLimitSensitive, ); if (widget.authPass == base64Encode(hash)) { await _lockscreenSetting.setInvalidAttemptCount(0); diff --git a/mobile/packages/lock_screen/lib/ui/lock_screen_pin.dart b/mobile/packages/lock_screen/lib/ui/lock_screen_pin.dart index 3ae887b297b..a6706c3ed71 100644 --- a/mobile/packages/lock_screen/lib/ui/lock_screen_pin.dart +++ b/mobile/packages/lock_screen/lib/ui/lock_screen_pin.dart @@ -1,7 +1,8 @@ import "dart:convert"; import "dart:io"; +import "dart:typed_data"; -import "package:ente_crypto_dart/ente_crypto_dart.dart"; +import "package:ente_crypto_api/ente_crypto_api.dart"; import "package:ente_lock_screen/lock_screen_settings.dart"; import "package:ente_lock_screen/ui/custom_pin_keypad.dart"; import "package:ente_lock_screen/ui/lock_screen_confirm_pin.dart"; @@ -66,12 +67,11 @@ class _LockScreenPinState extends State { Future confirmPinAuth(String inputtedPin) async { final Uint8List? salt = await _lockscreenSetting.getSalt(); - final hash = cryptoPwHash( + final hash = CryptoUtil.cryptoPwHash( utf8.encode(inputtedPin), salt!, - sodium.crypto.pwhash.memLimitInteractive, - sodium.crypto.pwhash.opsLimitSensitive, - sodium, + CryptoUtil.pwhashMemLimitInteractive, + CryptoUtil.pwhashOpsLimitSensitive, ); if (widget.authPin == base64Encode(hash)) { invalidAttemptsCount = 0; diff --git a/mobile/packages/lock_screen/pubspec.lock b/mobile/packages/lock_screen/pubspec.lock index 2175439fbbf..ffca8e67677 100644 --- a/mobile/packages/lock_screen/pubspec.lock +++ b/mobile/packages/lock_screen/pubspec.lock @@ -129,14 +129,6 @@ packages: url: "https://pub.dev" source: hosted version: "3.0.6" - csslib: - dependency: transitive - description: - name: csslib - sha256: "09bad715f418841f976c77db72d5398dc1253c21fb9c0c7f0b0b985860b2d58e" - url: "https://pub.dev" - source: hosted - version: "1.0.2" cupertino_http: dependency: transitive description: @@ -145,22 +137,6 @@ packages: url: "https://pub.dev" source: hosted version: "2.2.0" - device_info_plus: - dependency: transitive - description: - name: device_info_plus - sha256: "77f757b789ff68e4eaf9c56d1752309bd9f7ad557cb105b938a7f8eb89e59110" - url: "https://pub.dev" - source: hosted - version: "9.1.2" - device_info_plus_platform_interface: - dependency: transitive - description: - name: device_info_plus_platform_interface - sha256: "0b04e02b30791224b31969eb1b50d723498f402971bff3630bca2ba839bd1ed2" - url: "https://pub.dev" - source: hosted - version: "7.0.2" dio: dependency: transitive description: @@ -222,15 +198,13 @@ packages: relative: true source: path version: "1.0.0" - ente_crypto_dart: + ente_crypto_api: dependency: "direct main" description: - path: "." - ref: HEAD - resolved-ref: f91e1545f8263df127762240c4da54a0c42835b2 - url: "https://github.com/ente-io/ente_crypto_dart.git" - source: git - version: "1.0.0" + path: "../ente_crypto_api" + relative: true + source: path + version: "0.0.1" ente_events: dependency: "direct main" description: @@ -526,14 +500,6 @@ packages: url: "https://pub.dev" source: hosted version: "8.2.12" - freezed_annotation: - dependency: transitive - description: - name: freezed_annotation - sha256: c2e2d632dd9b8a2b7751117abcfc2b4888ecfe181bd9fca7170d9ef02e595fe2 - url: "https://pub.dev" - source: hosted - version: "2.4.4" gtk: dependency: transitive description: @@ -550,14 +516,6 @@ packages: url: "https://pub.dev" source: hosted version: "0.2.0" - html: - dependency: transitive - description: - name: html - sha256: "6d1264f2dffa1b1101c25a91dff0dc2daee4c18e87cd8538729773c073dbf602" - url: "https://pub.dev" - source: hosted - version: "0.15.6" http: dependency: transitive description: @@ -1051,22 +1009,6 @@ packages: description: flutter source: sdk version: "0.0.0" - sodium: - dependency: transitive - description: - name: sodium - sha256: d9830a388e37c82891888e64cfd4c6764fa3ac716bed80ac6eab89ee42c3cd76 - url: "https://pub.dev" - source: hosted - version: "2.3.1+1" - sodium_libs: - dependency: transitive - description: - name: sodium_libs - sha256: aa764acd6ccc6113e119c2d99471aeeb4637a9a501639549b297d3a143ff49b3 - url: "https://pub.dev" - source: hosted - version: "2.2.1+6" source_span: dependency: transitive description: @@ -1123,14 +1065,6 @@ packages: url: "https://pub.dev" source: hosted version: "8.1.0" - synchronized: - dependency: transitive - description: - name: synchronized - sha256: "69fe30f3a8b04a0be0c15ae6490fc859a78ef4c43ae2dd5e8a623d45bfcf9225" - url: "https://pub.dev" - source: hosted - version: "3.3.0+3" term_glyph: dependency: transitive description: @@ -1315,14 +1249,6 @@ packages: url: "https://pub.dev" source: hosted version: "5.10.1" - win32_registry: - dependency: transitive - description: - name: win32_registry - sha256: "21ec76dfc731550fd3e2ce7a33a9ea90b828fdf19a5c3bcf556fa992cfa99852" - url: "https://pub.dev" - source: hosted - version: "1.1.5" window_manager: dependency: transitive description: diff --git a/mobile/packages/lock_screen/pubspec.yaml b/mobile/packages/lock_screen/pubspec.yaml index eba6176095b..bce1e8b1e93 100644 --- a/mobile/packages/lock_screen/pubspec.yaml +++ b/mobile/packages/lock_screen/pubspec.yaml @@ -12,9 +12,8 @@ dependencies: path: ../accounts ente_configuration: path: ../configuration - ente_crypto_dart: - git: - url: https://github.com/ente-io/ente_crypto_dart.git + ente_crypto_api: + path: ../ente_crypto_api ente_events: path: ../events ente_strings: diff --git a/mobile/packages/lock_screen/pubspec_overrides.yaml b/mobile/packages/lock_screen/pubspec_overrides.yaml index 0657d5dedc6..bda3ea58eb5 100644 --- a/mobile/packages/lock_screen/pubspec_overrides.yaml +++ b/mobile/packages/lock_screen/pubspec_overrides.yaml @@ -1,4 +1,4 @@ -# melos_managed_dependency_overrides: ente_accounts,ente_base,ente_configuration,ente_events,ente_logging,ente_network,ente_strings,ente_ui,ente_utils +# melos_managed_dependency_overrides: ente_accounts,ente_base,ente_configuration,ente_events,ente_logging,ente_network,ente_strings,ente_ui,ente_utils,ente_crypto_api dependency_overrides: ente_accounts: path: ../accounts @@ -6,6 +6,8 @@ dependency_overrides: path: ../base ente_configuration: path: ../configuration + ente_crypto_api: + path: ../ente_crypto_api ente_events: path: ../events ente_logging: diff --git a/mobile/packages/network/pubspec.lock b/mobile/packages/network/pubspec.lock index fdc6aa060a7..b3ae4d25ba8 100644 --- a/mobile/packages/network/pubspec.lock +++ b/mobile/packages/network/pubspec.lock @@ -81,14 +81,6 @@ packages: url: "https://pub.dev" source: hosted version: "3.0.6" - csslib: - dependency: transitive - description: - name: csslib - sha256: "09bad715f418841f976c77db72d5398dc1253c21fb9c0c7f0b0b985860b2d58e" - url: "https://pub.dev" - source: hosted - version: "1.0.2" cupertino_http: dependency: transitive description: @@ -97,22 +89,6 @@ packages: url: "https://pub.dev" source: hosted version: "2.2.0" - device_info_plus: - dependency: transitive - description: - name: device_info_plus - sha256: "77f757b789ff68e4eaf9c56d1752309bd9f7ad557cb105b938a7f8eb89e59110" - url: "https://pub.dev" - source: hosted - version: "9.1.2" - device_info_plus_platform_interface: - dependency: transitive - description: - name: device_info_plus_platform_interface - sha256: "0b04e02b30791224b31969eb1b50d723498f402971bff3630bca2ba839bd1ed2" - url: "https://pub.dev" - source: hosted - version: "7.0.2" dio: dependency: "direct main" description: @@ -143,15 +119,13 @@ packages: relative: true source: path version: "1.0.0" - ente_crypto_dart: - dependency: transitive + ente_crypto_api: + dependency: "direct overridden" description: - path: "." - ref: HEAD - resolved-ref: f91e1545f8263df127762240c4da54a0c42835b2 - url: "https://github.com/ente-io/ente_crypto_dart.git" - source: git - version: "1.0.0" + path: "../ente_crypto_api" + relative: true + source: path + version: "0.0.1" ente_events: dependency: "direct main" description: @@ -277,14 +251,6 @@ packages: description: flutter source: sdk version: "0.0.0" - freezed_annotation: - dependency: transitive - description: - name: freezed_annotation - sha256: c2e2d632dd9b8a2b7751117abcfc2b4888ecfe181bd9fca7170d9ef02e595fe2 - url: "https://pub.dev" - source: hosted - version: "2.4.4" hex: dependency: transitive description: @@ -293,14 +259,6 @@ packages: url: "https://pub.dev" source: hosted version: "0.2.0" - html: - dependency: transitive - description: - name: html - sha256: "6d1264f2dffa1b1101c25a91dff0dc2daee4c18e87cd8538729773c073dbf602" - url: "https://pub.dev" - source: hosted - version: "0.15.6" http: dependency: transitive description: @@ -349,14 +307,6 @@ packages: url: "https://pub.dev" source: hosted version: "0.6.7" - json_annotation: - dependency: transitive - description: - name: json_annotation - sha256: "1ce844379ca14835a50d2f019a3099f419082cfdd231cd86a142af94dd5c6bb1" - url: "https://pub.dev" - source: hosted - version: "4.9.0" leak_tracker: dependency: transitive description: @@ -626,22 +576,6 @@ packages: description: flutter source: sdk version: "0.0.0" - sodium: - dependency: transitive - description: - name: sodium - sha256: d9830a388e37c82891888e64cfd4c6764fa3ac716bed80ac6eab89ee42c3cd76 - url: "https://pub.dev" - source: hosted - version: "2.3.1+1" - sodium_libs: - dependency: transitive - description: - name: sodium_libs - sha256: aa764acd6ccc6113e119c2d99471aeeb4637a9a501639549b297d3a143ff49b3 - url: "https://pub.dev" - source: hosted - version: "2.2.1+6" source_span: dependency: transitive description: @@ -682,14 +616,6 @@ packages: url: "https://pub.dev" source: hosted version: "1.4.1" - synchronized: - dependency: transitive - description: - name: synchronized - sha256: "69fe30f3a8b04a0be0c15ae6490fc859a78ef4c43ae2dd5e8a623d45bfcf9225" - url: "https://pub.dev" - source: hosted - version: "3.3.0+3" term_glyph: dependency: transitive description: @@ -778,14 +704,6 @@ packages: url: "https://pub.dev" source: hosted version: "5.10.1" - win32_registry: - dependency: transitive - description: - name: win32_registry - sha256: "21ec76dfc731550fd3e2ce7a33a9ea90b828fdf19a5c3bcf556fa992cfa99852" - url: "https://pub.dev" - source: hosted - version: "1.1.5" xdg_directories: dependency: transitive description: diff --git a/mobile/packages/network/pubspec_overrides.yaml b/mobile/packages/network/pubspec_overrides.yaml index c5cc929cc90..9cf8fa0ce13 100644 --- a/mobile/packages/network/pubspec_overrides.yaml +++ b/mobile/packages/network/pubspec_overrides.yaml @@ -1,9 +1,11 @@ -# melos_managed_dependency_overrides: ente_base,ente_configuration,ente_events,ente_logging +# melos_managed_dependency_overrides: ente_base,ente_configuration,ente_events,ente_logging,ente_crypto_api dependency_overrides: ente_base: path: ../base ente_configuration: path: ../configuration + ente_crypto_api: + path: ../ente_crypto_api ente_events: path: ../events ente_logging: diff --git a/mobile/packages/sharing/lib/collection_sharing_service.dart b/mobile/packages/sharing/lib/collection_sharing_service.dart index 35213884da1..a4415d553b7 100644 --- a/mobile/packages/sharing/lib/collection_sharing_service.dart +++ b/mobile/packages/sharing/lib/collection_sharing_service.dart @@ -2,7 +2,7 @@ import 'dart:convert'; import 'dart:typed_data'; import 'package:dio/dio.dart'; -import 'package:ente_crypto_dart/ente_crypto_dart.dart'; +import 'package:ente_crypto_api/ente_crypto_api.dart'; import 'package:ente_network/network.dart'; import 'package:ente_sharing/errors.dart'; import 'package:ente_sharing/models/user.dart'; diff --git a/mobile/packages/sharing/pubspec.lock b/mobile/packages/sharing/pubspec.lock index bd1474cb5a9..66382a4aa74 100644 --- a/mobile/packages/sharing/pubspec.lock +++ b/mobile/packages/sharing/pubspec.lock @@ -129,14 +129,6 @@ packages: url: "https://pub.dev" source: hosted version: "3.0.6" - csslib: - dependency: transitive - description: - name: csslib - sha256: "09bad715f418841f976c77db72d5398dc1253c21fb9c0c7f0b0b985860b2d58e" - url: "https://pub.dev" - source: hosted - version: "1.0.2" cupertino_http: dependency: transitive description: @@ -145,22 +137,6 @@ packages: url: "https://pub.dev" source: hosted version: "2.3.0" - device_info_plus: - dependency: transitive - description: - name: device_info_plus - sha256: "77f757b789ff68e4eaf9c56d1752309bd9f7ad557cb105b938a7f8eb89e59110" - url: "https://pub.dev" - source: hosted - version: "9.1.2" - device_info_plus_platform_interface: - dependency: transitive - description: - name: device_info_plus_platform_interface - sha256: e1ea89119e34903dca74b883d0dd78eb762814f97fb6c76f35e9ff74d261a18f - url: "https://pub.dev" - source: hosted - version: "7.0.3" dio: dependency: "direct main" description: @@ -222,15 +198,13 @@ packages: relative: true source: path version: "1.0.0" - ente_crypto_dart: + ente_crypto_api: dependency: "direct main" description: - path: "." - ref: HEAD - resolved-ref: f91e1545f8263df127762240c4da54a0c42835b2 - url: "https://github.com/ente-io/ente_crypto_dart.git" - source: git - version: "1.0.0" + path: "../ente_crypto_api" + relative: true + source: path + version: "0.0.1" ente_events: dependency: "direct overridden" description: @@ -541,14 +515,6 @@ packages: url: "https://pub.dev" source: hosted version: "8.2.12" - freezed_annotation: - dependency: transitive - description: - name: freezed_annotation - sha256: c2e2d632dd9b8a2b7751117abcfc2b4888ecfe181bd9fca7170d9ef02e595fe2 - url: "https://pub.dev" - source: hosted - version: "2.4.4" gtk: dependency: transitive description: @@ -565,14 +531,6 @@ packages: url: "https://pub.dev" source: hosted version: "0.2.0" - html: - dependency: transitive - description: - name: html - sha256: "6d1264f2dffa1b1101c25a91dff0dc2daee4c18e87cd8538729773c073dbf602" - url: "https://pub.dev" - source: hosted - version: "0.15.6" http: dependency: transitive description: @@ -1066,22 +1024,6 @@ packages: description: flutter source: sdk version: "0.0.0" - sodium: - dependency: transitive - description: - name: sodium - sha256: d9830a388e37c82891888e64cfd4c6764fa3ac716bed80ac6eab89ee42c3cd76 - url: "https://pub.dev" - source: hosted - version: "2.3.1+1" - sodium_libs: - dependency: transitive - description: - name: sodium_libs - sha256: aa764acd6ccc6113e119c2d99471aeeb4637a9a501639549b297d3a143ff49b3 - url: "https://pub.dev" - source: hosted - version: "2.2.1+6" source_span: dependency: transitive description: @@ -1138,14 +1080,6 @@ packages: url: "https://pub.dev" source: hosted version: "8.1.0" - synchronized: - dependency: transitive - description: - name: synchronized - sha256: c254ade258ec8282947a0acbbc90b9575b4f19673533ee46f2f6e9b3aeefd7c0 - url: "https://pub.dev" - source: hosted - version: "3.4.0" term_glyph: dependency: transitive description: @@ -1330,14 +1264,6 @@ packages: url: "https://pub.dev" source: hosted version: "5.14.0" - win32_registry: - dependency: transitive - description: - name: win32_registry - sha256: "21ec76dfc731550fd3e2ce7a33a9ea90b828fdf19a5c3bcf556fa992cfa99852" - url: "https://pub.dev" - source: hosted - version: "1.1.5" window_manager: dependency: transitive description: diff --git a/mobile/packages/sharing/pubspec.yaml b/mobile/packages/sharing/pubspec.yaml index 5e46e092dcd..24cb06c354b 100644 --- a/mobile/packages/sharing/pubspec.yaml +++ b/mobile/packages/sharing/pubspec.yaml @@ -17,9 +17,8 @@ dependencies: path: ../accounts ente_configuration: path: ../configuration - ente_crypto_dart: - git: - url: https://github.com/ente-io/ente_crypto_dart.git + ente_crypto_api: + path: ../ente_crypto_api ente_network: path: ../network ente_strings: diff --git a/mobile/packages/sharing/pubspec_overrides.yaml b/mobile/packages/sharing/pubspec_overrides.yaml index f2f9b895996..88528e32572 100644 --- a/mobile/packages/sharing/pubspec_overrides.yaml +++ b/mobile/packages/sharing/pubspec_overrides.yaml @@ -1,4 +1,4 @@ -# melos_managed_dependency_overrides: ente_base,ente_configuration,ente_events,ente_logging,ente_network,ente_strings,ente_ui,ente_utils,ente_accounts,ente_lock_screen +# melos_managed_dependency_overrides: ente_base,ente_configuration,ente_events,ente_logging,ente_network,ente_strings,ente_ui,ente_utils,ente_accounts,ente_lock_screen,ente_crypto_api dependency_overrides: ente_accounts: path: ../accounts @@ -6,6 +6,8 @@ dependency_overrides: path: ../base ente_configuration: path: ../configuration + ente_crypto_api: + path: ../ente_crypto_api ente_events: path: ../events ente_lock_screen: diff --git a/mobile/packages/ui/pubspec.lock b/mobile/packages/ui/pubspec.lock index 7489f0f062e..b35ac408306 100644 --- a/mobile/packages/ui/pubspec.lock +++ b/mobile/packages/ui/pubspec.lock @@ -89,30 +89,6 @@ packages: url: "https://pub.dev" source: hosted version: "3.0.6" - csslib: - dependency: transitive - description: - name: csslib - sha256: "09bad715f418841f976c77db72d5398dc1253c21fb9c0c7f0b0b985860b2d58e" - url: "https://pub.dev" - source: hosted - version: "1.0.2" - device_info_plus: - dependency: transitive - description: - name: device_info_plus - sha256: "77f757b789ff68e4eaf9c56d1752309bd9f7ad557cb105b938a7f8eb89e59110" - url: "https://pub.dev" - source: hosted - version: "9.1.2" - device_info_plus_platform_interface: - dependency: transitive - description: - name: device_info_plus_platform_interface - sha256: e1ea89119e34903dca74b883d0dd78eb762814f97fb6c76f35e9ff74d261a18f - url: "https://pub.dev" - source: hosted - version: "7.0.3" dio: dependency: "direct main" description: @@ -151,15 +127,13 @@ packages: relative: true source: path version: "1.0.0" - ente_crypto_dart: - dependency: transitive + ente_crypto_api: + dependency: "direct overridden" description: - path: "." - ref: HEAD - resolved-ref: f91e1545f8263df127762240c4da54a0c42835b2 - url: "https://github.com/ente-io/ente_crypto_dart.git" - source: git - version: "1.0.0" + path: "../ente_crypto_api" + relative: true + source: path + version: "0.0.1" ente_events: dependency: "direct overridden" description: @@ -424,14 +398,6 @@ packages: url: "https://pub.dev" source: hosted version: "8.2.12" - freezed_annotation: - dependency: transitive - description: - name: freezed_annotation - sha256: c2e2d632dd9b8a2b7751117abcfc2b4888ecfe181bd9fca7170d9ef02e595fe2 - url: "https://pub.dev" - source: hosted - version: "2.4.4" hex: dependency: transitive description: @@ -440,14 +406,6 @@ packages: url: "https://pub.dev" source: hosted version: "0.2.0" - html: - dependency: transitive - description: - name: html - sha256: "6d1264f2dffa1b1101c25a91dff0dc2daee4c18e87cd8538729773c073dbf602" - url: "https://pub.dev" - source: hosted - version: "0.15.6" http: dependency: transitive description: @@ -829,22 +787,6 @@ packages: description: flutter source: sdk version: "0.0.0" - sodium: - dependency: transitive - description: - name: sodium - sha256: d9830a388e37c82891888e64cfd4c6764fa3ac716bed80ac6eab89ee42c3cd76 - url: "https://pub.dev" - source: hosted - version: "2.3.1+1" - sodium_libs: - dependency: transitive - description: - name: sodium_libs - sha256: aa764acd6ccc6113e119c2d99471aeeb4637a9a501639549b297d3a143ff49b3 - url: "https://pub.dev" - source: hosted - version: "2.2.1+6" source_span: dependency: transitive description: @@ -885,14 +827,6 @@ packages: url: "https://pub.dev" source: hosted version: "1.4.1" - synchronized: - dependency: transitive - description: - name: synchronized - sha256: c254ade258ec8282947a0acbbc90b9575b4f19673533ee46f2f6e9b3aeefd7c0 - url: "https://pub.dev" - source: hosted - version: "3.4.0" term_glyph: dependency: transitive description: @@ -1053,14 +987,6 @@ packages: url: "https://pub.dev" source: hosted version: "5.14.0" - win32_registry: - dependency: transitive - description: - name: win32_registry - sha256: "21ec76dfc731550fd3e2ce7a33a9ea90b828fdf19a5c3bcf556fa992cfa99852" - url: "https://pub.dev" - source: hosted - version: "1.1.5" window_manager: dependency: "direct main" description: diff --git a/mobile/packages/ui/pubspec_overrides.yaml b/mobile/packages/ui/pubspec_overrides.yaml index b7fe7eecb3b..c06fe3f4100 100644 --- a/mobile/packages/ui/pubspec_overrides.yaml +++ b/mobile/packages/ui/pubspec_overrides.yaml @@ -1,9 +1,11 @@ -# melos_managed_dependency_overrides: ente_base,ente_configuration,ente_events,ente_logging,ente_strings,ente_utils +# melos_managed_dependency_overrides: ente_base,ente_configuration,ente_events,ente_logging,ente_strings,ente_utils,ente_crypto_api dependency_overrides: ente_base: path: ../base ente_configuration: path: ../configuration + ente_crypto_api: + path: ../ente_crypto_api ente_events: path: ../events ente_logging: diff --git a/mobile/packages/utils/pubspec.lock b/mobile/packages/utils/pubspec.lock index 5a7e6830e16..43cd894c64f 100644 --- a/mobile/packages/utils/pubspec.lock +++ b/mobile/packages/utils/pubspec.lock @@ -89,30 +89,6 @@ packages: url: "https://pub.dev" source: hosted version: "3.0.6" - csslib: - dependency: transitive - description: - name: csslib - sha256: "09bad715f418841f976c77db72d5398dc1253c21fb9c0c7f0b0b985860b2d58e" - url: "https://pub.dev" - source: hosted - version: "1.0.2" - device_info_plus: - dependency: transitive - description: - name: device_info_plus - sha256: "77f757b789ff68e4eaf9c56d1752309bd9f7ad557cb105b938a7f8eb89e59110" - url: "https://pub.dev" - source: hosted - version: "9.1.2" - device_info_plus_platform_interface: - dependency: transitive - description: - name: device_info_plus_platform_interface - sha256: "0b04e02b30791224b31969eb1b50d723498f402971bff3630bca2ba839bd1ed2" - url: "https://pub.dev" - source: hosted - version: "7.0.2" dio: dependency: transitive description: @@ -151,15 +127,13 @@ packages: relative: true source: path version: "1.0.0" - ente_crypto_dart: - dependency: transitive + ente_crypto_api: + dependency: "direct overridden" description: - path: "." - ref: HEAD - resolved-ref: f91e1545f8263df127762240c4da54a0c42835b2 - url: "https://github.com/ente-io/ente_crypto_dart.git" - source: git - version: "1.0.0" + path: "../ente_crypto_api" + relative: true + source: path + version: "0.0.1" ente_events: dependency: "direct overridden" description: @@ -424,14 +398,6 @@ packages: url: "https://pub.dev" source: hosted version: "8.2.12" - freezed_annotation: - dependency: transitive - description: - name: freezed_annotation - sha256: c2e2d632dd9b8a2b7751117abcfc2b4888ecfe181bd9fca7170d9ef02e595fe2 - url: "https://pub.dev" - source: hosted - version: "2.4.4" hex: dependency: transitive description: @@ -440,14 +406,6 @@ packages: url: "https://pub.dev" source: hosted version: "0.2.0" - html: - dependency: transitive - description: - name: html - sha256: "6d1264f2dffa1b1101c25a91dff0dc2daee4c18e87cd8538729773c073dbf602" - url: "https://pub.dev" - source: hosted - version: "0.15.6" http: dependency: transitive description: @@ -829,22 +787,6 @@ packages: description: flutter source: sdk version: "0.0.0" - sodium: - dependency: transitive - description: - name: sodium - sha256: d9830a388e37c82891888e64cfd4c6764fa3ac716bed80ac6eab89ee42c3cd76 - url: "https://pub.dev" - source: hosted - version: "2.3.1+1" - sodium_libs: - dependency: transitive - description: - name: sodium_libs - sha256: aa764acd6ccc6113e119c2d99471aeeb4637a9a501639549b297d3a143ff49b3 - url: "https://pub.dev" - source: hosted - version: "2.2.1+6" source_span: dependency: transitive description: @@ -885,14 +827,6 @@ packages: url: "https://pub.dev" source: hosted version: "1.4.1" - synchronized: - dependency: transitive - description: - name: synchronized - sha256: "69fe30f3a8b04a0be0c15ae6490fc859a78ef4c43ae2dd5e8a623d45bfcf9225" - url: "https://pub.dev" - source: hosted - version: "3.3.0+3" term_glyph: dependency: transitive description: @@ -1053,14 +987,6 @@ packages: url: "https://pub.dev" source: hosted version: "5.10.1" - win32_registry: - dependency: transitive - description: - name: win32_registry - sha256: "21ec76dfc731550fd3e2ce7a33a9ea90b828fdf19a5c3bcf556fa992cfa99852" - url: "https://pub.dev" - source: hosted - version: "1.1.5" window_manager: dependency: "direct main" description: diff --git a/mobile/packages/utils/pubspec_overrides.yaml b/mobile/packages/utils/pubspec_overrides.yaml index 666c854f836..9716e276358 100644 --- a/mobile/packages/utils/pubspec_overrides.yaml +++ b/mobile/packages/utils/pubspec_overrides.yaml @@ -1,9 +1,11 @@ -# melos_managed_dependency_overrides: ente_base,ente_configuration,ente_events,ente_logging,ente_strings,ente_ui +# melos_managed_dependency_overrides: ente_base,ente_configuration,ente_events,ente_logging,ente_strings,ente_ui,ente_crypto_api dependency_overrides: ente_base: path: ../base ente_configuration: path: ../configuration + ente_crypto_api: + path: ../ente_crypto_api ente_events: path: ../events ente_logging: